站点运营

站点运营:hreflang 與多語言版本自查,別让蜘蛛在語言關系上反复纠结

多語言或多地区站点常见的問题不是翻译质量,而是各語言版本之間的關系没寫清楚。本文從双向标注、語言與地区代碼、x-default、指向 URL 的可抓取性、canonical 冲突、标注方式與語言切換連結七個角度,整理了一份 hreflang 自查清單,帮助站点运营者把語言版本關系理顺,减少蜘蛛反复判断带来的困惑。

站点运营

站点运营:hreflang 與多語言版本自查,別让蜘蛛在語言關系上反复纠结

多語言或多地区站点最容易出問题的地方,往往不是翻译质量,而是同一套内容在搜尋引擎眼里分不清谁是谁。hreflang 就是用来做這件事的:說明同一主题的多個語言、地区版本之間的關系,让合适的人看到合适的版本。

它本身不保證收錄,也不保證排名,但配置混乱时,确實會让蜘蛛在几個版本之間反复判断,甚至把流量集中到一個並不合适的語言頁上。

自查一:标注是不是双向的

最常见的問题是單向标注。A 頁面寫了指向 B,B 頁面却没有回指 A。hreflang 需要双向確認,只有一邊标注时,這组關系通常會被忽略,等于白寫。

如果語言版本較多,人工逐條核對容易漏。建议把每個版本的 head 片段導出成表,一行一個 URL,把 hreflang 列對齐检查,一眼就能看出谁缺了回指。

自查二:語言與地区代碼寫得對不對

  • 語言用 ISO 639-1 两字母代碼,如 zh、en、ja;地区用 ISO 3166-1 两位代碼,如 CN、US、HK。
  • 只有語言差异、没有地区差异时,寫語言代碼就够了,不要為了顯得精确随手加一個不存在的地区碼。
  • 避免同一語言版本同时出現 en 和 en-US 两套指向,容易造成自我冲突。
  • 代碼大小寫不敏感,但书寫風格要统一,方便後續维護和排查。

自查三:x-default 有没有落位

x-default 是兜底項:当訪客的語言和地区都不在列表里时,展示哪個版本。通常是國际版或語言選擇頁。缺了它不會立刻报错,但會让首次到訪的人和蜘蛛少一個預設落点。

自查四:被指向的 URL 是不是可用的

hreflang 指向的頁面應当可抓取、返回正常狀態碼,並且内容真實存在。常见問题包括:

  • 指向 301、302 的中間地址,而不是最终 URL。
  • 目标頁被 robots.txt 拦截,或被 noindex 标记。
  • 目标頁需要登入或受地区限制才能打開。
  • 頁面已经下线,hreflang 却還留着。

這些情况都會让語言關系断掉。定期把 hreflang 里出現的 URL 抽出来,跑一遍狀態碼與可抓取性检查,比事後靠猜省事得多。

自查五:和 canonical 有没有打架

一句话原則:每個語言版本的 canonical 指向自己。不要把各語言版本的 canonical 全都指到主語言頁,那等于告诉搜尋引擎其余版本都是重复内容,hreflang 想表達的關系也就被抵消了。

canonical 回答哪一個是正本,hreflang 回答给谁看哪一本,两者角色不同,不要互相顶替。

自查六:标注方式是否统一

常见做法有三種:HTML head 中的 link 标簽、HTTP 响應头、XML 站点地图。選其一或组合使用都可以,但同一站点内最好保持一致,避免漏标、错标。如果是纯 JS 動態注入,要確認蜘蛛执行脚本後能拿到完整的 head 内容。

自查七:語言切換器別只做假連結

頁面上的語言切換按钮,有的是用 JS 直接跳轉,有的用下拉框触發請求。對訪客也许没影响,但缺少可抓取的 a 标簽連結时,蜘蛛就找不到這些語言版本的真實入口。给每種語言一個可点击的真實連結地址,是最省心的做法。

收尾

多語言站点的 hreflang 不必一次做到完美。先把双向互指、代碼規范、canonical 不自相矛盾這三件事理清,就已经能消掉大部分混乱。剩下的细节,可以在每次新增語言版本时顺手补齐。