前几个月,在Bo-blog的官方论坛上看到风吟提到了canonical属性,一直想着有空替自己的博客也弄一个。今天终于有时候弄,也终于弄好了!
canonical属性是Google、Yahoo、Mircrosoft三大搜索引擎共同支持的一个新属性,为网页指定权威链接,用来改善网站由于 URL 格式不同造成的重复内容问题。简单地说,canonical属性的作用就是为你排除诸多重复的页面。
详细的说明及范例: http://www.googlechinawebmaster.com/2009/02/url.html
比如说,由于Bo-blog的URL优化特性,你的页面会有三种状态。第一种是/blog/read.php?33,第二种是/blog/read.php/33.html,第三种是/blog/33/。甚至还有更复杂的因素,如你启用了alias别名功能,如santoprene-epdm,那日志还有可能变成/blog/santoprene-epdm.php或/blog/santoprene-epdm/。甚至你可能因为是spyrise.cn和spyrise.org的区别,使上面的页面个数乘以2。总之,完全相同的内容,却以好几个不同的URL显示着,太糟了!
如果这些页面全部被搜索引擎收录了,那可不是件好事。在搜索引擎看来,就相当于有了N个重复的页面,相应的页面权重就会下降。我们希望只有一个URL是被推荐的。
现在canonical属性提供这样一种功能,当你在页面的HTML代码中添加了<link rel="canonical" href="http://spyrise.org/blog/santoprene-epdm/" /> 属性后,Google就会知道这N个网址实际上是被建议指向您指定的标准URL: http://spyrise.org/blog/santoprene-epdm/上。其他的URL属性,比如PageRank和相关的其他因素,也都会自动指向该标准URL。这个标准同时也被搜索引擎在抓取和索引你的网站时所接受和使用。
听完介绍,是不是太棒了?是的。所以我今晚花了很多时间来弄这个,终于弄成了!写了一个firstheader类型的插件,放到plugin目录下,成功了!
你现在可以查看一下我的页面的HTML源代码,里面的description已经被个性化(这是个很大的改进,我放在canonical的插件里一起改了),同时添加了canonical属性。
2009-7-12 追记:
应一些朋友的要求,添加插件下载,名字定为multilex,请勿奇怪,这个名字是我随便起的,功能是为各具体页面添加canonical页面属性(修改description META属性的等其他功能已经被我移除了,怕大家混淆。懂PHP代码的朋友可随便修改,但请保留版权声明,谢谢)。
使用方法:解压(密码是spyrise.org,老规矩),上传至plugin目录下面,然后到后台->插件管理->添加插件,输入名字为multilex,安装就可以了。安装完后,可打开某页日志,检查是否有canonical的HTML输出。如果有,说明成功了。反之就是错误。如果安装后页面无法显示,也是错误。有bug,请速联系我,虽然我这里调试是OK的
友情提醒:如果你是有好几个域名指向了你的博客,比如http://www.spyrise.org/blog/santoprene-epdm/和http://spyrise.org/blog/santoprene-epdm/ ,那你可以在firstheader.php中将{$config['blogurl']}替换为http://spyrise.org/blog,这样可以强行指定推荐的URL中的域名为spyrise.org而不是www.spyrise.org。至少我就是这么操作的。
2010-6-28 追记:
已根据下面的cuongvietnam网友,对tag, catagory, main作过优化。但更好的用法是同时修改网页的description和keywords。
这样是什么问题 还有也找不到canonical这个词
我邮箱:[email protected]
谢谢
给我2天时间,我干脆发布一个这样插件得了。
2009-7-12 追记:已经发布了,你可以试试。
我这个是自己参照他的,然后修改,只带了我需要的功能,集成了“相关日志”和“canonical属性”的功能。
如果你确定要我的版本,告诉我一声。
2009-7-12 追记:已经发布了,你可以试试。