页面正文完全相同,只改响应头,不会让内容本身变成两份,但会让抓取、缓存、索引和链接价值判断出现分叉。最需要先分清的是:你看到的是内容重复,还是响应策略冲突。处理顺序应当是先确认哪份响应代表当前有效版本,再决定旧域名、旧路径或旧合作关系下哪些链接值得保留。
把同一路径在旧域名和新域名各请求一次,记录状态码、Content-Type、Content-Language、Cache-Control、Vary、X-Robots-Tag和重定向链。正文相同不代表这些字段相同。若一边返回 200,另一边返回 301,判断对象其实是“哪个 URL 是当前入口”,而不是“哪份内容更好”。若两边都返回 200,但一边带 X-Robots-Tag: noindex,另一边没有,那么即使正文逐字一致,可索引候选也会不同。
这里有一个常见误判:看到旧地址返回 200 就认为它仍应保留外链价值。实际上,响应头可能已经把它标记为不索引、不可缓存或语言不匹配。对高权重外链域名而言,外链指向的页面若长期返回与目标版本冲突的响应头,链接传递的判断就会从“是否相关”变成“是否仍被当作有效页面”。
第一类决策是保留还是退出。假设一个旧合作域名上仍有若干外链指向你的资料页,页面正文与新站一致,但旧域名的响应头包含 Cache-Control: no-store 和 X-Robots-Tag: noindex。此时更合理的动作不是继续把它当作可索引入口,而是确认该旧域名是否还有品牌展示、用户跳转或合同义务。若都没有,应把可控制的外链逐步迁移到当前有效 URL;若仍有访问需求,则保留跳转而不是保留一份可索引副本。
第二类决策是缓存与语言判断。Vary 缺失或不同,会让中间缓存把不同语言、不同设备或不同登录状态的响应混在一起。正文相同但 Content-Language 不同,还可能让搜索引擎把两份页面判为不同语言版本,而不是重复内容。此时应先统一语言声明和缓存键,再谈合并或 canonical。否则你会在错误层面处理重复。
第三类决策是链接价值归属。外链域名本身的历史权重不能脱离落地页响应来判断。一个高权重外链域名指向的旧页面若返回 302 到无关页面,或返回 200 但带 noindex,那么这条外链的可利用程度取决于它最终能否稳定到达当前有效内容。动作上,先抓取外链实际落点,再检查落点响应头,最后才决定是否联系对方改链或自己设置跳转。
不要只看正文是否相同。可以按下面顺序取证:
Content-Type 与 Content-Language,确认是否被解释为不同资源。X-Robots-Tag 与页面内 meta robots,看是否存在一边禁止索引。Cache-Control、Vary 和 Age,看缓存是否让不同用户拿到不同版本。如果旧地址请求量下降,不能单独证明应该删除。它也可能只是抓取预算转移、外链自然衰减、跳转生效或站点地图更新所致。反过来,请求量仍在也不证明该地址应继续保留索引,可能只是缓存或外部引用尚未更新。
假设你手里有一个旧系统生成的资料页,正文与新站相同,旧域名响应头为 200 且带 noindex,新域名响应头为 200 且可索引。可执行方案如下:
这个顺序的关键是:先判断旧对象是否还有独立价值,再决定保留、跳转还是退出。响应头差异只是证据,不是结论。把正文相同当成“可以随便保留”或“必须全部删除”,都会跳过对实际入口和链接归属的判断。
旧内容、旧系统或旧合作关系需要退出时,通常只有三类部分值得保留:仍被外部链接指向的有效 URL、仍被用户直接访问的入口、以及承担合同或品牌展示义务的页面。其余重复副本可以退出索引候选。动作上,先列出这三类清单,再逐条核对响应头。若一个旧域名既没有真实访问,也没有可迁移外链,只是曾经被当作高权重外链域名使用,那么继续保留它的索引版本并不会自动带来链接价值,反而可能让当前有效版本更难被判断。
最后要记住,robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录。响应头能影响判断,但不能替代对当前有效 URL、外链落点和用户访问需求的核查。把这三项查清,再决定保留、跳转或退出,下一步才不会在错误对象上继续投入。