关于rel=canonical的五个常见错误

2013年4月27日星期六

发表者: Allan Scott, 索引团队软件工程师

通过在网页中添加 rel=canonical 链接,可以向搜索引擎发出重要提示,使之了解在对网络中的 重复网页 编制索引时应首选使用的网页版本。Yahoo!、Bing 和 Google 等多个搜索引擎都支持添加此链接。rel=canonical 链接可以使被 收录的重复内容得以统一( 例如导入链接),而且可以指定您希望在搜索结果中显示的网址。但是,由于 rel=canonical 不太显而易见,因此,如果配置不当的话,用起来会有点棘手。
网站站长在自己的浏览器看到“ red velvet ”网页 (左图) ,搜索引擎却发现站长无
rel=canonical (指向)了“ blue velvet ”网页 (右图)

我们建议您在使用 rel=canonical 时遵循以下最佳做法:
●        规范网页应包含其对应重复网页的大部分内容。
一种检测办法是:假定您不懂网页内容所用的语言,如果您将重复网页与规范网页
并排放在一起,重复网页中的大部分字词是否会出现在规范网页中?如果您需要
懂得相应语言才能知道网页是否相似(例如,网页仅仅是局部类似,但实际字词
并不是非常接近),那么搜索引擎可能会忽略该规范标示。
●        仔细检查您的 rel=canonical 目标网页是否存在(不是错误页面或“ 软 404 错误 ”页面)
●        确认 rel=canonical 目标不包含 noindex robots 元标记
●        确保您在搜索结果中是要显示 rel=canonical 网址(而非重复网址)
●        在网页的 <head> 或 HTTP header 中添加 rel=canonical 链接
●        只能为一个网页指定一个 rel=canonical。如果指定多个 rel=canonical,搜索引擎就会忽略所有 rel=canonical。

错误 1:将 rel=canonical 指向分页内容的第 1 页

假定您的某篇文章分多页显示:
●        example.com/article?story=cupcake-news&page=1
●        example.com/article?story=cupcake-news&page=2
●        以此类推
将第 2 页(或之后的任何网页)中的 rel=canonical 链接指向第 1 页是对 rel=canonical 的错误使用,因为这些网页不是重复网页。在此例中使用 rel=canonical 会导致搜索引擎根本不会将第 2 页及后面网页中的内容编入索引。

如果将分页内容的其余组成页中的 rel=canonical 指向第 1 页,那么网页中的一些有用内容(例如,“cookies are superior nutrition”和“to vegetables”)将会丢失。

对于 分页内容 ,我们建议您将各组成页中的 rel=canonical 指向单页版文章,或者使用 rel=”prev” 和 rel=”next” 分页标记。

将各组成页中的 rel=canonical 指向“查看全部”网页

如果未将 rel=canonical 指向“查看全部”网页,则可以对分页内容使用 rel=”prev” 和 rel=”next” 标记。

错误 2:将绝对网址误写成相对网址

与许多 HTML 标记类似,<link> 标记既接受相对网址,也接受绝对网址。相对网址包括“相对于”当前网页的路径。例如,“images/cupcake.png”意味着“从当前目录转至‘images’子目录,然后转至 cupcake.png”。绝对网址指定的是完整路径,其中包含 https:// 这类结构。

指定 <link rel=canonical href=“example.com/cupcake.html” />(由于没有“https://”,因此该网址是相对网址)意味着所需的规范网址是 https://example.com/example.com/cupcake.html。在这类情形下,我们的算法可能会忽略指定的 rel=canonical。也就是说,不管您打算使用此 rel=canonical 达到什么目的,您都将无法实现。

错误 3:意外声明或多次声明 rel=canonical

我们偶尔会看到意外的 rel=canonical 标示。这种情况很少是由于单纯的拼写错误引起的,多数情况是因为网站站长忙于复制网页模板而忘记更改 rel=canonical 的目标网页造成的。现在,网站所有者的网页都会指定一个 rel=canonical 链接并使其指向模板作者的网站。
如果您使用了模板,请确认您未复制 rel=canonical 规范。

另一个问题是:网页包含多个指向不同网址的 rel=canonical 链接。这种情况的发生通常与搜索引擎优化 (SEO) 插件有关,该插件常常会插入默认的 rel=canonical 链接,安装此插件的网站站长可能也不知道这一情况。如果多次声明 rel=canonical,则 Google 很可能会忽略所有 rel=canonical 提示。这样一来,就会丧失正确 rel=canonical 可能带来的所有好处。

对于这两种情况,仔细检查网页的源代码将有助于纠正这一问题。由于 rel=canonical 链接可能会分散出现,因此请务必检查整个 <head> 部分。
通过查看网页的源代码检查插件的行为。

错误 4:在类别或目标网页中让 rel=canonical 链接指向专题文章

假设您经营着一家甜品网站。该甜品网站内有一些“糕点”和“冰淇淋”之类的实用类别网页。这些类别网页每天都会刊登一篇独具特色的文章。例如,您的糕点类别网页可能会以“红丝绒纸杯蛋糕”为主题。由于“糕点”类别网页的内容与“红绒纸杯蛋糕”网页的内容几乎完全相同,因此,您在类别网页中添加了 rel=canonical 链接并让其指向单独的专题文章。

如果搜索引擎接受此 rel=canonical,那么您的糕点类别网页将不会出现在搜索结果中。这是因为该 rel=canonical 指明了您希望搜索引擎显示规范网址,而不是重复网址。但是,如果您希望用户能够同时找到类别网页和专题文章,最好只在类别网页上添加指向自身的 rel=canonical,或者什么都不添加。
请注意,规范标示还会暗示首选的显示网址。请避免在类别或目标网页中添加指向专题文章的 rel=canonical 链接。

错误 5:在 <body> 中指定 rel=canonical

rel=canonical 链接标记只能出现在 HTML 文档的 <head> 中。此外,为了避免出现 HTML 解析问题,应尽早将 rel=canonical 添加到 <head> 中。如果 rel=canonical 标示出现在 <body> 中,搜索引擎会将其忽略。

这个错误非常容易纠正。只需尽早仔细检查您的 rel=canonical 链接是否始终位于网页的 <head> 中即可。

搜索引擎会处理 <head>(而非 <body>)中出现的 rel=canonical 标示。

总结

要创建有价值的 rel=canonical 标示,请执行以下操作:
  • 确认重复网页的大部分主要文字内容也出现在规范网页中。
  • 检查是否仅指定了一次 rel=canonical (如果已指定),并检查它是否位于网页的 <head> 部分。
  • 检查 rel=canonical 是否指向包含有用内容(即非 404 或更糟的软 404 错误)的现有网址。
  • 避免将目标网页或类别网页中的 rel=canonical 指向专题文章,因为这会导致专题文章成为搜索结果中的首选网址。

一如既往,如果您有任何问题,请在我们的 网站站长帮助论坛 中进行咨询。