报错是这么冒出来的。语言切换里列了几十种语言,hreflang 也跟着全部输出,实际有内容的只有五个版本,其余全是空列表。

这类报错背后常见的原因有几处,逐个排除就行。语言列表按配置全量输出,没有判断是否有内容。另一种情况是空版本页面返回 200 但列表为空。

少数情况下是hreflang 指向的地址没有对应翻译。

第一件事是统计 hreflang 数量与实际版本

curl -s https://www.example.com/ | grep -c 'hreflang'

只输出有内容的语言版本

add_filter('wpseo_hreflang', 'only_nonempty_langs');

空版本返回 404 或跳回主语言

if (empty($posts)) { status_header(404); }

白天有业务在跑,能验证的部分都压到了晚上做。

当时还开着另一个排查窗口,两边日志对照着看才定位到。

别只看报错消失,验证要多做一步。hreflang 数量与实际版本一致,空版本不再被索引,语言关系的可信度提升。

补一句。声明了却没有对应内容的语言版本,会让整组标签被判定不可靠,宁可少写也不要凑数。这类问题最好一次改到位,反复小改反而容易把原因搅混。

作者 9823189