站点从 old.com 换到 new.com 半年,旧域名解析还开着,直接返回 200 的同一份内容,Search Console 里两个域名各收录了 1200 页。乍看像缓存或者权限的锅,追下去往往不是。

server {
    server_name old.com www.old.com;
    return 301 https://new.com$request_uri;
}

追下去是这么回事:换域名时只改了站点地址,没有在旧域名上配整站 301。两个域名指向同一台机器,服务端按 Host 都能命中,内容重复被当成两个站。

碰到「旧域名 301 缺失」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。

先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。别只看报错的最后一行,往上看几行,真正的起因通常在上面。

具体做法是,在旧域名的 server 块里加整站 301 到新域名,保留路径和参数;确认跳转是一跳,不要先跳 www 再跳新域;在新域名提交改版工具,观察收录合并。

验收就看一点,旧域名任意内页都 301 到新域名对应地址,跳转链只有一跳。

作者 9823189