当怀疑robots.txt规则拦截了正常抓取时,日志里最该优先核对的是:请求URL、User-Agent、HTTP状态码、请求时间、来源IP,以及爬虫获取robots.txt的记录。判断逻辑不是“看到404就一定是问题”,而是把这些字段和robots.txt中的Disallow、Allow、User-agent分组逐条对照,确认某条规则是否真的匹配了该URL,以及返回码是否符合预期。
爬虫在抓取页面之前,通常会先请求根目录下的robots.txt。因此日志中应能找到类似 /robots.txt 的请求行。需要核对的字段包括:
/robots.txt,而不是其他路径下的同名文件。如果日志里完全没有robots.txt请求记录,可能是日志未覆盖该路径、被CDN或WAF拦截、或爬虫尚未抓取。这属于“可能原因”,不能直接断定规则失效。
找到疑似被拦截的页面请求后,核对以下字段:
/private/ 和 /private 的结果可能不同。判断结果:若URL路径确实落在某条Disallow规则的前缀范围内,且User-Agent分组匹配,那么该请求被规则覆盖是合理结果。若URL未被任何Disallow覆盖却仍被拒绝,问题更可能在服务器配置、CDN或WAF,而不是robots.txt。
日志中出现robots.txt拦截,只说明抓取被限制,不等于页面会从索引中移除。反过来,允许抓取也不保证一定被收录。因此核对日志时,不要用“是否被索引”来反推robots.txt规则是否生效,这两件事的判断依据不同。
同时注意:站点地图提交、HTTPS配置、页面质量都不在robots.txt规则的直接作用范围内。日志核对应聚焦在抓取行为本身,避免把无关指标混入判断。
完成一轮核对后,按以下步骤复查:
下一步:先导出最近一段时间的日志,筛出robots.txt请求行和目标URL请求行,把User-Agent、URL、状态码三列并列对照,再决定是修改规则、调整服务器配置,还是继续观察。