站点从 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 到新域名对应地址,跳转链只有一跳。
