先看现象。域名迁移时把旧站内容全量保留 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 要一起改。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189