robots.txt 是挂在站点根目录下的一份纯文本协议,它表达的是“希望爬虫不要访问哪些路径”,并不是强制访问控制。很多站点在改版、上线测试目录、封禁后台之后,顺手往里面加了一行规则,之后忘了删,结果正常栏目被挡在门外很久都没人发现。这篇清单,就是把这份文件从头到尾过一遍。
一、先确认文件本身能被正常访问
直接打开 https://你的域名/robots.txt,确认返回 200、内容是纯文本,并且没有被 CDN、WAF 或登录跳转拦截。如果返回 404,多数爬虫会按“没有限制”处理,但诊断工具通常会给出提示;如果返回 5xx 或跳到登录页,爬虫读不到规则,实际行为就变得不可预期。
另外要记住子域名是各自独立的:m 站、blog 子域、测试域名的 robots.txt 互不影响,别以为在主站写一条就能覆盖全部。
二、常见误屏蔽场景
- 本意是屏蔽某个目录,结果写成了屏蔽整站的规则,全站被挡。
- 通配符用得过大,比如想挡 /search,写成 /s*,顺带把 /shop、/service 也覆盖了。
- 测试目录、备份目录临时屏蔽后忘了删除,规则一直留在文件里。
- 参数屏蔽写得过宽,把带分页参数的正常列表页一并干掉。
- 大小写、末尾斜杠与实际路径不一致,导致该挡的没挡住、不该挡的被误伤。
三、逐条核对规则
- 确认通用爬虫段落只有一个,特定爬虫的段落单独写,不要交叉混排。
- 检查每条屏蔽路径是否与线上真实 URL 一致,注意前缀匹配是“包含”关系,而不是“等于”。
- 如果用到了放行规则,注意主流爬虫按最长匹配优先,而不是按书写顺序,所以更具体的路径要写得更长。
- 确认没有误屏蔽样式表和脚本目录,否则会直接影响页面渲染效果。
- 核对文件末尾的站点地图声明,地址必须是完整的绝对 URL,并且能正常打开。
- 把 robots.txt 与页面里的 meta robots、响应头中的 X-Robots-Tag 放在一起看,三者不要互相打架。
四、改完之后的验证
不要改完就放着。可以用搜索平台提供的 robots.txt 测试工具,输入几条典型 URL,看判定结果是允许还是被屏蔽;再结合服务端访问日志,观察目标目录在接下来几天的抓取变化。改动建议保留一份历史版本,出现异常时可以快速回滚。
提醒:robots.txt 只是“请求”,并不能阻止页面被抓取或被引用。真正需要保密的目录,应该靠权限控制,而不是靠一行规则;把已经收录的 URL 屏蔽掉,也不会让它立刻从索引里消失。
五、把它纳入例行巡检
建议把 robots.txt 加进上线检查单:新增栏目、调整 URL 结构、关闭测试环境时都过一眼。最好由不同的人复核一次,避免“本意是屏蔽一个目录,实际屏蔽了半个站”这类低级但代价不小的问题。文件本身保持简短、注释清晰,比堆满规则更容易长期维护。