判断是否需要回退,核心看两点:新写法是否造成了超出预期的抓取阻断,以及这种阻断是否无法通过局部修改解决。如果只是个别目录被误封,优先改规则;如果整站核心路径被拦截、日志中正常抓取骤降,且短时间内无法定位具体冲突行,就应回退到上一版可用的 robots.txt,再逐条排查。回退是止损手段,不是最终修复。
robots.txt 只控制爬虫可抓取的范围,不负责把已收录页面删除,也不能保证页面一定被索引。因此看到流量或收录变化时,不要直接归因于它。可以按下面顺序核对:
只有当日志或测试工具明确显示关键路径被新规则拦截,才进入回退判断。
适合直接回退的情形:新规则误封了整站或主要栏目,例如把 Disallow: / 写进了正式环境;通配符或结尾匹配写错,导致大量本应抓取的路径被一并拦截;多人协作时覆盖了上一版文件,且没有留档。这些情况下,先恢复上一版能最快恢复抓取。
适合局部修改的情形:只有少数目录或参数被误封,核心页面仍可抓取;问题出在某条规则的优先级或匹配范围,改一行即可验证。此时回退反而会丢掉新规则中正确的部分。
判断依据可以简化为:受影响路径占比高、无法快速定位冲突行、业务对抓取时效敏感,满足其中两条就倾向回退。
回退不是简单删文件,按步骤执行:
robots-20240601.txt,便于后续对比。/robots.txt,保持纯文本、UTF-8 编码、放在站点根目录。验收信号包括:测试工具显示目标 URL 可抓取;日志中核心目录请求量回升;没有出现新的误封路径。若回退后问题依旧,说明原因不在 robots.txt,应转向其他排查方向。
回退只是恢复原状,真正要解决的是写法本身。建议每次修改前先明确要允许和禁止的路径,用注释标明每条规则的目的;涉及通配符 * 和结尾符 $ 时,先在测试环境验证匹配结果;不要用 robots.txt 处理需要索引的页面,它不适合做精细的收录管理。站点地图和 robots.txt 是两套机制,前者提交不保证收录,后者限制抓取也不等于移除索引,两者不要混用。
如果时间有限,下一步可以先做一件事:把当前 robots.txt 与上一版逐行对比,标出所有新增或修改的 Disallow 行,再针对这些行逐一测试目标 URL,判断是回退还是改一行即可。