先给结论:恢复后看到页面正常,只说明“当前这一次请求返回了正常内容”,不等于源站已经修好。区分缓存过期与真正修复,关键是把证据拆成三层——缓存层是否仍在命中旧副本、源站层是否已持续返回正确状态、抓取层是否重新拿到并处理了新内容。只有源站层稳定正常,才谈得上真正修复;缓存层过期只是让旧副本不再被命中。
假设你的站点因为空间侧配置错误,导致一批页面在一段时间内返回 5xx。你修正配置后,浏览器和部分地区访问恢复正常。此时有两种可能:一是源站确实修好了,二是你看到的只是缓存节点上的旧副本尚未过期,或者过期后回源恰好命中了一次正常响应。这两者的后续行为完全不同,必须分开验证。
下面用一个假设的短例子串联决策过程。假设域名 example.com 的 /product/a 在故障期间返回 503,修复后你观察到它返回 200。接下来不要直接下结论,按顺序做三件事。
缓存过期与真正修复最容易被混淆的地方,是缓存节点可能仍持有故障前的正常副本,或者持有故障期间的错误副本。判断方法不是看浏览器,而是看响应头与回源行为。
Age、Cache-Control、Expires、ETag。如果 Age 很大,说明这次命中的是缓存副本,而不是源站刚返回的结果。/product/a?probe=时间戳)绕过缓存,观察源站直接返回什么。如果带参请求仍异常,而普通请求正常,说明你看到的“恢复”主要来自缓存。这一步的动作是“绕过缓存直连源站”。结果只有两种:源站也正常,进入第二步;源站仍异常,说明缓存过期只是假象,修复并未完成,应回到空间侧继续排查。
一次 200 不能证明修复。源站层要看的是持续性与一致性,而不是单点采样。
这一步的动作是“多时间点采样 + 依赖检查”。如果源站持续正常且依赖完整,才进入抓取层验证;如果只是偶发正常,应视为未修复。
源站修好,不代表搜索引擎已经重新抓取并更新了索引。这里要区分“抓取恢复”和“索引更新”,两者不是一回事。
这一步的动作是“对照日志与索引状态”。如果日志显示爬虫已正常抓取,但索引仍是旧内容,说明问题在索引更新,而不是源站或缓存,下一步应针对内容更新与内部链接做处理,而不是继续改空间配置。
有几类现象很容易被误读为“已修复”,但它们各自都有其他合理解释:
把这些现象当作“辅助信号”而非“结论证据”,才不会把缓存过期误判为真正修复。
把上面的过程压缩成一个可执行顺序:
两个选择成立的条件不同:如果只有缓存层正常而源站异常,正确决策是继续修源站;如果源站已持续正常而索引未更新,正确决策是处理内容与链接,而不是反复刷新缓存。把动作和结果对应起来,下一步该做什么就清楚了。