网站收录

抓取请求被超时和 5xx 打断:收录核对先确认蜘蛛拿到的是哪一次响应

页面不收录,未必是内容质量问题。蜘蛛抓取时遇到超时、5xx 或缓存层返回旧页,同样会让页面停在索引之外。这篇按“服务端日志—抓取统计—索引状态”的顺序,梳理响应不稳定的几种常见形态,以及核对时容易踩的误判点。

网站收录

抓取请求被超时和 5xx 打断:收录核对先确认蜘蛛拿到的是哪一次响应

页面能不能进索引,第一个前提往往被忽略:蜘蛛那一次请求,究竟拿到了什么。内容质量、内链、URL 规范都是后面的问题,如果抓取请求在半路被超时、5xx 或者缓存层截断,蜘蛛看到的和你看到的根本不是同一份东西,后续所有核对都会偏。

先分清三种“没拿到正经响应”的情况

  1. 服务器 5xx 与连接超时。这类响应通常来自后端偶发报错、数据库连接池打满、或某台机器被摘除但仍在轮询里。特征是时间上不规律,同一 URL 隔几次访问就可能出现一次失败。
  2. 429 与主动限速。有些站点在 WAF 或 CDN 层对高频来源做了限速,蜘蛛恰好命中阈值。此时返回的可能是 429,也可能是一个空内容但状态码正常的页面,后者更麻烦,因为日志里看不出异常。
  3. 缓存层返回旧内容或错误页。页面已经更新,缓存里还是上一版;或者源站短暂报错时,缓存把错误页面也存了下来,并在一段时间内持续对外返回。

这三种情况的共同点:抓取本身“发生了”,但拿到的不是一份可用的页面。收录核对时如果不区分,容易误判成内容质量问题。

核对顺序:从服务端日志往上倒

  1. 先看服务端访问日志,按蜘蛛 UA 过滤,统计每个目标 URL 的状态码分布。重点是 5xx、超时和异常 200(内容长度明显偏短)的比例,而不是平均值。
  2. 再看抓取统计里对应时间段的抓取量与响应时间。如果抓取量没降但响应时间拉长,问题多半在服务端;如果抓取量本身掉了,要看是不是限速或 robots 层面的变化。
  3. 最后才看索引状态。此时要对应上具体时间:某个 URL 是在哪一次抓取之后没有进索引的,中间有没有出现失败响应。

顺序反过来做,先盯着索引状态找原因,很容易在一堆无关因素里绕圈。

几个容易误判的点

  • 用本地浏览器访问正常,就认为蜘蛛也正常。本地访问走的是自己的 IP、自己的缓存,和蜘蛛的链路完全不是一回事。
  • 只统计平均响应时间。平均值正常但尾部请求超时,对抓取的影响可能比平均值略高更明显。
  • 忽略了错误页被缓存。源站修好了,缓存还没过期,蜘蛛上来拿到的仍是错误页,看起来像“修了没用”。
  • 把 304 当成异常。正常的条件请求返回 304 是预期行为,不代表页面没被处理。
核对收录时,先把“蜘蛛是否稳定地拿到了页面”这件事确认掉,再谈页面质量、重复内容和 URL 规范,顺序会顺很多。

给重点页面留出稳定的响应窗口

对更新频繁、需要及时反映变化的页面,可以做一个简单的稳定性动作:固定几次探测,记录状态码和内容长度,观察一段时间内的波动。波动大的 URL 单独列出来,回到服务端查原因,而不是在索引状态里反复刷新。稳定优先于速度,一个偶尔报错的页面,比一个响应慢但每次都成功的页面更难处理。

内容更新后索引没跟上时,也建议先回看这段时间的响应记录,再决定是继续等内容重新抓取,还是先修掉服务端的抖动。