站点运营

站点运营:hreflang 自查,别让蜘蛛抓混语言版本

多语言和多地区站点常把 hreflang 写歪,导致同一套内容在几个版本之间互相拆台。本文整理判断是否需要 hreflang、常见写错方式、六步自检流程,以及如何结合抓取日志和索引状态验证效果,适合把语言信号当成日常运营项来维护。

站点运营

站点运营:hreflang 自查,别让蜘蛛抓混语言版本

多语言或多地区站点,最容易出问题的地方往往不是翻译质量,而是语言版本之间的信号有没有对齐。搜索引擎面对同一套内容的两三个语言版本时,需要知道谁是谁的对应页、哪一版该给哪个地区的用户看。hreflang 就是干这件事的。它不保证收录,也不提升排名,但写错会让蜘蛛在几个版本之间反复横跳,把抓取预算花在互相矛盾的信号上。

先判断是否真的需要 hreflang

只有一套中文内容、面向同一个地区的站点,不需要 hreflang,加了反而多一层出错的可能。真正需要的场景是:同一页面存在简体和繁体版本,存在面向不同国家和地区的中文站,或者内容一致但语言、货币不同的分站。判断标准很简单——如果两个页面的主体内容高度相似,只是面向的人群不同,那就需要给它们建立对应关系。

几种典型的写错方式

  • 只做单向:A 页面指向 B,B 页面没有指回 A。这种不对称关系蜘蛛通常直接忽略。
  • 语言代码自造:语言用 ISO 639-1,地区用 ISO 3166-1 Alpha 2,顺序是语言-地区,比如 zh-TW。写成自造的缩写,或者标注与页面实际内容对不上,等于没写。
  • 缺少自指:每个版本都应该包含一条指向自己的 hreflang,很多站点会漏掉。
  • 缺少 x-default:没有默认版本时,不知道该把其他地区的访客送到哪一页。
  • 依赖 JS 动态注入:能渲染的蜘蛛可能读到,读不到的只看到一半信号,最好写在 head 里,或者交给 Sitemap 承载。
  • 指向的 URL 本身是 301 或 404:对应关系断在中间。

六步自检流程

  1. 把所有语言版本的 URL 列成一张表,一行对应一个页面组。
  2. 逐个检查组内是否双向对称,并且每一条都包含自指。
  3. 确认 URL 返回 200,且最终地址与 hreflang 里写的一致,不要还写着旧域名。
  4. 检查每个版本的 canonical 是否指向自己,而不是统一指向主语言版本。canonical 与 hreflang 打架时,通常是 canonical 优先,等于把其他语言版本否掉了。
  5. 确认 x-default 指向真正的入口页,一般是语言选择页或默认语言版本。
  6. 如果同时在 Sitemap 里用 xhtml:link 补充声明,两边的数值要保持一致。
提醒一句:hreflang 只描述对应关系,不解决重复内容。内容确实重复时,先想清楚是要合并成一个版本,还是分语言长期运营。

配合日志和索引状态观察

改完之后不要只盯着代码。去抓取日志里看每个语言目录的抓取占比,如果某个版本几乎不被访问,通常是信号没传过去,或者入口太深。再看索引覆盖,确认是否有版本被当成重复页排除掉。观察周期给到两到四周,刚提交就下结论容易误判。

把它变成常态化维护项

新增语言版本时同步补上对应关系;下线某个版本时,记得把其他版本里指向它的那一条删掉。这类工作写在发布清单里当勾选项,比事后排查省事得多。语言版本不多的站点,一次整理清楚可以管很久。