站点换域名后旧域名只做了首页跳转,/feed/ 还能正常输出全文,蜘蛛在旧域名抓到一份完整内容,新站的文章被判定重复。
真正麻烦的地方在于,几个原因的现象几乎一样。旧站只跳首页,feed 和接口路径仍在源站输出。另一种情况是旧站的 feed 里链接指向旧域名,形成闭环。
还有一种情况,新旧两套内容没有 canonical 指向新站。
动手时先确认旧站 feed 是否可访问
curl -s https://old.example.com/feed/ | head -5
旧站 feed 返回 410
location = /feed/ { return 410; }
旧站整站跳转补齐
rewrite ^/(.*)$ https://www.example.com/$1 permanent;
剩下的就是核对新站 feed 的链接域名
curl -s https://www.example.com/feed/ | grep -o 'https://[^"]*' | head -3
这次没动代码,只在配置和运行环境上找原因。
隔了一天再看,现象没变,说明不是偶发。
那几天正好在做别的变更,先把时间线对齐才敢动手。
恢复的判定其实很直接。旧站 feed 关闭后,新站文章的重复判定在一周内解除,索引里的规范地址统一到新域名。
换域名时容易被忘掉的就是 feed、接口和 sitemap 这几条不走页面的路径。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。
