很多人盯着蜘蛛的抓取数量看,却很少回到原始日志里。抓取量是结果,日志才是过程。同一批 URL 被反复抓、该抓的页面一直没人来,答案通常都写在访问日志的三类字段里:状态码、响应时间、响应字节数。把这三类先读顺,再谈 Sitemap 和内链怎么调,思路会清楚很多。
一、先确认日志里能读到什么
一条典型的蜘蛛请求记录,至少包含时间、来源 IP 或 UA、请求方法、URL、状态码、响应字节数、耗时。缺少耗时的日志也能用,但会丢掉一半信息。建议按周为单位保存,至少留 30 天,因为抓取节奏本身有波动,只看一天容易误判。
二、状态码:区分“抓到了”和“没抓到”
200、304 与跳转的含义并不相同
- 200:真正返回了内容,字节数应当大于 0;如果状态是 200 但字节数极小,多半是空壳页或软错误。
- 304:缓存仍有效,服务器没有重发正文。它不算浪费,但也不产生新内容,占比长期偏高说明这批页面缺少更新。
- 301 / 302:链路过长会拖慢抓取;同一目标存在多条跳转路径时,应尽早收敛成一条。
4xx 与 5xx 要分开统计
404 往往是链接没清理干净,属于可修的站内问题;5xx 是服务器侧问题,短期集中出现时,蜘蛛通常会降低对该目录的抓取频率,恢复需要时间。把两类混在一起看,很容易误以为蜘蛛不来了,其实是被自己的错误响应挡在门外。
三、响应时间:看尾部,不只看均值
平均值意义有限。更值得看的是最慢的那 5%:如果一批 URL 的耗时长期停在几秒以上,蜘蛛在同一时间窗口里能走的页面数就会明显减少。这时优先排查慢查询、缺索引的筛选页、单页体积过大这三类问题,比反复提交 URL 更有效。
四、字节数:决定一趟能走多远
蜘蛛的抓取受时间和带宽共同约束。同一目录下页面平均体积从 200KB 涨到 1MB,抓取频次往往不会同步增长,结果是覆盖变慢。压缩传输、精简模板里重复的内联脚本与样式,通常比改 Sitemap 的优先级更立竿见影。
五、用日志反推内链与 Sitemap
把日志里的 URL 与站内链接结构对照,常见三种情况:
- 日志里反复出现的 URL,页面里却找不到指向它的链接——入口多半来自 Sitemap 或外链,内链结构有缺口。
- Sitemap 里列出但从未被抓——先确认是否被 robots 规则拦掉,再确认文件本身能否正常访问。
- 深层页面抓取比例低——通常是层级过深,或枢纽页出链过多,蜘蛛在浅层就耗完了额度。
六、一个可执行的排查顺序
- 按状态码分组,先看 5xx 集中在哪些时段和目录。
- 在 200 的请求里,按目录统计平均字节数与平均耗时。
- 找出被抓次数高但内容长期不变的 URL,判断是否值得继续暴露。
- 对照 Sitemap 与内链,给缺入口的重要页面补上链接。
- 调整后观察两到四周,抓取节奏的变化通常不会立刻体现。
日志是观察窗口,不是操作按钮。改一次就等结果,很容易把正常波动读成生效或失效。