页面正文完全一致、响应头却不同,最直接的影响是:你不能再把“内容相同”当作“可以原样保留”的依据。响应头决定缓存、语言、重定向、安全策略和资源加载方式,同一段正文在不同头信息下可能服务不同用户、被不同中间层处理,甚至让旧入口继续承担不该承担的角色。判断保留、改写还是退出,要看差异落在哪个头上,以及这个头是否影响抓取、索引或实际访问。
不是所有头差异都值得处理。真正会改变判断的,通常是以下几类:
如果差异只出现在 Server、Date 这类与页面行为无关的头上,通常不足以支撑退出决策,可以继续观察。
IP 反查域名容易把同 IP 上的多个域名混在一起比较。要得到可用的判断,先固定一个 URL,再分别用域名和 IP 请求,记录状态码、Content-Type、Location、Cache-Control、Vary、X-Robots-Tag 这几项。可以用 curl -I 只看响应头,避免正文干扰。
假设同一台服务器上有 old.example 和 new.example 两个域名,正文相同,但 old 返回 X-Robots-Tag: noindex,new 没有该头。这时“内容相同”不能推出“两者等价”:old 可以保留为访问入口,但不适合继续作为可索引版本;new 才承担索引职责。这个假设说明的是比较方法,不是任何真实站点的现状。
反过来,如果 old 返回 301 指向 new,正文相同只是跳转目标的内容,那么 old 本身不是内容页,保留它的意义在于承接旧链接,而不是保留内容。判断动作是:先确认状态码,再决定是否改写正文。
三种取舍各有前提,不必强行都选。
响应头差异不影响解析、缓存和索引,且旧入口仍有真实访问价值。例如仅 Date、Server 不同,或 Vary 差异不会导致缓存串版本。此时保留旧地址、维持跳转或镜像关系是合理的,但应定期复查头信息是否变化。
正文仍有价值,但响应头暴露了旧系统或旧合作关系的痕迹,例如 Content-Language 与实际语言不符、缓存策略导致更新不可见、X-Robots-Tag 与目标状态冲突。改写应优先修正头信息,而不是重写正文;如果头由旧系统统一注入,可能需要迁移到新入口再改写。
旧入口持续返回与目标冲突的状态码或索引指令,且无法在不影响其他域名的前提下修正。此时保留只会让同一内容以多种状态存在,增加判断成本。退出可以表现为停止解析、改为 410、或统一 301 到新地址,具体取决于旧链接是否还有访问价值。
一个实际动作是:先对旧入口加 X-Robots-Tag: noindex 观察访问与抓取变化,再决定是否 301。这个动作的结果会影响下一步——如果抓取和访问都下降,说明旧入口主要依赖索引流量;如果访问不变,说明流量来自直接访问或外部链接,退出时更要保留跳转。
抓取量下降、某统计归零,都不能单独证明退出或改写是对的。抓取下降也可能来自服务器不稳定、robots.txt 变更、站点地图失效或外部链接减少。robots.txt 的抓取限制不等于可靠的索引移除;站点地图不保证收录;HTTPS 不保证安全无漏洞或排名。不同搜索引擎对 X-Robots-Tag、Vary 和状态码的处理需要分别核查,不能用一个平台的表现推断全部。
因此,判断应回到可验证的证据:同一 URL 在不同入口下的响应头记录、实际访问路径、以及旧链接是否仍被外部引用。把这些证据与保留、改写或退出的前提逐条对照,再决定下一步动作,而不是只看页面正文是否相同。