多語言或多地区站点常见的一種收錄異常是:内容翻译得很完整,但搜尋结果里出現的却是另一個語言版本,或者本地用戶搜尋时被带到不相關的地区頁。這類問题多數不在翻译本身,而在 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)都可以,關键是長期保持一致、不频繁更換。结构一旦變化,舊地址的跳轉和标注要同步更新,否則會出現新舊版本同时被索引的情况。
一個可执行的核對顺序
- 確認每種語言或地区是否有獨立、稳定、可直接訪問的 URL。
- 打開每個版本的頁面源代碼,检查 hreflang 是否成组出現且互相回指。
- 核對語言代碼與地区代碼的寫法是否统一。
- 检查是否有 x-default,並指向合适的兜底頁面。
- 检查語言切換器是否為真實連結(a 标簽),而不是纯 JS 事件。
- 確認没有用强制跳轉挡住其他版本。
- 查看站点地图是否包含所有語言版本的 URL。
入口與内鏈同样重要
除了标注,各語言版本的入口也要清楚:語言切換器最好在每個頁面都能找到,並且指向對應内容的同一层級,而不是统一回首頁。内鏈如果全部指向預設語言版本,其他語言的頁面會顯得孤立,被發現的机會更少。
hreflang 解决的是版本對應關系,解决不了内容质量、入口和内鏈問题,两者要分開检查。
同一語言下的多個地区版本
如果同一語言要面向多個地区(如 en-US、en-GB、en-AU),各版本内容如果完全一样,容易互相竞争。此时應让頁面真正体現地区差异,比如货幣、配送范围、联系方式等,而不是僅換一個地区代碼。
观察一段時間再判断
調整标注後,索引和展示的切換不會立刻完成,需要给搜尋引擎重新抓取和评估的時間。期間可按語言分別观察哪些 URL 能被發現、哪些被索引,逐步缩小范围,避免在短期内反复改動标注本身。