同一套内容做成中文、英文、繁体多個版本,或者面向不同地区做了略微調整的頁面,是不少站点的常態。這類站点做收錄自查时,常常會遇到两個問题:搜尋引擎究竟把哪個版本当作主要版本?其他版本會不會被当成重复内容而反复抓取?答案並不在“加不加 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 只是把這层關系說明白,不能替代頁面质量本身。版本少、结构清晰的站点,處理起来通常比版本多但關系混乱的站点省事得多。