robots.txt 是站点里最不起眼的文件之一,通常只有几行,改一次几秒钟。但正因为改起来太容易,它也很容易变成抓取问题的源头:上一任运营留下的旧规则、测试时忘了删的一行 Disallow、复制模板时没改的目录名,都可能让蜘蛛在门外转一圈就走。
这份自查不用写代码,从浏览器和几份抓取日志就能做完。
第一步:确认文件本身能被读到
- 在浏览器直接打开 https://你的域名/robots.txt,看是否返回 200 和纯文本内容。返回 404 意味着没有规则,蜘蛛按默认方式抓取;返回 403、500 或跳到首页,才是真问题。
- 确认 www 与非 www、HTTP 与 HTTPS 各版本都能访问到同一份文件,避免蜘蛛从一个入口拿到 404、从另一个入口拿到规则。
- 注意路径区分大小写,/News/ 和 /news/ 不是一回事,规则里写错一个字母就会失效。
第二步:逐条看规则指向哪里
打开文件,从第一行往下读,重点看这几类容易写错的写法:
- 误伤整站:Disallow: / 会挡住所有蜘蛛,通常只该出现在测试环境,上线前必须删掉。
- 路径写偏:本想屏蔽搜索参数页,结果写成 Disallow: /s,把 /search、/sitemap 一起挡了。屏蔽目录时记得补上结尾斜杠。
- 通配符与结尾符:* 匹配任意字符,$ 表示结尾。规则越宽,误伤面越大,能用具体路径就别用通配符。
- 屏蔽了静态资源:把 /js/、/css/、/images/ 整目录挡住,蜘蛛拿不到样式和脚本,对页面渲染的判断会失真。
- 规则冲突:同一个 User-agent 段落里既有 Allow 又有 Disallow 时按最长匹配优先,读的时候不妨按路径长度排一下。
robots.txt 是一种约定,不是访问控制。它约束的是合规蜘蛛的抓取行为,挡不住直接请求。不想让页面出现在结果里,应该用 noindex 或权限控制,而不是只写 Disallow。
第三步:和站点地图、noindex 对齐
常见的一种别扭组合是:robots.txt 里 Disallow 了某个栏目,站点地图里却还列着这个栏目的 URL,页面本身又没有 noindex。这样处理结果往往不确定,也浪费提交配额。建议按下面顺序理一遍:
- 页面要保留、也要被抓:不要出现在 Disallow 里,正常写进站点地图。
- 页面要保留、但不想被索引:允许抓取,在页面加 noindex,站点地图里可以不列。
- 页面不要了:直接 301 或 410,比用规则挡住更干净。
第四步:改完规则怎么验证
改完不要只看文件本身,隔几天从抓取日志里抽几个被影响的 URL,看蜘蛛是否还在访问、访问频率有没有变化。也可以在搜索引擎提供的抓取测试工具里对具体 URL 做一次判定,确认结果符合预期。规则改动属于全局设置,一次只调一类,改动前后留个记录,出问题时能快速回滚。
robots.txt 不需要复杂,需要的是准确和稳定。把它当成一份长期有效的清单,每次改版、加新栏目、起测试环境时顺手看一眼,能省掉很多“为什么蜘蛛不来了”的排查时间。