站点被访问的记录,是判断抓取状况最直接的一手材料。Sitemap 里放了多少条、工具后台提交了多少 URL,都只是「告诉蜘蛛这里有什么」;而服务器访问日志记下来的是「蜘蛛实际走了哪些地址、拿到了什么结果」。两者对照着看,很多关于抓取的问题才有答案。
日志回答的是「实际发生了什么」
搜索抓取这件事,能控制的部分是入口和路径,不能控制的部分是蜘蛛什么时候来、来几次。日志恰好落在中间:它记录的是已经发生的事实。定期翻一翻,往往比每天盯着抓取量曲线更容易发现具体问题,比如某个目录突然整片变成 404,或者某类页面迟迟没有任何访问记录。
先分清来访的到底是谁
日志的 User-Agent 一栏经常混着各种爬虫,直接按 UA 统计很容易得出错误结论。
- 搜索蜘蛛:主流搜索引擎的爬虫标识相对固定,但 UA 本身可以伪造。要求严格的场景,可以配合反向 DNS 校验,确认来源确实属于该搜索引擎。
- 第三方工具与 AI 爬虫:SEO 工具、站点监控、内容采集类爬虫也会频繁访问,它们不代表搜索抓取行为。
- 内部访问与回源:CDN 回源、内网监控、压力测试产生的记录要排除,否则抓取量会被明显高估。
把这几类拆开之后,再去统计访问频次和 URL 分布,数据才有参考价值。
值得记录的几类字段
- 时间:判断抓取是否集中在某个时段,是否与备份、发布任务撞在一起。
- URL:看蜘蛛走到了哪些目录、层级如何,哪些入口长期没有记录。
- 状态码:5xx、3xx、404 的占比能直接反映路径质量。
- 响应体积与耗时:体积异常小的 200,可能是空页面或软 404。
- Referer:多数蜘蛛不携带,但偶尔能看出它是从哪个页面走过来的。
从状态码分布看路径问题
5xx 偏多
说明抓取过程中服务器频繁失败。这类记录常常集中在某几个接口或某一类动态页面,原因可能是超时、数据库压力或并发限制。抓取失败本身就会让蜘蛛降低后续访问频率。
3xx 偏多
大量跳转通常来自旧路径没有清理、尾斜杠与大小写写法不统一,或者协议与主域名没有归一。每跳一次,就多消耗一次请求。
404 与 200 空页面
404 记录里如果出现大量曾经有效的路径,多半是改版或删内容之后没有做跳转。反过来,返回 200 但响应体积明显偏小的页面,要抽查是不是内容为空。
抓取分布能看出入口够不够
把日志里的 URL 按目录归拢,通常会看到明显的集中:首页、列表页、被外链指向的页面被反复访问,深处的栏目页几乎没有记录。这时问题大多不在蜘蛛,而在站内入口的位置和数量。给这些目录补上更靠前的内链入口,比反复提交 URL 更有效。
几个容易踩的误判
- 把日志条数直接当成抓取量。日志可能只保留几天,或者 CDN 层做过采样。
- 只看总次数,不看 URL 去重后的数量。一个页面被访问一千次,和一千个页面各访问一次,含义完全不同。
- 忽略慢请求。耗时很长但最终返回 200 的页面,同样会拖慢整体抓取节奏。
看完之后可以做的事
- 清理日志里反复出现的 404,能跳转的做 301,确认不再使用的返回 410。
- 检查被抓取的 URL 里有没有测试页、参数组合页、后台路径,需要屏蔽的用 robots 规则处理。
- 把响应时间明显偏长的页面列出来,逐项排查。
- 对长期没有抓取记录的目录,补内链入口或调整导航层级。
- 把日志结论和 Sitemap 对照,看提交的 URL 与实际被抓的 URL 差在哪里。
日志不会直接给出结论,它只提供证据。把它变成定期检查的习惯,比临时寻找某个「技巧」更接近稳定的抓取状态。