html canonical link element

相同一篇文章内容出现在不同的网址上,就产生了内容重复,这就给搜索引擎网页排名算法造成了麻烦。

网页内容重复常见原因

  1. 同一网站下因为url请求参数不一样,却显示了相同内容。
  2. 由于CMS系统内容分发导致不同网址输出了相同的一篇文章。
  3. 相同的一个数据源,在不同的hosts/protocols中显示了同一份内容。
  4. 互联网转载。

搜索引擎为了优化网页排名,在link标签的属性rel中加入了一个canonical值,为当前网页内容指定了canonical版本,更多可参考官方文档

搜索引擎如何处理rel=canonical

自2009年2月起,Google、Yahoo和Microsoft三个搜索引擎公司开始支持此标签属性。

搜索引擎会利用此属性来对抓取的结果进行过滤,并根据此属性值来确定内容的原始来源页面,对于搜索结果的排名算法有一定影响。

实现rel=canonical的二种方法

  1. 在html的head元素中添加:<link ref="canonical" src="http://example.com/page.html" />
  2. 在http响应头里添加:Link: <http://example.com/page.html>; rel="canonical"

错误用法

  1. rel=canonical指向的url不存在。
  2. rel=cononical指向网站的robots.txt禁止了搜索引擎爬虫。
  3. 在网页里出现多次rel=cononical
  4. rel=cononical出现在body标签中。
  5. 分页时,多个页面指向了一个相同的rel=cononical
  6. 使用CMS或者博客插件,导致rel=cononical指向了插件作者的网站。
  7. rel=cononical使用了相对地址,最好是使用url绝对地址。

References

  1. Canonical link element
  2. 使用规范网址
  3. 5 common mistakes with rel=canonical
  4. Matt Cutts: Gadgets, Google, and SEO