先看现象。域名迁移时把旧站内容全量保留 30 天做兜底,robots.txt 忘了改,仍然允许全站抓取。结果新旧两个域名同时被收录,内容一模一样,新站的排名一直上不去。
真正麻烦的地方在于,几个原因的现象几乎一样。旧站 robots 还是 Allow: /,蜘蛛继续抓全站。还有一种是旧站没有统一 301 到新站,只有首页跳了。
少数情况下是canonical 仍指旧域名,权重没并过去。
不容易想到的是,sitemap 在旧站也继续输出。
第一件事是看旧站 robots 现在写了什么
curl -s https://old.example.com/robots.txt | head -10
接着确认旧站内页是否 301
curl -s -o /dev/null -w '%{http_code} %{redirect_url}\n' https://old.example.com/p/1
整站 301 到新域名的对应路径
rewrite ^/(.*)$ https://www.example.com/$1 permanent;
旧站 sitemap 返回 410
location = /sitemap.xml { return 410; }
报错是间歇性的,我蹲守了半小时才抓到一次完整现场。
恢复的判定其实很直接。旧站内页全部 301,旧域名收录量三个月内降到个位数,新站排名开始上升。
补一句。迁移期保留旧站是为了兜底外链,不是让蜘蛛继续抓,robots 和 301 要一起改。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。
