这个坑值得记一笔。多语言站用 WordPress 6.6 加 Polylang,英国英文版的 hreflang 输出成 en-UK,Search Console 国际定位报告里英国展现一直是 0。试过删掉标签重新提交 sitemap,也换过主题输出,报告没有任何变化。

刚开始盯着「插件按语言包名称截取缩写生成代码,中间没有做映射表」,折腾了半个多小时,排掉了。

这类报错背后常见的原因有几处,逐个排除就行。ISO 3166-1 里英国是 GB,UK 不是合法的地区代码;Google 遇到无法识别的地区代码会丢掉整条记录,不是只忽略地区;同一页面同时输出 en-GB 与 en-UK,两条记录被合并成一条。

第一件事是抓页面头部看实际输出

curl -s https://www.example.com/en-gb/ | grep -o 'hreflang="[^"]*"'

再往下把语言包里的代号批量改掉

wp db query "UPDATE wp_options SET option_value=REPLACE(option_value,'en-UK','en-GB') WHERE option_name='polylang';"

复验头部只剩一种写法

curl -s https://www.example.com/en-gb/ | grep -c 'en-UK'

剩下的就是在国际定位报告里核对地区

https://search.google.com/search-console/international-targeting

别只看报错消失,验证要多做一步。两周后国际定位报告里英国出现独立行,en-GB 页面的展现从零涨到每天四百多次,en-UK 的重复条目消失。

补一句。地区代码只有两位,写 UK、EU、AP 这类自造缩写都不会被识别,改之前先把全站语言清单列出来对一遍。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189