核对 robots.txt 相关日志时,最该先看的是请求行里的目标路径、状态码和 User-Agent,其次看响应大小与时间戳。它们能回答三个问题:谁在抓、抓了什么、拿到的是不是 robots.txt 本身。若只盯着访问次数,往往会把“抓取失败”误判成“规则生效”。
假设某站点把 Disallow: /private/ 写进 robots.txt,运维从日志中筛出三条记录:
GET /robots.txt 200,User-Agent 为某搜索爬虫;GET /private/report 404,同一爬虫;GET /private/report 200,浏览器 UA。第一条说明爬虫成功读取了规则;第二条不能单独证明它遵守了规则,因为 404 也可能来自链接失效或服务端路由问题;第三条与爬虫无关,却常被误当成“robots.txt 没生效”。这说明日志字段必须组合看,不能凭单一状态码下结论。
多人协作时,建议把下面几项固定成检查清单,谁分析谁签字,减少来回确认:
/robots.txt,还是被规则限制的目录。路径带查询参数时,也要记录完整值,否则容易把不同资源混在一起。抓取限制不等于索引移除。 日志显示爬虫读取了 Disallow,只能说明它被要求不要抓取,不能保证已收录页面会消失。要判断索引状态,应结合页面级索引检查,而不是只看 robots.txt 请求。
站点地图不保证收录。 若日志中同时出现站点地图和 robots.txt 请求,不要把“抓取成功”直接等同于“已收录”。两者是不同环节,需要分别核对。
另外,不同搜索引擎对 robots.txt 的支持细节可能不同,涉及具体搜索引擎时,应查阅其官方文档并分别核查,不要用一套结论套所有爬虫。
建议按“现象—字段证据—可能原因—待验证项”四段写。例如:现象是某目录仍被访问;字段证据是状态码 200、UA 为搜索爬虫、时间戳在规则更新之后;可能原因是缓存未刷新或规则路径写错;待验证项是直接请求 robots.txt 并比对返回内容。这样接手的人能复现,而不是只看到一句“已检查”。
下一步:拿一份真实日志,按上述字段筛出最近 24 小时的 robots.txt 请求,把状态码、UA、路径和字节数填进同一张表,再决定是改规则、清缓存还是继续观察。