同一套内容做成中文、英文、繁体多个版本,或者面向不同地区做了略微调整的页面,是不少站点的常态。这类站点做收录自查时,常常会遇到两个问题:搜索引擎究竟把哪个版本当作主要版本?其他版本会不会被当成重复内容而反复抓取?答案并不在“加不加 hreflang”这一个动作上,而要先把版本关系理清楚。
先分清三类页面关系
很多人把多语言和多地区混为一谈,其实处理方式并不一样。
- 语言版本:同一内容翻译成不同语言,例如 /zh/ 与 /en/。
- 地区版本:同一语言面向不同地区,例如 en-US 与 en-GB,内容可能只差价格、币种或库存。
- 单纯重复:内容几乎完全一样,只是入口或 URL 不同,这类不属于多语言问题,应该直接收敛。
前两类适合用 hreflang 说明关系,第三类要靠 canonical、合并或删除来处理。先把页面归到正确的类别里,后面的动作才不会走偏。
hreflang 是做提示,不是强制指定
hreflang 的作用是告诉搜索引擎“这几个页面是同一内容的不同语言或地区版本,请向对应的用户展示合适的版本”。它不保证某个版本一定被收录,也不保证另一个版本一定不被收录。最终的收录结果,仍然取决于页面能不能被抓到、内容本身是否有价值、有没有被 canonical 或 robots 规则挡住。
把 hreflang 当成“收录开关”,是很多误判的起点。
常见写法问题
只标一边
hreflang 需要相互标注。A 页面指向 B,B 也要指回 A,否则关系不完整,搜索引擎可能只采纳其中一部分。
语言代码不规范
常见错误是把 zh-cn 写成 cn,或者用 zh 笼统指代简体。更稳妥的写法是规范的语言代码,例如 zh-Hans、zh-Hant、en、en-US。大小写通常不强制,但格式要对。
缺自指
每个版本都应该包含一条指向自己的 hreflang,各组关系首尾相接才完整。
指向不可用的 URL
指向已被删除、重定向或加了 noindex 的页面,会让整组关系失效,排查时很容易被忽略。
什么情况下不需要 hreflang
如果站点只有一个语言、一个地区,页面之间只是栏目或模板不同,那不属于多语言问题,不必添加。乱加标注不仅没有帮助,还会让后来的自查更难判断哪些是真关系、哪些是误加。
一份可执行的自查顺序
- 列出所有语言或地区版本的 URL,确认每个都能正常打开、返回 200,且没有 noindex。
- 检查每组关系是否双向、是否包含自指、语言代码是否规范。
- 确认每个版本都有独立可访问的 URL,而不是靠 JS 或 cookie 临时切换内容。
- 检查不同版本之间是否存在明显的重复内容问题,比如整段机器翻译或只改了几个词。
- 检查 canonical 是否与 hreflang 冲突,例如某个页面把 canonical 指向了另一个语言版本。
- 观察抓取日志与索引状态,看哪些版本被抓、哪些进入了索引、哪些长期停在“已发现”。
收录归属怎么看
在对应语言或地区的搜索结果里,通常应该出现对应版本。如果英文用户总是看到中文页面,或者某个版本长期没有出现在索引中,优先按上面的顺序检查,而不是急着加更多标注。版本之间的差异越大、内容越独立,收录归属通常越清楚;反过来,如果几个版本只是换了标题和导航,搜索引擎很难判断它们是不是同一批内容。
最后提醒一句:多语言站点的收录问题,本质仍然是页面能不能被抓到、值不值得被索引。hreflang 只是把这层关系说明白,不能替代页面质量本身。版本少、结构清晰的站点,处理起来通常比版本多但关系混乱的站点省事得多。