站点从旧域名迁到新域名,页面里的 hreflang 仍指向旧域名,旧域名 301 到新站,GSC 把同一语言的页面判成两组,英文版排名直接掉了。
把日志和配置对完,能解释这个现象的基本就这几处。hreflang 由插件按站点地址生成,站点地址没改;旧域名的 301 让 hreflang 目标变成跳转地址;sitemap 里的 xhtml:link 也还是旧域名;部分语言版本是静态页,手工写死了旧域名。
先查页面里的 hreflang 指向
curl -s https://www.example.com/en/ | grep -o 'hreflang="[^"]*" href="[^"]*"'
接着核对站点地址配置
SELECT option_value FROM wp_options WHERE option_name='home';
随后替换模板与静态页里的旧域名
grep -rl 'old.example.com' templates/ | head
复查 sitemap 里的备用链接
curl -s https://www.example.com/sitemap.xml | grep -c 'old.example.com'
这类问题以前遇到过,但这次的触发条件和上次不一样。
这类改动我都写进变更记录,过两周再出问题时能对上号。
改完先别撤,确认这几项。hreflang 全部指向新域名且返回 200,GSC 语言组恢复为一组,英文版排名四周内回升。
hreflang 指向 301 地址等于把信号交给跳转链,迁移时要把这一项和 canonical 一起改。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。
