怎样使用canonical标签?

网址规范化一直是困扰站长以及搜索引擎的一个问题。据估计,网上有10%-30%的URL是内容相同但URL不一样的不规范化网址。

这就造成几个问题。比如:

  • 对站长来说,多个URL存在分散了页面权重,不利于排名。
  • 对搜索引擎来说,浪费资源,浪费带宽。
  • 搜索引擎发现多个网址内容相同时,不会惩罚,而会尽可能找出那个应该是规范化的网址。但程序毕竟只是程序,可能出错,挑出来的可能不是站长想要的那个规范化网址。
  • 网站上网址规范化问题太严重的话,也可能影响收录。一个权重不很高的域名,能收录的总页面数字是有限的。搜索引擎把资源花在收录不规范的网址上,留下给真正不同内容的资源就减少了。

要解决URL规范化问题也有很多选项,比如:

  • 在Google管理员工具中设置带3W和不带3W的,哪一个是规范化版本
  • 使用301转向,把不规范化URL全部转向到规范化URL
  • 确保使用的CMS系统只产生规范化网址
  • 确保网站上所有站内链接都指向规范化网址
  • 在提交给搜索引擎的网站地图中全部指定规范化网址

但这些方法都各有局限。

  • Google管理员工具不适用于其他搜索引擎
  • 有的站长因为某种原因做不了301转向
  • CMS系统大部分情况下不受自己控制
  • 内部链接自己可以控制,但其他人链接到自己网站上就不受控制了

总之,虽然有解决方法备选,但网址规范化到目前为止还是个不小的问题。

前几天Google,雅虎,微软共同发布了一个新的标签canonical tag,用于解决网址规范化问题。

简单说,就是在HTML文件的头部加上这样一段代码:

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

意义就是这个网页的规范化网址应该是:

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

下面这些URL都可以加上这段代码:

http://www.example.com/product.php?item=swedish-fish&category=gummy-candy

http://www.example.com/product.php?item=swedish-fish&trackingid=1234&sessionid=5678

这些URL的真正规范化网址就都成为:

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

简单说,这个标签相当是一个页面内的301转向。区别在于用户并不被转向,还是停留在不变网址上,而搜索引擎会把它当作是301转向处理,也就是说把页面链接的权重都集中到代码中指明的规范化网址上。

另外有几个细节站长需要注意:

  • 这个标签只是一种建议或暗示,而不是指令,它不像robots文件那样是个指令。所以搜索引擎会很大程度上考虑这个代码,但并不是百分之百,还会考虑其他情况来判断规范化网址。这也防止站长有可能把网址弄错。
  • 这段代码既可以使用绝对地址,也可以使用相对地址。通常还是建议使用绝对地址比较保险。
  • 指定的规范化网址上的内容,与其他使用这段代码的非规范化网址内容可以有一些不同,不一定完全一样。比如在电子商务网站上有很多按价钱、颜色,、尺寸升降排序,生成的URL全都不一样,但内容大体相同,只有细小区别,就可以使用这个标签。
  • 指定的规范化网址可以是不存在页面,返回404,也可以是还没有被收录的页面。但是不建议这么做,别没事找事。
  • 这个标签适用于同一个域名内,包括二级域名。但不适用于不同域名之间,防止有人劫持。(更新:canonical现在可以跨域名使用)
  • 别把这个标签当救命草,首先还是得把网站结构做好,尽量避免出现URL规范化问题。这只是最后万不得已的方法。

敏感的人大概能从这个新标准里看到建立大量外部链接的机会。

最后提一句,这个标准被3大搜索引擎Google,雅虎,微软同时支持,为什么没提百度呢?记得看到报道,从搜索量来看,百度是世界上第二大搜索引擎,为什么不带着我们一起玩?(2013年更新:百度也支持canonical标签)

作者: Zac@SEO每天一贴
版权属于: 中新虚拟主机
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。

52 条评论 “怎样使用canonical标签?

  1. yahoo: The tag will be treated similarly to a 301 redirect, in terms of transferring link references and other effects to the canonical form of the page.
    如果这样,用它代替以前用robots.txt禁止duplicate content,可能效果要好了?

    在不能301,不宜禁止robots,URL形式复杂的网站,用它时行网址规范化很强有力。

  2. 别把这个标签当救命草,首先还是得把网站结构做好
    蛮压韵的….这个比较实用于大型网站,不能静态化URL, 并且结构复杂的网站.

  3. 这个非常有用,改版的时候有时候因为技术上的升级或结构的改变,就能可会对URL有所更改,有了这个就可以抛弃一些的没用,这个网站的URL的统一上更加便捷!

  4. 可能几个国际搜索引擎巨头暂时还不认为百度是国际化的搜索引擎,所以没把它也拉进来一起玩。很多它们支持的标签百度都不支持。

  5. 我想請問一下Zac: 你的博客上有使用 canonical tag 嗎?目前已經有 canonical 相關的 WordPress 插件,但是我不確定是否有安裝的必要。

  6. 楼主的标签很有用,回去试验下;
    最近我的网站就遇到了规范化的问题;开始用。com域名后来改.cn
    再后来,两个一起用,后来发现有人竟然喜欢用不带www的,结果一个网站有了4个域名,后来减少到一个带www的,后来流量减少许多;
    现在干脆废掉一个域名,做另外一个网站;
    最后的格局是com一个网站,cn一个网站;
    全都用www开头的做主站,不带www的都指向到带www的域名(不知道这是不是楼主说的301操作)
    总算规范了

  7. 使用.httaccess照Zac的教程规范网址, 总是会出各种各样的问题, 也不知为啥, 有时网址是规范了, 但google analytics跟踪有问题了, google那边回复说是由于网址做了转向, 还有一次更奇怪, 做了网址规范之后, 首页就无法访问了, 现在把.httaccess删了,不敢再用了….

    另还有个问题想请教, 我有个网站想通过.httaccess控制404 error页面, 但这个网站下有个wordpress的blog, 尽管我定义了.httaccess到网站根目录下的一个页面, 却始终都是跳转到wordpress下的404页面, 请问这个问题有解决办法吗? 我在一些wordpress论坛都发过帖子询问这个问题, 没得到答案, 谢谢

  8. Raymond还没摸清门路。
    .htaccess每个目录都可以有,没有是继承上级目录中.htaccess的设置。
    你说的问题都是.htaccess规则写得有问题,google analytics、wordpress没啥关系的。他们解决不了你的问题,找人看看htaccess规则就行了。

  9. 加飞: 嗯,没注意到还押韵呢 🙂

    Young: 我没有装,也不打算装。没什么严重问题,就不自找麻烦了。

    Raymond: 建议你问一下你的程序员。不同情况需要写的规则代码不同,很难有一定之规。

  10. Zac,我是你的新读者,这个标签的最终目的是达到网址规范化,是指加了该标签后,虽然用户通过不同规范的网址访问都被定义为访问改标签中的网址么,比如域名为www.abc.com,首页加标签,那么用户访问abc.com时也被认为在访问www.abc.com,从而不会造成权重分散?

  11. 我是虚拟主机做不了301转向,现在google收录的非www页面比带www的多了几倍!急啊!是不是在每个页面加入这段代码指向带www的页面就可以将非www页面的权重传递到带www的页面? –菜鸟

  12. “敏感的人大概能从这个新标准里看到建立大量外部链接的机会。” 是指制作WP小插件之类的工具来获得外部链接么?求证。。。。

  13. 在百度搜索关键词,发现子页面正文部分的内容都搜索不到,这是什么原因。我用了百度自动推送的接口。。。

留个言呗:

您的邮箱不会被显示在页面上。标有*的是必填项。