要排除缓存造成的假象,核心做法是:不要只看“页面现在显示什么”,而要同时核对响应头、抓取时间、页面正文特征和索引状态四个信号。只要其中一项与预期不符,就不能把当前看到的结果当成收录入口的真实状态。多人协作时,最稳妥的交付方式是:把“谁在什么时间、用什么方式、看到了什么”记录成可复核的证据,而不是口头描述“我这边已经收录了”。
“网站收录入口”相关的缓存假象,通常来自三个层面,排查时要分开处理:
这三种情况的共同点是“你看到的”和“实际提供的”不一致。判断时不要凭感觉,要用可对比的证据。
最直接的一步是查看 HTTP 响应头,而不是只看页面渲染结果。可以执行:
curl -I https://example.com/page
重点看几个字段:
Cache-Control、Age、Expires:判断是否被中间层缓存,以及缓存了多久。Last-Modified、ETag:判断服务器认为的版本时间。X-Cache、CF-Cache-Status 等自定义头:很多 CDN 会在此标注命中或回源,属于可核对的信号。判断规则:如果 Age 明显大于 0,且页面内容与源站不一致,那么你看到的很可能是缓存副本,而不是源站真实输出。此时应先在源站直接请求,再与经过 CDN 的请求对比。两次结果不同,才能把问题定位到缓存层;两次结果相同,则缓存不是当前现象的原因。
多人协作最容易返工的地方,是每个人对“已检查”的定义不同。建议把验收标准写成下面这份清单,逐项打勾:
这样交付后,复核者能重复同样的请求,得到可对比的结果,而不是依赖某个人的记忆。
页面能打开,不等于已被收录;结果页能看到标题,也不等于当前版本已被索引。排查时注意:
robots.txt 的抓取限制不等于可靠的索引移除。它只约束抓取行为,已收录页面可能仍会出现在结果中,不能把它当成删除入口。因此,判断“收录入口”是否正常,应当以目标搜索引擎自己的状态查询和抓取记录为准,而不是以另一个引擎或第三方工具的结果代替。
从交付结果倒推,至少需要明确三件事:
如果复核时发现两次请求结果不一致,先不要修改页面,而是先固定证据:保存两次响应头与正文差异,标注请求时间与出口网络。确认差异来自缓存层后,再决定是等待缓存过期、主动刷新缓存,还是调整缓存策略。没有确认原因之前直接改内容,往往会把缓存问题和内容问题混在一起,增加返工。
下一步:挑一个当前有疑问的 URL,按上面的清单完整记录一次源站请求和一次经过 CDN 的请求,把两份响应头和正文差异放在一起对比,再决定是否需要处理缓存。