很多站点运营者判断抓取情况,习惯只看站长平台里的抓取统计。那个数字能说明总量,但很难回答一个更具体的问题:蜘蛛到底沿着哪条路径进来的,又卡在了哪一步。服务器访问日志和抓取日志,是回答这个问题的原始材料。
先分清两类日志
服务器访问日志记录每一次请求,字段通常包括时间、IP、UA、路径、状态码、响应字节和耗时。抓取日志则来自搜索平台,侧重展示抓取频次、响应结果和部分 URL 示例。两者视角不同:前者是服务器侧的全量记录,后者是平台侧的抽样汇总。核对时,建议以服务器日志为主,用平台数据做交叉验证。
日志里值得重点看的字段
- UA 与验证:先确认访问者是不是真正的搜索蜘蛛。反向 DNS 或 IP 段验证能过滤掉伪装爬虫,避免把噪声当成抓取数据。
- 请求路径:看蜘蛛优先访问了哪些目录,哪些目录几乎没有记录。
- 状态码分布:200 是正常抓取,301/302 是跳转,404/410 是失效,5xx 和服务端超时则意味着抓取被中断。
- 响应耗时与字节数:耗时突然拉长、返回字节异常偏小,往往对应动态渲染失败或接口抽风。
- referer 与来源路径:部分日志会记录来源,能帮助还原蜘蛛是从内链、Sitemap 还是外链进入的。
用日志还原一条抓取路径
单条记录看不出路径,把同一 IP 或同一 UA 的连续请求按时间排列,就能拼出一条线索。常见的健康路径是:蜘蛛先请求首页或栏目页,再顺着导航和内链进入详情页,最后请求静态资源。如果日志里大量出现直接请求详情页、不请求任何列表页的情况,说明入口可能来自 Sitemap 或外部链接,内链传导没有发挥作用。
还要留意只抓入口、不进二级的模式。这种模式通常意味着入口页的链接不可见,或者链接被 JS 渲染、被 nofollow、被 robots 规则挡住。
和 Sitemap、内链做交叉核对
把 Sitemap 中的 URL 列表与日志里实际被抓取的 URL 列表做差集,可以分成三类:已提交且被抓、已提交但未抓、未提交却被抓。第一类说明通路正常;第二类要检查 Sitemap 是否被正确读取、URL 是否被 robots 拦截、页面是否长期返回异常;第三类则说明内链或外链的发现能力比 Sitemap 更强,值得保留和加强。
内链核对可以更细:导航链接、正文链接、页脚链接的抓取频次往往不同。用日志统计不同位置的链接被跟随的比例,能看出蜘蛛更信任哪类入口。
服务器稳定性会扭曲日志结论
如果某段时间 5xx 或超时记录突然增多,抓取频次通常会随之回落,这不是蜘蛛不喜欢你了,而是它在降低请求压力。此时先修服务,再谈抓取优化。日志中的响应时间也要结合缓存层看:CDN 命中时蜘蛛拿到的是缓存版本,回源时才是真实源站状态,两者不一致会让抓取判断出现偏差。
观察周期与常见误判
- 不要用一天的数据下结论,抓取有波动,至少观察一到两周。
- 不要把平台抓取统计的下降直接等同于惩罚,先排查服务端异常和 robots 变更。
- 不要忽略日志轮转和采样,部分环境只记录部分请求,样本不全会导致路径判断失真。
- 不要只盯着 URL 数量,抓取深度和状态码质量同样重要。
抓取日志的价值不在于证明被收录了,而在于发现哪一段路径断了、哪一类响应拖慢了整体节奏。
把日志、Sitemap 和内链放在一起看,形成固定的核对清单,再配合稳定的服务器响应,URL 发现和抓取效率才更容易保持在可控范围内。