整站迁到新域名一个月,页面访问正常,新站收录只有几十条,查看源码发现 canonical 还是旧域名。

原因不止一个,得分开看。主题里写死了旧域名的 canonical 输出。另一种情况是数据库里的站点地址没有更新。

不容易想到的是,缓存插件保留着迁移前的页面副本。

动手时先检查页面上的 canonical 指向

curl -s https://new.com/a/ | grep -i canonical

再往下改掉主题里写死的域名

grep -rn 'old.com' /www/wwwroot/site/wp-content/themes/

更新站点地址并清缓存

wp option update siteurl 'https://new.com'

改之前我把相关日志按时间截了一段存着,事后对时间线用得上。

中途换过一次思路,把范围缩到最小的那一层,反而快了。

改完先别撤,确认这几项。canonical 全部指向新域名,新站收录在两周内明显增长,旧域名只剩跳转记录,权重完成转移。

这里还有个坑。canonical 指旧域名等于告诉蜘蛛真正的版本在别处,新站会一直被视为副本,收录自然起不来,改完还要等一轮重新抓取。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。

作者 9823189