当你想确认某条 robots.txt 规则是否真的阻止了抓取,日志里最该核对的字段是:请求时间、请求方法、请求 URL(尤其是路径与查询串)、HTTP 状态码、User-Agent、来源 IP,以及响应体大小。其中状态码和 URL 路径是判断“是否命中规则”的核心,User-Agent 决定规则对谁生效,来源 IP 用来区分真实搜索引擎抓取与普通访问。只看到某个 URL 没被抓取,并不能证明是 robots.txt 起的作用,必须结合这些字段交叉判断。
抓取日志里缺少某个 URL,可能有多种解释:它从未被链接到、被其他页面挤出了抓取预算、服务器返回了错误、robots.txt 阻止了抓取,或者被抓取但记录在别的日志文件里。因此核对字段的目的是把“可能原因”缩小为“已经定位的原因”。
适用前提是:你拥有服务器访问日志或 CDN 日志,并且能按时间范围过滤。如果只有一份聚合统计,没有逐条请求记录,就无法完成下列核对。
/ 开头、是否带查询串。robots.txt 的 Disallow 匹配的是路径前缀,/private 与 /private/ 在部分实现下效果不同,日志里要看清实际请求的是哪一个。200 表示正常返回内容;403、404、5xx 各有不同含义。被 robots.txt 阻止的抓取,通常表现为该 URL 根本没有请求记录,而不是返回某个特定码。User-agent 行,否则规则可能对另一个爬虫生效。200 但响应体为 0 或极小,可能意味着返回了空内容,需要进一步看是否被中间层拦截。验收信号:修改规则后,被禁止的路径在日志中不再出现真实爬虫请求,而允许的路径仍有正常 200 记录。若被禁止路径仍被抓取,先确认是否是缓存、旧规则或另一个 UA 分组导致。
robots.txt 的抓取限制不等于可靠的索引移除。即使日志显示爬虫不再请求某 URL,该 URL 仍可能因外部链接或历史记录出现在搜索结果中。站点地图也不保证收录,提交只表示告知,不代表一定被抓取。HTTPS 不保证安全无漏洞或排名,它只是传输层加密。不同搜索引擎对 robots.txt 的支持细节须分别核查,不能把一种爬虫的日志结论直接套用到另一种。
下一步:挑一条你最近修改过的规则,按上面的字段在日志里跑一遍,确认“没被抓取”到底是规则生效,还是从未被链接或返回了错误。