整站迁到新域名一个月,页面访问正常,新站收录只有几十条,查看源码发现 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 指旧域名等于告诉蜘蛛真正的版本在别处,新站会一直被视为副本,收录自然起不来,改完还要等一轮重新抓取。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。