内容逐字一致、响应头不同时,先不要把它当成重复内容问题。响应头决定的是抓取与缓存层面的处理,内容相同只说明页面主体一致,两者不在同一个判断层级。真正需要区分的是:差异来自旧系统退出过程中的过渡配置,还是来自不同入口对同一资源的独立处理。
第一种解释是过渡残留。旧内容、旧系统或旧合作关系正在退出,但保留的部分仍有价值,于是同一份内容被两个入口同时提供。旧入口可能仍带缓存控制、跨域或内容类型相关的旧配置,新入口已经按当前规则响应。此时响应头差异是退出过程留下的痕迹,不代表页面本身需要重新处理。
第二种解释是入口分叉。不同路径、不同子域或不同中间层各自处理同一份内容,响应头差异是各自独立配置的结果。这种情况下,即使内容一致,抓取工具和缓存节点看到的资源特征也不同,后续判断会分叉。
两种解释都成立的前提是:内容确实相同,且差异只出现在响应头。如果正文、状态码或跳转链也变了,问题就不在本篇讨论范围内。
第一组证据是响应头差异的分布。用 curl -I 分别请求两个入口,记录状态码、Content-Type、Cache-Control、Vary 等字段。如果差异集中在旧入口一侧,且旧入口的配置与退出前一致,倾向过渡残留;如果两个入口各自稳定、互不影响,倾向入口分叉。
第二组证据是时间线。对比旧入口配置的修改记录与内容上线时间。过渡残留通常伴随一次明确的退出动作,差异出现在动作前后;入口分叉则没有单一时间点,差异长期存在。
第三组证据是抓取与缓存行为。观察抓取工具实际取到的版本,以及缓存节点返回的版本是否一致。这里要注意:抓取量、请求量或某项统计归零,不能单独证明处理正确。归零还可能来自抓取预算调整、入口被临时屏蔽、监控口径变化,需要结合前两组证据一起看。
假设旧系统有一条内容路径仍被内链引用,新系统已提供同一份内容。两个入口返回的 Content-Type 不同,其余字段接近。此时可以先做一件事:把旧入口的内链指向改为新入口,再重新请求两个入口,记录响应头是否收敛。
如果收敛,说明差异与入口引用有关,下一步应继续清理剩余旧内链,而不是修改内容本身。如果不收敛,说明差异来自入口各自的配置,下一步应分别核查两个入口的响应规则,而不是继续调整内链。这个动作的结果直接决定后续是清理引用还是修改配置。
旧内容、旧系统或旧合作关系退出时,保留部分通常有两个成立条件:该部分仍被有效内链引用,且其响应头与当前入口一致。两个条件同时满足,可以保留并继续观察;只满足其一,应先收敛入口,再决定是否保留。
需要单独核查的是 robots.txt 和站点地图。robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录。它们与响应头差异不在同一层面,不能互相替代判断。如果退出动作依赖这两者,应把它们当作辅助信号,而不是结论依据。
最后,HTTPS 不保证安全无漏洞或排名,响应头差异也不因协议一致而消失。不同搜索引擎对同一组响应头的支持情况须分别核查,不要用单一入口的观察结果推断全部入口。