canonical标签是2009年由google,雅虎、微软共同发布的一个标签,目的同URL静态化、301定向一样是用来解决网址规范化问题,当然它只是个标签而已并不是多么的麻烦,只要把它理解了就没有问题。
Canonical标签怎么使用呢?该用在哪?
浅显的来说,就是在<head>与</head>标签之间,也就是在HTML文件的头部加下如下代码:
<link rel="canonical" href="http://www.php.hhsy.cc/index.php?class_id=1" />
意思就是这个网页的规范化网址应该是:
http://www.php.hhsy.cc/index.php?class_id=1
如果下面这些URL都加上这段 canonical 标签:
http://www.php.hhsy.cc/index.php?class_id=1&id=231
http://www.php.hhsy.cc/index.php?class_id=1&sessionid=5678
则这些地址都将被规范为:
http://www.php.hhsy.cc/index.php?class_id=1
这和301转向有点相似,但也有区别,区别就在于用户并不被转向,而搜索引擎接受这个标签自动转向。但搜索引擎并非百分之百考虑这个标签,因为它并不是一个指令而更像是一种建议。有些网站由于技术限制不能做301转向,canonical标签就可以非常灵活的应用于HTML标签中。
使用 Canonical 标签我们要注意哪些细节?
①这个标签只是一种建议或暗示,而不是指令,它不像robots协议那样是个指令。所以搜索引擎会在很大程度上考虑这个标签,但并不是百分之百。搜索引擎还会考虑其他情况来判断规范化网址。这也就防止站长有可能把网址弄错。
②指定上的规范化网址可以是不存在页面,返回404页面,也可以是还没有被收录的页面。但是不建议这么做。
③这个标签可用于不同域名之间。
④标签既可以使用绝对地址,也可以使用相对地址。通常使用绝对地址比较保险。
⑤指定的规范化网址上的内容,与其他使用这个标签的非规范化网址内容可以有一些不同,不一定完全一样。
在某些特殊的情况下由于技术上有限制而不能做301转向,canonical标签就显得非常实在了,因为它不需要任何特殊服务器组件或功能,我们只要把上述所说的HTML中写上就可以了。
但是要提醒大家的是目前百度还不支持canonical标签,yahoo和bing对此标签的支持也不是很好。