当同一套内容被镜像到多个域名,而每个域名返回的404错误页面又几乎一样时,最反常的现象是:你明明为每个域名设置了不同的用途说明,抓取诊断里看到的却仍是同一个通用404模板。这通常不是模板没生效,而是这些域名的角色没有被真正区分。要说明各自用途,先要决定每个域名在整体结构中承担什么角色,再让404错误页面和它的返回状态、可见文案、跳转目标与这个角色一致。
多个域名承载相似内容时,常见有三种角色。第一种是主站,承载完整内容与主要入口;第二种是语言或地区镜像,内容大体相同但面向不同受众;第三种是纯跳转或历史保留域名,只负责把旧地址导向新地址。三者的404错误页面不该长成同一张脸。
判断依据不是域名注册时间,而是这个域名是否被当作独立入口使用。如果它出现在对外宣传、名片或广告里,用户会直接访问,那么它的404页面就需要写明该域名的用途和可用的替代入口。如果它只用于旧链接跳转,那么404页面应尽量少暴露内容,只说明该地址已不再使用,并给出唯一的主入口。
实际动作:把每个域名按“主站/镜像/跳转”打一个标签,写在一份可核对的清单里。这个动作的结果会直接决定下一步——只有标签确定后,404页面里的文案和跳转目标才有唯一答案,否则你会在多个版本之间反复修改。
回到那个矛盾现象:多个域名的404页面看起来一样,可能有两种解释。
区分这两种解释的证据是:分别请求每个域名下一个确定不存在的路径,记录返回状态码、响应头和页面正文中的一段独特文字。如果状态码都是404,但正文里只有部分域名出现你写的用途说明,那么问题在配置分发,而不是模板内容本身。如果所有域名正文都相同,才需要回到模板层面处理。
这里要注意一个常见误判:robots.txt 中禁止抓取某个路径,并不等于该路径已被可靠地从索引中移除。它只限制抓取行为,不保证移除结果。因此不能用“我已经在 robots.txt 里挡了”作为404页面用途已经说明清楚的证据。
404错误页面不是站点地图,也不该承担导航全站的任务。对于多域名相似内容,它只需要完成三件事:说明当前域名是什么、当前地址为什么不可用、用户下一步可以去哪里。
假设一个场景:某组织同时保留 example.com 和 example.net,前者为主站,后者为历史保留域名。若 example.net 的404页面也展示完整栏目导航,用户会误以为它是可独立使用的站点,从而在两个域名之间产生混淆。把它的404页面改为只说明“此域名仅用于旧地址跳转,请前往主站”,并只保留一个主站链接,才能让域名用途与页面行为一致。
这个动作的结果是:当用户或审核人员再次访问不存在的地址时,能从页面本身判断当前域名该不该继续使用。如果页面仍显示完整导航,说明用途说明没有落地,需要回到域名角色清单重新核对。
404页面里的跳转目标如果指向另一个镜像域名,而不是主站,就会让用途说明自相矛盾。核对时,逐个域名检查404页面中的链接,确认它们指向的域名与清单中的角色一致。主站404可以指向主站内页,镜像404应指向同镜像或主站对应入口,跳转域名的404只应指向主站。
站点地图同样需要与用途一致。站点地图不保证收录,但它表达了你希望被发现的地址范围。如果跳转域名的站点地图里仍列出大量旧内容地址,而404页面又说该域名仅用于跳转,两者就会互相冲突。此时应优先修正站点地图范围,再复查404页面文案,而不是只改其中一处。
另一个需要分别核查的点是不同搜索引擎对404状态、跳转和索引处理的支持情况。同一套配置在不同搜索引擎中的表现可能不同,因此核对证据时要记录来源,而不是把某一个引擎的结果直接当作全部结论。请求量、抓取量或某项统计归零,也不能单独证明404页面用途已经说明正确——它也可能是抓取预算变化、外链减少或服务器临时波动造成的。
把域名角色清单、404页面正文、跳转目标和站点地图放在一起核对,才能判断多个域名承载相似内容时,各自用途是否真的被说明清楚。只要其中一项与角色不符,就先修正那一项,再观察下一次请求返回的状态与正文是否一致。