事情本身不复杂,线索都在日志里。多语言站德语页下线时删了目录,hreflang 里的 de 仍然指过去,GSC 提示备用网页有误,之后整组十个语言版本一起掉出索引,只剩中文页还在。

这类报错背后常见的原因有几处,逐个排除就行。hreflang 指向的 URL 返回 404,Google 判定整组声明不可信。还有一种是删除语言版本时没有同步清理其他页面 head 里的 alternate。

另外,返回 404 的地址还留在 sitemap 里,两个信号互相矛盾。

批量检查所有 hreflang 目标的状态码

curl -s -o /dev/null -w '%{http_code} %{url_effective}\n' https://www.example.com/de/

从模板里摘掉已下线语言的循环

grep -rn 'hreflang="de"' themes/ --include=*.php

等前面都确认过,再确认 sitemap 里不再输出该语言地址

curl -s https://www.example.com/sitemap.xml | grep -c '/de/'

改完先别撤,确认这几项。清掉失效声明后第三天,德语页从索引移除,其余九个语言版本在一周内陆续回到搜索结果,整组不再互相牵连。

容易忽略的是,语言版本下线前先改 hreflang 再删页面,顺序反了会让整组标签失效,恢复时间比想象的长。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189