首页 » 技术 » 网络 » 优化 » 尽量使用canonical或者noindex(非robots.txt)来限制搜索引擎

尽量使用canonical或者noindex(非robots.txt)来限制搜索引擎

一位博友这几天迁移了博客,刚才他问到robots.txt的写法时,我猛地想起来我的robots.txt已经许久没有光顾,早期我经常更改这个文件,很在意它。一搜Google的结果果然出问题了。

replytocom

我原来有在robots.txt中添加过:Disallow: *replytocom

意思是告诉搜索引擎不收录任何含有这个字符的网址,但是现在觉得多此一举,因为谷歌本来就会判断,或者你也可以通过Canonical参数可以校正谷歌的搜索结果。(下文详细)

虽然说搜索:“site:clyee.com inurl:replytocom” 的时候,显示结果只有1,但如果点击“查看全部相关结果”的话会看到很多的结果,大概有1000多个。尽管这些结果应该是不计入权重、PR值(第一没有PR,第二Google遵循站长指定的规则),但看起来就很不舒服。感觉收录结果很不干净。前段时间我还特地的在Google的Webmaster后台清扫过这些索引项,但没想到会再次收录。

我回想起大多数Wordpress博客,都没有做任何手脚,而且也存在?replytocom这样的参数,但是Google丝毫没有收录。这是为什么呢:

其实想让谷歌不收录一样东西,通常大家的做法是:1.利用robots.txt禁止 2.再者就是添加noindex标签 但是首先Google会优先录取没有参数的网址,自动分析。另外有个参数可以直接做到校正收录链接:前段时间Matt介绍过rel="canonical",全部的写法如下(举的例子是一个存在replytocom参数的链接的网址的源码)

canonical

不难看出这是插件All in one seo自动生成的标签。意思就是告诉搜索引擎同样的内容的网页下,首选版本是哪个(也就是告诉搜索引擎如果你要收录的话,收录哪个)。比如有下列两个网址:

  1. http://clyee.com/1234.html?replytocom=3333
  2. http://clyee.com/1234.html

但是这两个网页的内容相同,这时候All in one seo(你也可以自己添加)就会告诉搜索引擎应该收录的是第二个网址。

我建议如果可以通过noindex, rel=”canonical” 来校正收录的话,尽量不要使用robots.txt文件来禁止搜索引擎爬行,我认为robots.txt是个搜索引擎必须遵循的很不友好的方法,这也就是为什么robots.txt限制的收录选项会出现在Google后台的“收录错误”中(我认为的)。如果可以通过代码形式来限制收录,尽量用代码。一切可以通过robots.txt来限制的内容,也同样都可以用noindex来限制。因为用robots.txt限制的文件,经常会以“空白索引”的形式出现在搜索引擎结果中。

备注:当然Google后台中还有个参数筛选的,可以直接添加(一般是早已经检测了的,并且选项为:由Google决定)或者编辑参数的功能和收录建议,但是据我观察,这个的优先级次于robots.txt。 一切爬行动作都在蜘蛛读完了robots.txt规则后执行,这也就是为什么我设置了:robots.txt文件的Disallow和Google后台的参数设置,仍然会被收录很多的“空白索引”。

*空白索引:非官方名词,在文章指代只有标题的搜索结果,没有Description。

*机器人向导:点击查看详情(百度百科)