先确认异常是“规则被误读”还是“抓取行为被改变”,再按目录层级、规则顺序和生效时间三个维度缩小范围。最有效的起点是:用搜索引擎的抓取测试工具逐条验证,同时对比服务器日志中异常前后的抓取量变化。不要先改文件,先定位哪些路径被影响。
robots.txt 异常通常表现为三种:一是整站被禁止抓取,二是某个目录被意外屏蔽,三是规则语法错误导致部分爬虫忽略后续指令。整站禁止影响最大,需要立即处理;目录屏蔽影响局部,可以按业务优先级排序;语法错误往往只影响不兼容的爬虫,代价相对可控。
判断依据是:查看 robots.txt 中是否出现 Disallow: /,以及该行是否被放在文件顶部。如果整站禁止存在,影响范围就是全部可抓取 URL;如果只是 Disallow: /admin/ 这类目录规则,影响范围限于该目录及其子路径。语法错误则要看具体爬虫的解析行为,不同搜索引擎对同一错误的处理可能不同,必须分别核查。
不要只读文件内容,要读“爬虫实际执行的规则”。主流搜索引擎都提供抓取测试或 robots.txt 测试功能,输入具体 URL 后可以看到该 URL 是否被允许抓取,以及是哪一条规则命中的。这一步能直接回答“哪些 URL 被影响”。
执行步骤:
适用条件是:你已经有明确的目录结构,且异常发生在规则修改之后。如果目录结构本身混乱,先整理出主要路径再测试,否则范围会失真。判断结果是:被禁止的目录集合就是影响范围,未被禁止的目录可以暂时不动。
测试工具显示“禁止”不等于爬虫已经停止抓取。要确认影响范围,需要看服务器日志中异常时间点前后的抓取请求。重点看两个指标:来自目标搜索引擎的请求数量,以及被请求 URL 的分布。
如果日志显示某目录的抓取量在规则修改后骤降,说明该目录确实被影响;如果抓取量没有明显变化,可能是爬虫尚未重新读取 robots.txt,或者该爬虫不遵守这条规则。不同搜索引擎的抓取频率和缓存策略不同,不能用一个搜索引擎的日志推断另一个。
检查项:
时间和人手有限时,不要试图一次性修复所有路径。先处理影响核心流量和转化的目录。判断标准是:该目录是否包含主要着陆页、是否承担主要转化动作、是否被站点地图收录。
假设某站点有商品详情页、帮助中心和后台三个目录,robots.txt 误写了 Disallow: /product/。商品详情页承担主要流量,帮助中心影响较小,后台本来就不需要被抓取。此时优先修复商品目录,帮助中心可以稍后处理,后台保持禁止即可。这个例子是假设,用于说明优先级判断方法。
适用条件是:你能够区分目录的业务价值。如果无法区分,先恢复所有被意外禁止的目录,再逐步收紧,代价是可能短暂暴露不需要抓取的路径。
修改 robots.txt 后,重新用抓取测试工具验证之前被禁止的代表 URL。确认它们变为允许。然后观察服务器日志中该目录的抓取请求是否在接下来几天内恢复。不要期望立即恢复,不同搜索引擎重新读取 robots.txt 的周期不同,需要分别观察。
下一步:把本次异常涉及的目录、规则行和验证结果记录成一份简短清单,下次修改 robots.txt 前先对照这份清单检查,避免重复影响同一批路径。