HTML中canonical属性的妙用


编辑: upupw 发布时间: 2013-03-18 09:44:37 来源: UPUPW绿色服务器平台 热度: 4820

网站改版,因为是静态页面,为了不影响流量,老页面没敢删除。但是百度很长时间还是收录老页面,新页面收录量上不来。无意间发现了这个标签属性canonical,虽然他不是301重定向,但是却又异曲同工之妙,他可以指定规范网页,告诉搜索引擎哪个页面才是我想被收录的。

canonical这个属性(也许有人会称它为canonical标签)的意思说什么?Google、雅虎等都支持这一属性,其和301重定向的目的一样,在存在多个版本重复url的时候,为了规范化url告诉搜索引擎那个才是希望搜索引擎看到的url。关于它的解释,你可以参考 Google 对于rel="canonical"的解释,网上有人无意中做了个实验,发现其实百度也是支持的,让所有产品页面加上都加上rel=”canonical” 并且指向首页,结果在百度的收录数目减少了2万条,产品页面撤了该标签以后,收录恢复,所以其实百度也支持rel=”canonical”,看以下Google官方对这个属性的具体介绍:

什么是规范网页?为什么要指定规范网页?

规范网页是一组内容高度相似的网页的首选版本。

对于网站来说,包含多个列有同组产品的网页很正常。例如,一个网页可能按字母表顺序显示产品,而其他网页则按照价格或评分显示相同产品。例如:

http://www.bingd.com/product.PHP?item=swedish-fish&trackingid=1234567&sort=alpha&sessionid=5678asfasdfasfd

如果 Google 知道这些网页的内容相同,我们可能只会将搜索结果的一个版本编入索引。我们的算法会选择我们认为可以最好地回答用户查询的网页。不过,现在用户可以通过将 元素和 rel="canonical" 属性添加到该网页非规范版本的部分,为搜索引擎指定规范网页。添加此链接和属性可以让网站拥有者识别出哪些网页具有相同的内容,从而向 Google 提出建议:"在内容相同的所有网页中,此网页最有用。请将该网页排在搜索结果中靠前的位置。"

如何指定规范网页?

要指定指向网页 http://www.bingd.com/product.php?item=swedish-fish 的规范链接,请按以下形式创建 元素:

将上述链接复制到该网页所有非规范版本的部分,如 http://www.bingd.com/product.php?item=swedish-fish&sort=price。

如果您在 http://www.bingd.com/product.php?item=swedish-fish 和 https://www.bingd.com/product.php?item=swedish-fish 上都发布了内容,则可以指定该网页的规范版本。创建 元素:

将上述链接添加到 https://www.bingd.comproduct.php?item=swedish-fish 的部分。

rel="canonical" 是建议还是指令?

通过此新选项,网站拥有者可以建议 Google 应将哪个网页版本视为规范版本。在确定哪些网址包含相同的内容以及计算其中关联性最强而要显示在搜索结果中的的网页时,Google 会结合其他信息考虑此建议。

此链接可以是相对的或是绝对的吗?

rel="canonical" 属性可与相对链接或绝对链接一起使用,但我们建议使用绝对链接,以减少可能出现的混乱或问题。如果您的文档指定了一个基础链接,则所有相对链接都会相对于该基础链接。

一组网页上的内容必须与规范版本的上内容相似吗?

是的。rel="canonical" 属性只能用来指定包含相同内容(即使存在微小差异,比如排列顺序,也无关紧要)的大量网页的首选版本。

例如,如果某网站有一组网页显示了相同型号的舞蹈鞋,只是每个网页图片中鞋的颜色有所不同,那么您可以将能突出当下最流行色彩的网页设置为规范版本,这样 Google 就比较容易将该网页显示在搜索结果中。不过,如果该网站只是想把凝胶鞋垫的网页排在鞋的网页之前,那么使用 rel="canonical" 就不合适了。

如果 rel="canonical" 指向了不存在的网页会怎样?或者如果将一组网页中的多个网页指定为规范版本会怎样?

我们会尽力使用算法确定适当的规范网页,就像我们以前所做的那样。

Google 能遵守 rel="canonical" 的一系列规定吗?

在一定程度上可以,但为了确保达到最佳规范化,我们强烈建议您将链接更新为指向单个规范网页。

rel="canonical" 可以用来在完全不同的域中建议规范网址吗?

有些情况下,设置重定向网址并非易事。如果需要迁移到新域名,而使用的网络服务器又不能创建服务器端重定向网址,就可能发生这种情况。这种情况下,可以使用 rel="canonical" 链接元素指定想要编入索引的域的确切网址。虽然 rel="canonical" 链接元素被视为一种建议而不是需要绝对服从的指令,但我们确实会尽可能予以遵循。

有了这个属性,我们就可以让HTML静态页面支持301重定向了,搜索引擎真是越来越人性化了。