rel=”canonical”,规范网址

October 29, 2009 4 Comments 分类: 网页

理论上讲,互联网上的一个网页有且仅有一个网址,若两个或两个以上不同的网址指向同一个网页,就是所谓的网址不规范。WordPress和其它博客或CMS一样,都存在多网址指向同一网页的问题,在07年的时候我就处理过网址规范化的问题,当时是用被动的robots.txt,后来又通过使用robots meta,并在.htaccess文件中使用301重定向,基本消灭了网址不规范的问题。

今年早些时候,Google、Yahoo和Live Search开始支持一种新的link标签属性,就是本文的要说的——rel=”canonical”。但我并不在意,因为我这个博客早已经解决了规范网址的问题,我所有的文章、页面、分类在搜索引擎中都只有唯一网址。直到今天我在Google的搜索结果中发现了一个重复的网址,来自“成都SEO”:

成都SEO搜索结果

重复的链接是www.onepx.com/chengdu-seo.html/comment-page-20090706,这个网址在我的博客上并不存在,推测是googlebot在其它网站上发现这个超链接follow了过来,虽然它和www.onepx.com/chengdu-seo.html上的内容完全一致,但还是被Google搜录了,造成网站权重的分散。同时也让我知道了一个wordpress的bug,开启自定义链接结构后,wordpress无法处理某些链接结构,诸如:

chengdu-seo-search-result

上面的搜索结果来自Yahoo,谁给我制造了这么多重复页面?面对这些不存在的网址链接,WordPress居然不会返回HTTP 404,给“坏人”以可乘之机,“坏人”可以在某网站上杜撰出无数的网址指向目标网站的某文章,并让搜索引擎去follow这些不规范网址,最后导致目标网站权重分散,或被搜索引擎降权。那我这个例子来说,显然是“成都SEO”在Google搜索结果中的排名靠前触动了某些人的神经,让他们动起了歪脑子。我只好用rel=”canonical”来规范网址了。

传wordpress的著名插件All in one SEO pack已经支持rel=”canonical”,我又用不了那么复杂的东西,自己写吧,在主题文件header.php的</head>之前加入:

<?php if ( is_single() ) { ?>

<link rel=”canonical” href=”<?php the_permalink() ?>” />

<?php } ?>

轻松搞定!

再来夸夸Firefox。Firefox早已经开始支持带有link rel=”canonical”属性的网页,如果访问http://www.onepx.com/chengdu-seo.html,firefox地址栏末尾显示:

Firefox支持rel=canonical

那个灰色的圆形C就是表示当前网页有link rel=”canonical”属性,如果访问http://www.onepx.com/chengdu-seo.html?bla=2009,圆形C会变成蓝色:

Firefox支持link rel=canonical标签

鼠标悬停上去,显示:

Go to the canonical page at http://xxxx….

点下去,就到了link rel=”canonical”属性中指定的规范网址。

综上,即使自己做到了规范化网址,也不能阻止别人使用一些小伎俩来搞破坏,最好还是加上link rel=”canonical”,有备无患。也非常希望百度去支持这种link标签,但貌似是不太可能的…

相关文章
4 条评论
See sth. ? Say sth. !
  1. 百度支持是很难的了,起码连robot.txt都不支持

    [回复]

    Dianso November 1, 2009
  2. 直接在头部里加那行代码就可以了吗?

    [回复]

    一个像素 答复:

    是的。

    [回复]

    断峰狼 November 3, 2009
  3. 来支持一下,如果可以,到我站上一转,定有收获
    china-iequip.com

    [回复]

    moshow November 11, 2009

发表评论

Commenter Gravatar