
Kyle Risley 是 Shopify 的 SEO 高级主管。
当多个URL包含完全相同的内容时,搜索引擎需要决定对哪个版本进行索引。规范标签通过指示搜索引擎将所有不同版本的页面合并到一个URL(即规范URL)下,帮助搜索引擎保持条理清晰。
Shopify主题会自动规范化URL,因此大多数情况下您无需为此操心。本教程适用于那些需要手动设置规范URL的罕见情况。
什么是规范 URL?
规范 URL 是指用于索引的首选 URL。当您拥有多个包含相似或相同内容的 URL 时,您可以使用此标签要求搜索引擎对规范 URL 进行索引:
<link rel="canonical" href="{{ canonical_url }}">
Shopify 官方主题默认定义了规范 URL,所有优质的第三方主题也应默认定义规范 URL。如果您需要为商店添加默认的规范 URL,可以在主题布局文件中关闭 </head> 标签之前添加一行代码来解决这个问题。
以下是规范URL在Shopify的Dawn主题中的示例:
何时使用规范 URL
如果您有多个包含高度相似内容的已索引 URL,那么设置规范 URL 是一种告诉搜索引擎您希望哪个 URL 被排名和索引的方法。作为最佳实践,Shopify 官方主题会在所有页面上设置规范 URL。
使用规范URL的一个常见场景是URL中包含UTM参数。URL参数是一种由Google Analytics用于跟踪营销活动表现的工具,它们是URL末尾显示引荐来源的字符。例如,如果您分别通过电子邮件活动和Google广告访问同一产品页面,该页面的URL会有所不同。这有利于销售归因,但对搜索引擎来说却不太理想,因为搜索引擎以相同方式对待每个URL:只要有一个字母发生变化,就会被视为需要重新抓取的全新URL。与其单独索引这些URL,搜索引擎可以将所有不同版本统一在一个URL(即规范URL)下进行索引。
如何为 Shopify 页面设置规范 URL
- 为您要规范化处理的每种页面类型创建一个元字段(metafield)
- 在您的主题文件中添加代码以引用新创建的元字段
在大多数情况下,默认的规范 URL 是正确的。本教程适用于一次性情况,即您想要手动覆盖默认的规范 URL 并设置新的规范 URL 值。为此,您需要为每种要规范化处理的页面类型创建一个元字段,然后在主题文件中添加代码以引用新创建的元字段。具体步骤如下:
1. 为您要规范化处理的每种页面类型创建一个元字段
首先创建元字段。如果您只想覆盖规范URL(例如在一页或多页产品页面上),则只需创建一个元字段。如果您还想在其他页面类型(如集合页面或博客文章)上覆盖规范URL,则还需要为每种适用的页面类型分别创建元字段。
导航至 Shopify 管理后台中的元字段页面。您可以在管理后台搜索栏中输入“metafield”并选择“Metafields”来实现这一点。
接下来,选择您希望为其创建规范 URL 覆盖的页面类型,例如产品、集合、页面和博客文章。(注意:“Blogs”指整个博客,而“Blog posts”指单独的文章。)
选择“添加定义”。将名称设置为简短且具有描述性的内容,例如“产品规范 URL”。如果需要,还可以添加如下描述:“此 URL 会覆盖该页面的默认规范 URL。”
将类型设置为“URL”,然后单击保存。您的元字段应类似于以下内容:
命名空间和键非常重要,因为您稍后会引用它们。
从此处导航到产品页面编辑器,您应该在“产品元字段”下看到“产品规范 URL”元字段。输入新的规范 URL 值并单击保存。
2. 向主题文件添加代码以引用您新创建的元字段
接下来,打开生成规范标签逻辑的任何文件。这通常是 Layout 文件夹中的 theme.liquid 文件。
规范的 Liquid 代码应如下所示:
您将替换以下现有代码行——
<link rel=”canonical” href=”{{ canonical_url }}”>
—使用以下代码块:
{% assign custom_canonical = null %}
{% if product and product.metafields.custom.product_canonical_url != blank %}
{% assign custom_canonical = product.metafields.custom.product_canonical_url %}
{% elsif collection and collection.metafields.custom.collection_canonical_url != blank %}
{% assign custom_canonical = collection.metafields.custom.collection_canonical_url %}
{% elsif page and page.metafields.custom.page_canonical_url != blank %}
{% assign custom_canonical = page.metafields.custom.page_canonical_url %}
{% elsif article and article.metafields.custom.blog_post_canonical_url != blank %}
{% assign custom_canonical = article.metafields.custom.blog_post_canonical_url %}
{% endif %}
<link rel="canonical" href="{{ custom_canonical | default: canonical_url | default: page_url }}">
此代码块假设您为自定义字段使用以下名称:
product_canonical_url
collection_canonical_url
page_canonical_url
blog_post_canonial_url
它还假设使用了命名空间“custom”(Shopify 提供的默认值)。如果您使用不同的名称,可以更改上述加粗文本。如果您未为某种页面类型创建自定义规范链接自定义字段,则可以删除该页面类型的“elsif”和“assign”规则。
以下是如果您仅为产品和集合页面创建自定义规范元字段时,相同代码块的样子:
{% assign custom_canonical = null %}
{% if product and product.metafields.custom.product_canonical_url != blank %}
{% assign custom_canonical = product.metafields.custom.product_canonical_url %}
{% elsif collection and collection.metafields.custom.collection_canonical_url != blank %}
{% assign custom_canonical = collection.metafields.custom.collection_canonical_url %}
{% endif %}
<link rel="canonical" href="{{ custom_canonical | default: canonical_url | default: page_url }}">
以下是一个示例,展示如果您仅为集合页面创建自定义规范标签,且使用的命名空间为 cool_name、键名为 collection_canonical 时,代码块的样子:
{% assign custom_canonical = null %}
{% if collection and collection.metafields.cool_name.collection_canonical != blank %}
{% assign custom_canonical = collection.metafields.cool_name.collection_canonical %}
{% endif %}
<link rel="canonical" href="{{ custom_canonical | default: canonical_url | default: page_url }}">
如何为 Shopify 页面设置规范 URL(常见问题解答)
我需要在 Shopify 中添加规范标签吗?
不,如果您使用 Shopify 主题商店的主题,则无需在 Shopify 商店中添加规范标签。Shopify 主题默认自带规范 URL,这意味着它们会自动对具有重复内容的多个页面进行规范化处理。如果您使用的是缺乏此功能的第三方主题,则可能需要分配自定义规范 URL。
如何检查页面的规范标签?
要检查页面的规范标签:
1. 在浏览器中打开该页面。
2. 右键单击(Mac 上为 control+单击)页面并选择“检查”。
3. 在“检查”窗口中,使用 ctrl+F(Mac 上为 command+F)搜索“canonical”。
4. 您应该会看到一个带有 rel="canonical" 的 <link> 标签。
您还可以使用 Google Search Console 来检查 URL 是否包含规范标签。
何时应在我的 Shopify 商店中添加规范标签?
大多数情况下,您无需覆盖默认的规范值,但有时可能会出现重复页面被索引的情况。如果您无法重定向或设置 noindex 来处理重复版本,那么将其规范标签覆盖指向原始页面的 URL 是次优选择。规范标签对搜索引擎优化至关重要——它们确保正确的页面被索引并在搜索结果中显示。

