核对robots.txt相关日志时,最先要看的是请求URL、HTTP状态码、User-agent、请求时间与来源IP这五类字段。它们能回答三个问题:谁在请求、请求的是不是robots.txt、服务器返回了什么。只盯着访问量或总请求数,通常无法判断抓取限制是否按预期生效。
日志中的URL字段需要精确到路径,而不是只看到域名。你要找的是/robots.txt这一条,而不是首页或任意页面。判断时注意区分大小写与结尾斜杠,某些服务器会把/robots.txt和/Robots.txt当作不同资源处理。
状态码决定后续判断方向:
需要提醒的是,robots.txt的抓取限制不等于可靠的索引移除。一个URL被禁止抓取,仍可能因为外部链接等原因出现在搜索结果中。日志只能证明“请求发生了什么”,不能直接证明“索引状态如何”。
User-agent字段用来判断请求来自哪类抓取工具。核对时不要只看名称里有没有“bot”字样,而要与该抓取工具官方公布的验证方式比对,例如反向DNS查询或官方IP段列表。仅凭User-agent字符串可以被伪造,不能作为唯一依据。
来源IP字段用于交叉验证。把IP与User-agent放在一起看,能发现两类常见现象:
如果日志里出现大量不同User-agent请求同一个robots.txt,先不要下结论说“被恶意抓取”。这可能是CDN回源、监控探针或安全扫描造成的,需要结合请求频率和路径分布判断。
请求时间字段要精确到秒或毫秒,并注意日志使用的是服务器本地时间还是UTC。时区不一致会让“每小时请求次数”这类统计出现偏差。
把时间与URL、User-agent组合起来,可以计算单位时间内的请求次数。判断是否异常没有统一阈值,要结合站点规模和该抓取工具的正常行为。一个可执行的检查方法是:先取最近7天同一时段的请求量作为基线,再看某一天是否明显偏离。偏离只说明“值得进一步看”,不等于已经定位到原因。
响应体大小(bytes sent)能帮助判断返回的是不是完整文件。如果状态码是200但字节数极小,可能返回的是空文件或错误页。把它与本地robots.txt的实际大小对比,是一个低成本的检查项。
Referer字段在robots.txt请求中经常为空,这属于正常现象。如果出现非空Referer,可以记录来源页面,用于判断是否有页面在主动引用该文件。它不改变robots.txt的解析结果,只是辅助线索。
/robots.txt的日志行。验收信号是:你能明确说出“哪个抓取工具、在什么时间、请求了哪个路径、得到了什么状态码”。如果只能说出总请求数,说明字段还没有核对到位。下一步,把筛出的异常状态码对应的原始日志行保存下来,再与服务器配置和robots.txt实际内容逐条比对。