搜索抓取

响应时间与抓取频次:服务器变慢时,URL 发现会先受影响

服务器响应时间变长,抓取并发会先下降,接着才是新 URL 入队延迟。本文梳理响应时间、5xx 与单页请求数如何挤占抓取配额,并给出一套用抓取日志定位慢 URL、核对影响范围的排查顺序。

搜索抓取

响应时间与抓取频次:服务器变慢时,URL 发现会先受影响

很多站点在扩容、上新功能或流量上涨之后,会观察到一个共同的滞后现象:老页面还在被访问,新发布的 URL 却迟迟不见抓取。排查内容、内链、Sitemap 都正常,问题往往出在服务器响应时间上——它先影响抓取频次,然后才轮到 URL 发现。

抓取频次不是一个固定值

搜索引擎给每个站点的抓取节奏是动态调整的。它同时看两件事:站点能承受多少并发,以及抓下来的内容值不值得继续抓。响应时间变长,等于单位时间内能完成的请求变少;如果还伴随超时和 5xx,抓取端会主动降低并发,把配额挪给其他站点。

这个过程是渐进的。第一天可能只是抓取总量略降,第三天新 URL 的入队延迟就明显了,一周后抓取日志里几乎只剩下被频繁访问的列表页和首页。

变慢时,最先被牺牲的是新 URL

抓取端在配额紧张时做的是取舍,不是平均分配。已经积累过权重、更新频率高的老 URL 会被优先保留,因为它们的抓取收益是可预期的;而从未被抓过的新 URL,只有 Sitemap、内链和外链给出的预期值,一旦预算不够,它们就会被排到后面。

几个常见的对应现象

  • 抓取日志里 200 响应减少,5xx 或超时条目增多;
  • 平均响应时间从几百毫秒升到一两秒,抓取并发同步下降;
  • 新页面处于“已发现未抓取”状态的数量持续累积;
  • 大文件、动态接口类 URL 反复被请求,拖住整个队列。

站点侧能控制的部分

  • 缩短首字节时间:数据库慢查询、未命中缓存的模板渲染、同步调用外部接口,通常是主要来源。把响应稳定在可预期区间,比事后加机器更有效。
  • 静态资源与页面分开:图片、JS、CSS 交给 CDN,抓取端的请求尽量落在能快速返回 HTML 的路径上。
  • 控制单页触发的资源数量:一个页面牵出上百个请求,会挤占其他 URL 的抓取额度。
  • 给慢接口加缓存或降级:搜索页、筛选页这类参数组合多的 URL,最好不要每次都实时查询。
  • 保持 5xx 在低位:偶发报错可以接受,持续报错会直接触发降速。

用抓取日志确认影响范围

只看监控面板不够,要落到具体 URL 上:

  1. 按小时统计抓取请求数、平均响应时间和状态码分布;
  2. 把响应时间超过阈值的 URL 单独列出,看是否集中在某个模板或某个接口;
  3. 对比新 URL 在抓取总量中的占比,看是否随时间明显萎缩;
  4. 调整后再跑一轮同样的统计,确认指标是否回到正常区间。
抓取频次下降不一定全是服务器的问题。robots.txt 变更、大面积跳转、内容质量整体下滑都可能造成类似结果。日志只说明现象,结论要靠逐项排除得来,也不必期待调整后立刻恢复——抓取节奏的调整通常有滞后。

小结

URL 发现的延迟,很多时候不是“没告诉搜索引擎”,而是“告诉了但排不上队”。把响应时间、错误率和单页请求数控制住,等于给抓取端腾出空间;剩下的交给 Sitemap 和内链把新 URL 送到队首,这才更接近可持续的做法。