在平时的SEO工作中,我们可以实用rel=”canonical”来规范网页

为什么要指定规范网页?

规范网页是一组内容高度相似的网页的首选版本。

对于网站来说,包含多个列有同组产品的网页很正常。例如,一个网页可能按字母表顺序显示产品,而其他网页则按照价格或评分显示相同产品。例如:

  • http://www.example.com/product.php?item=swedish-fish&trackingid=1234567&sort=alpha&sessionid=5678asfasdfasfd
  • http://www.example.com/product.php?item=swedish-fish&trackingid=1234567&sort=price&sessionid=5678asfasdfasfd

如果 Google 知道这些网页的内容相同,谷歌可能只会将搜索结果的一个版本编入索引。谷歌的算法会选择谷歌认为可以最好地回答用户查询的网页。不过,现在用户可以通过将 <link> 元素和 rel=”canonical” 属性添加到该网页非规范版本的 <head> 部分,为搜索引擎指定规范网页。

添加此链接和属性可以让网站拥有者识别出哪些网页具有相同的内容,从而向 Google 提出建议:“在内容相同的所有网页中,此网页最有用。请将该网页排在搜索结果中靠前的位置。”

如何指定规范网址?

您可以通过以下两种方式指定规范网址:

在每个非规范版本的 HTML 网页的 <head> 部分中,添加一个 rel=”canonical” 链接。

要指定指向网页 http://www.example.com/product.php?item=swedish-fish 的规范链接,请按以下形式创建 <link> 元素:

<link rel=”canonical” href=”http://www.example.com/product.php?item=swedish-fish”/>

将上述链接复制到某网页(例如 http://www.example.com/product.php?item=swedish-fish&sort=price)所有非规范版本的 <head> 部分中。

如果您在

http://www.example.com/product.php?item=swedish-fish

https://www.example.com/product.php?item=swedish-fish

上都发布了内容,则可以指定该网页的规范版本。创建 <link> 元素:

<link rel=”canonical” href=”http://www.example.com/product.php?item=swedish-fish”/>

将上述链接添加到 https://www.example.com/product.php?item=swedish-fish 的 <head> 部分中。

使用 Link rel=”canonical” HTTP 标头进行回应,从而指明网址的规范版本。向网页中的相应部分添加 rel=”canonical” 的方法适用于 HTML 内容,但是不适用于 PDF 以及其他由“Google 网页搜索”编入索引的文件类型。在这种情况下,您可以使用 Link rel=”canonical” HTTP 标头进行回应,从而指明规范版本的网址,如下所示(请注意,要使用该选项,您需要拥有配置服务器的权限):

Link: <http://www.example.com/downloads/white-paper.pdf>; rel=”canonical”

目前,Google 仅针对“Google 网页搜索”支持这些链接标头元素。

rel=”canonical” 是建议还是指令?

通过此新选项,网站拥有者可以建议 Google 应将哪个网页版本视为规范版本。在确定哪些网址包含相同的内容以及计算其中关联性最强而要显示在搜索结果中的的网页时,Google 会结合其他信息考虑此建议。

此链接可以是相对的或是绝对的吗?

rel=”canonical” 可与相对链接或绝对链接一起使用,但谷歌建议您使用绝对链接,以最大程度地减少可能出现的混乱或问题。如果您的文档指定了一个基础链接,则所有相对链接都会相对于该基础链接。

一组网页上的内容必须与规范版本的上内容相似吗?

是的。rel=”canonical” 属性只能用来指定包含相同内容(即使存在微小差异,比如排列顺序,也无关紧要)的大量网页的首选版本。

例如,如果某网站有一组网页显示了相同型号的舞蹈鞋,只是每个网页图片中鞋的颜色有所不同,那么您可以将能突出当下最流行色彩的网页设置为规范版本,这样 Google 就比较容易将该网页显示在搜索结果中。不过,如果该网站只是想把凝胶鞋垫的网页排在鞋的网页之前,那么使用 rel=”canonical” 就不合适了。

如果 rel=”canonical” 指向了不存在的网页会怎样?或者如果将一组网页中的多个网页指定为规范版本会怎样?

谷歌会尽力使用算法确定适当的规范网页,就像谷歌以前所做的那样。

Google 能遵守 rel=”canonical” 的一系列规定吗?

在一定程度上可以,但为了确保达到最佳规范化,谷歌强烈建议您将链接更新为指向单个规范网页。

rel=”canonical” 可用于在完全不同的域中建议规范网址吗?

有些情况下,设置重定向网址并非易事。如果需要迁移到新域名,而使用的网络服务器又不能创建服务器端重定向网址,就可能发生这种情况。这种情况下,可以使用 rel=”canonical” 链接元素指定想要编入索引的域的确切网址。

虽然 rel=”canonical” 链接元素被视为一种建议而不是需要绝对服从的指令,但谷歌确实会尽可能予以遵循。