说起canonical,可能很多人都知道或者用过,因为早在2009年的时候,谷歌、雅虎和live search三家搜索引擎就宣布支持link
(可参考w3school)的这个新属性。但它具体是做什么的,又在什么情况下使用比较好呢?这就是本篇的重点介绍内容。
1. 使用目的是什么?
其实就是解决网站内容存在多个版本时,指定规范链接,帮助解决内容重复收录问题。
2. 它的作用是什么?
canonical标签就是告诉搜索引擎哪个页面是权威页面。以我的理解,canonical标签大致的作用如下:
第一,使网址规范化。
第二,避免内容重复页面,搜索引擎收录更准确。
第三,集中传递页面权重。
canonical链接标签只能作用于同一个域名所在的网址,不能作用于不同域名上的重复内容。如果是跨站,可以使用301重定向。
网址不规范,会降低页面权重,是因为搜索引擎会认为页面内容有重复。做法是将这些不规范的网址,指向同一个页面。
假设网站上有如下网址所在页面内容是相同的:
http://www.hehaibao.com/site
http://www.hehaibao.com/site?sessionid=123456
http://www.hehaibao.com/site?trackingid=666
可以在head meta
部分加入如下代码:
1 |
<link rel="canonical" href="http://www.hehaibao.com/site" /> |
后两个页面的内容会被搜索引擎认为是重复内容,就是告知搜索引擎把相关的搜索信号都传递到第一个网址。
这样任何含有这个标签的网页,不管它最终的URL是什么,搜索引擎最终都会只收录 canonical标签指定的那个页面。
这样做的好处是避免多个URL的存在,分散了页面权重,更加利于排名。
3. 需要注意什么?
一般推荐使用绝对地址,因为使用canonical目的就是为规范链接,所以采用绝对地址是最妥当的,但是要注意的是:不能跨域名指向,也就是不能指向不同的域名,当然它也不是万能的,对于大型重复页面出现的商城,例如淘宝,京东这些,要解决完美的url规范可不是那么容易的。
4. 什么情况下用?
第1种:当无法使用301永久性重定向使用时
301永久性重定向是目前几乎所有主流搜索引擎,都公开表示支持的一种规范链接做法,但是相当一部分网站管理员是个人的,靠着虚拟主机开设的网站,因此缺乏服务器的支持,不能使用301永久性重定向,那么这个时候推荐使用link rel="canonical"
。
第2种:当site缺省和带www出入很大的时候
就拿我这个博客来说:
site:www.hehaibao.com – 约431个网页被收录
site:hehaibao.com – 约985个网页被收录
这里有一个前提就是,你的网站没有开设子域名,当你site缺省和带www数据相差比较悬殊的时候,就说明存在重复收录的现象,这个时候就有必要使用link rel="canonical"
做规范链接处理。
很显然,我的博客有第2种的情况,因此我在WordPress header.php
中加入了如下代码:
1 2 3 4 5 6 7 |
<?php if( is_single()) { ?> <link rel="canonical" href="<?php the_permalink();?>"/> <?php } ?> <?php if ( is_home() ) { ?> <link rel="canonical" href="<?php bloginfo('url'); ?>"/> <?php } ?> |
Tips: 以上代码(基于4.9.7版本)将会在首页和文章详情页中显示canonical。
本文参考了网上一些资料得出以上的观点。
从SEO的角度来说,我觉得大家可以考虑给网站上加上canonical,这样就可以让搜索引擎知道当前网站中的重复或相似网页中,哪一个页面才是你想让其抓取与收录的。
写在最后
好了,本文到此结束,希望对你有帮助 ?
如果还有什么疑问或者建议,可以多多交流,原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。
如果觉得文章对你有帮助,请点个赞或者打赏支持一下,谢谢!