多语言站把六种语言拆成六份 sitemap,每份只列自己的地址,没有 xhtml:link 互指。GSC 显示提交成功,但各语言版本被当成独立内容互相竞争。
一开始怀疑是「页面里的 hreflang 只写了自身语言,没有互指」,查了一圈,方向不对。
把日志和配置对完,能解释这个现象的基本就这几处。缺少 hreflang 组声明,引擎无法判断语言版本关系。另一种情况是六份 sitemap 之间没有任何交叉引用。
少数情况下是x-default 完全没写,兜底版本缺失。
先检查 sitemap 里是否有 xhtml 声明
curl -s https://www.example.com/sitemap-en.xml | grep -c 'xhtml:link'
再往下合并成一份带备用链接的 sitemap
python gen_sitemap.py --locales zh-CN,en,ru,ja,de,es --with-xhtml
补 x-default 指向英文版
python gen_sitemap.py --locales zh-CN,en,ru,ja,de,es --x-default en
提交后核对识别到的备用链接数
curl -s https://www.example.com/sitemap.xml | grep -c 'xhtml:link'
改完先别撤,确认这几项。每条记录下都能看到六条备用链接与一条 x-default,GSC 的国际化报告出现完整分组,各语言排名趋于稳定。
按语言拆 sitemap 时最容易漏掉互指,要么合成一份,要么每份都写全六种语言的备用链接。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。
