Robots.txt的常见错误
天下维客,你可以修改的网络知识库
| robots.txt综述 | 怎么写robots.txt | robots.txt语法规范 | 文件实例 | 常见错误 | 扩展功能 |
| robots.txt疑难解答 | 检测工具 | 禁止收录特定页面 | 清除已收录的页面 | META标签:robots | |
| nofollow | noindex | .htaccess | 网络爬虫的名称 | 常见爬虫的特性 | robots.txt相关链接 |
本文收录一些常见的robots.txt问题。创建robots.txt的方法请见怎么写robots.txt。
目录 |
网站缺少robots.txt
当服务器设置了404重定向功能后,对robots.txt的访问会被转至另一页面,这可能导致爬虫出现错误行为。
虽然这种风险不大,但仍然建议每个站长都在网站根目录下创建一个空的robots.txt文件。
robots.txt放置位置错误
放在子目录中的robots.txt将不能发挥作用,robots.txt必须位于根目录下!
使用网页工具创建robots.txt
robots.txt是纯文本文件而非html文件,使用FrontPage等网页工具很可能导致文件中包含大量html代码,因而出现错误。
请使用纯文本编辑器来创建robots.txt文件!例如写字板、emeditor、editplus等等。
Disallow的网址限制大小写错误
例如对于/private/目录,使用:
DISALLOW: /PRIVATE/
将有可能导致封禁无效。
请注意:书写限制条件时,大小写必须与真实路径的大小写相同
一行Disallow声明多个目录或文件
错误范例:
Disallow: /css/ /cgi-bin/images/
绝大多数的spiders对上述声明行都无法做出正确的解析,有些Spiders会忽略其空格而解析为/css//cgi-bin//images/,或只解析/images/或/css/,或者根本不予解析。 正确的语法应为每行书写一个限制条件:
Disallow: /css/ Disallow: /cgi-bin/ Disallow: /images/
Disallow中漏写目录斜杠
错误范例:
User-agent: * Disallow: john
按照robots.txt规定,Spider将对网址从头开始比较,也许遗漏的"/"将会导致该限制的失效。正确写法应为:
User-agent: * Disallow: /john
多个User-agent共用一组Disallow条件
错误范例:
User-agent:Somebot User-agent:Slurp Disallow: /xxx
这样书写无法断定Somebot是否会使用/xxx的限制。应改为如下书写:
User-agent:Somebot Disallow: /xxx User-agent:Slurp Disallow: /xxx
命令行中夹杂注释
错误范例:
Disallow: /cgi-bin/ # this bans robots from our cgi-bin
虽然根据RES标准上述语法有效,但它却并不能被所有的Spiders正确支持。有鉴于此,注释最好单独成行,上面的例子可以改写为:
# this bans robots from our cgi-bin Disallow: /cgi-bin/
指令行前有空格
例如“ Disallow: /cgi-bin/”,虽然RES标准并未对这种格式予以特别说明,但我们没必要冒Spiders无法正确解读的风险。
建议:命令行中仅在":"之后使用一个空格,除注释行外不要使用额外的空格。
robots.txt列出所有文件
这也是一种常见错误,不厌其烦地将目录下文件全数列出。例如:
Disallow: /AL/Alabama.html Disallow: /AL/AR.html Disallow: /Az/AZ.html Disallow: /Az/bali.html Disallow: /Az/bed-breakfast.html
其实,上面这么多声明行只需用目录选项来替代:
Disallow: /AL Disallow: /Az
考虑一下,如果服务器上有数千文件,维护一个全部文件列表有多累?过大的robots.txt文件体积,不仅毫无必要的增大了服务器开销,也许还可能导致爬虫内存溢出。
| 常见爬虫的特性 | GoogleBot | Mediapartners | Yahoo! Slurp | Yahoo! Slurp China | YodaoBot |
| 爬虫程序 | ia_archiver | iask | iearthworm | DigExt | Indy Library |
| 网络爬虫的名称 | 爬虫程序的屏蔽 | .htaccess | robots.txt | 更多爬虫 |


