主题的多语言插件按语言和地区全排列,一篇文章输出了 14 组 alternate,实际只有中文和英文两个版本,GSC 报备用网页指向错误,整组标签被忽略。
排查方向其实有限,先把可能性排一排。插件把语言码和地区码做了笛卡尔积,生成大量不存在的地址;部分 hreflang 指向的 URL 返回 404 或跳到首页;同一组标签在 head 和 sitemap 里各写一份且不一致。
数一下页面里到底输出了几组
curl -s https://www.example.com/post/1 | grep -c 'rel="alternate"'
再往下逐个验证目标地址的状态码
for u in $(grep -o 'href="https[^"]*"' page.html | cut -d'"' -f2); do curl -s -o /dev/null -w "$u %{http_code}\n" $u; done
剩下的就是在插件里关掉自动地区展开
wp plugin list --status=active | grep -i multi
同事提醒我看一下最近一次发布,时间点确实对得上。
改完先别撤,确认这几项。关掉地区自动展开后每页只剩两组 alternate,多语言报告恢复正常,之前被忽略的英文页也重新进入索引。
提醒一点。hreflang 的数量要和真实版本数一致,多写不存在的地区不会加分,只会让整组声明一起失效。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。
