网站收录

多语言站收录归错版本:hreflang 互指与语言代码的核对顺序

多语言或多地区站点常出现同一内容被搜到另一个语言版本的情况。问题往往不在翻译,而在 hreflang 互指不完整、语言与地区代码写法不统一、x-default 缺失,以及用强制跳转代替标注。本文给出一套从 URL 结构到入口内链的核对顺序,帮助定位收录归错版本的原因。

网站收录

多语言站收录归错版本:hreflang 互指与语言代码的核对顺序

多语言或多地区站点常见的一种收录异常是:内容翻译得很完整,但搜索结果里出现的却是另一个语言版本,或者本地用户搜索时被带到不相关的地区页。这类问题多数不在翻译本身,而在 hreflang 标注、语言入口和 URL 结构上。

先明确 hreflang 的作用边界

hreflang 是给搜索引擎的提示,用来表达「这几条 URL 是同一内容的不同语言或地区版本」,它不是强制指令,也不保证某一版本一定进入某个地区的索引。所以看到收录归错版本,不要只盯着 hreflang 一处改,先把相关环节一起检查。

常见错位情形

互指不完整

hreflang 要求双向标注:A 页面指向 B,B 也要指回 A。常见错误是只在中文页写了英文版的链接,英文版却没有回指,这组关系可能被整体忽略。

语言代码与地区代码不规范

例如把简体中文写成 zh 或 zh-Hans,地区写法混乱(en-UK 应为 en-GB)。写法不统一时,各页面之间的标注对不上,等于没写。

x-default 缺失

没有 x-default 时,语言不匹配的访问者可能被导向任意一版,长期看会影响哪个版本被视为默认。

用自动跳转替代标注

按 IP 强制 302 跳转,会让抓取只能看到其中一版,其他版本的页面缺少被发现和评估的机会。语言标注和跳转混在一起时,排查难度会明显上升。

URL 结构先定下来

子目录(如 /en/、/zh-cn/)和子域名(如 en.example.com)都可以,关键是长期保持一致、不频繁更换。结构一旦变化,旧地址的跳转和标注要同步更新,否则会出现新旧版本同时被索引的情况。

一个可执行的核对顺序

  1. 确认每种语言或地区是否有独立、稳定、可直接访问的 URL。
  2. 打开每个版本的页面源代码,检查 hreflang 是否成组出现且互相回指。
  3. 核对语言代码与地区代码的写法是否统一。
  4. 检查是否有 x-default,并指向合适的兜底页面。
  5. 检查语言切换器是否为真实链接(a 标签),而不是纯 JS 事件。
  6. 确认没有用强制跳转挡住其他版本。
  7. 查看站点地图是否包含所有语言版本的 URL。

入口与内链同样重要

除了标注,各语言版本的入口也要清楚:语言切换器最好在每个页面都能找到,并且指向对应内容的同一层级,而不是统一回首页。内链如果全部指向默认语言版本,其他语言的页面会显得孤立,被发现的机会更少。

hreflang 解决的是版本对应关系,解决不了内容质量、入口和内链问题,两者要分开检查。

同一语言下的多个地区版本

如果同一语言要面向多个地区(如 en-US、en-GB、en-AU),各版本内容如果完全一样,容易互相竞争。此时应让页面真正体现地区差异,比如货币、配送范围、联系方式等,而不是仅换一个地区代码。

观察一段时间再判断

调整标注后,索引和展示的切换不会立刻完成,需要给搜索引擎重新抓取和评估的时间。期间可按语言分别观察哪些 URL 能被发现、哪些被索引,逐步缩小范围,避免在短期内反复改动标注本身。