2006年8月8日星期二

主机不返回404状态导致网站无法被搜索引擎收录

“robots.txt”文件是用来告诉搜索引擎那些目录不希望被抓取的。很多网站通常没有这样的需求,因而很容易省略掉这个文件。当然,搜索引擎找不到这个文件并不妨碍网站被抓取,因为,搜索引擎会认为该网站没有不希望被抓取的路径。然而,有些情况下,没有“robots.txt”文件却成为了网站不被搜索引擎收录的元凶。

搜索引擎判断一个网站能够被抓取,要么,就是不存在“robots.txt”文件,要么,就是可以读取到正确的“robots.txt”文件,并且“robots.txt”文件中没有限制整个网站禁止被抓取。而搜索引擎判断“robots.txt”文件不存在的依据就是网站返回404错误。但是,并不是所有的主机都能够对不存在的文件正常返回404错误的。当主机返回的是其他的错误信息而非404,搜索引擎并不会认为“robots.txt”文件不存在,而会以为是服务器的暂时故障导致“robots.txt”文件不能被正确读取,因此不敢冒然抓取网站页面,只能过一段时间再来检查“robots.txt”文件。当然,主机可能永远也不会正确返回404错误,这就导致了网站永远不会被抓取。

这种情况就被我遇到了。我的 Blog 最近更换了新的虚拟主机,但是过了很多天,新的文章也没有被 Google Blog Search 收录,然而通常情况下新文章被 Google Blog Search 收录的速度是很快的。开始我怀疑是主机屏蔽了 Googlebot 的访问,或者是 Googlebot 把主机的IP列入了黑名单。后来,我在 Google Sitemaps 里面为我的 Blog 添加了一个 Sitemaps 文件,Google 读取了 Sitemaps 文件后报错,原因是“robots.txt”文件读取出错,事实上我并没有放置“robots.txt”文件。通过查看“robots.txt 分析”得知,主机返回的错误状态竟是500,我随后立即上传了有效的“robots.txt”文件,再次提交 Sitemaps 文件,Google 读取后返回了正确状态。并且过了15分钟后,再次用 Google Blog Search 尝试搜索,已经可以看到全部文章了。

当你发现网站长期没有被搜索引擎收录时,不妨试着先访问一下 http://yourdomain/robots.txt,如果你没有放置“robots.txt”文件而主机并没有返回404错误时,就应该马上放置一个正确的“robots.txt”文件,文件的内容可以这样写:
User-agent: *
Disallow:

或者留空。这样,你的网站就可以被正常地抓取了。

没有评论:

发表评论