站点运营

站点运营:hreflang 與多語言版本自查,別让蜘蛛分不清该收哪個版本

多語言或多地区站点常见的問题是各版本内容互相竞争,hreflang 是缓解這一情况的信号,但需要互相回鏈、代碼規范、與 canonical 不冲突才有意义。本文梳理常见的寫法错誤,给出一份可直接执行的自查清單,並說明寫完之後该观察哪些抓取與索引表現。

站点运营

站点运营:hreflang 與多語言版本自查,別让蜘蛛分不清该收哪個版本

站点做了多語言或多地区版本之後,常见的一種情况是:几個語言版本的頁面结构高度相似,只是文字不同,搜尋引擎在抓取时容易把它們当成重复内容,最後只留一個版本在索引里,其余的版本權重被分散。hreflang 是用来缓解這個問题的信号之一,但它需要寫對、寫全,才可能被正确理解。

hreflang 想解决的問题

简單说,它告诉搜尋引擎:這几個 URL 是同一内容的不同語言或地区版本,請在對應語言或地区的搜尋结果里展示合适的那一個。它不解决抓取問题,也不保證收錄,只是减少版本之間的互相竞争。

几個容易寫错的地方

回鏈不完整

hreflang 要求互相指向。A 頁面标注了 B,B 也要标注 A,否則這组關系是断的。很多站点只在主版本上寫了一遍,分支頁面没有任何标注,等于白寫。

語言與地区代碼不規范

語言用 ISO 639-1 两位代碼,地区用 ISO 3166-1 Alpha 2,形如 zh-CN、en-US、es-ES。寫成 zh_CN、en_US、ES 這類形式,机器可能直接忽略。地区部分可以省略,但語言部分不能随意缩寫。

x-default 缺失

当用戶的語言或地区没有明确匹配項时,需要一個兜底版本,通常用 x-default 指向它。常见做法是指向英文版或者語言選擇頁,具体看你的业務覆盖范围。

和 canonical 打架

如果每個語言版本都 canonical 到同一個 URL,同时又用 hreflang 声明它們是並列版本,两個信号就互相矛盾了。通常建议每個語言版本 canonical 到自己。

标注了不存在的頁面

指向 404、被 robots 屏蔽或者被 noindex 的地址,會让整组關系失效。改版或下线頁面之後,记得同步清理 hreflang 里的死鏈。

自查清單

  1. 列出所有語言或地区版本,確認每個版本都出現在其他版本的 hreflang 列表中,形成閉环。
  2. 检查代碼拼寫,語言和地区代碼符合标准格式,不要混用下划线和大小寫。
  3. 每组關系里有且只有一個 x-default。
  4. hreflang 指向的 URL 全部可訪問,返回 200,且没有被 noindex。
  5. hreflang 里的地址與頁面 canonical 地址保持一致,不要一個带 www 一個不带。
  6. 確認标注方式统一:head 里的 link 标簽、HTTP 头、sitemap 三種方式選一種為主,不要混着用還互相矛盾。

寫完之後看什么

hreflang 生效不會立刻体現在排名上,更實际的观察方向是抓取和索引:用站長工具或服務器日誌看各語言版本是否都被抓取過,索引里是不是長期只剩一個版本。如果分支版本始终抓不到,先回去检查站内連結和 sitemap 有没有把它們暴露出来,hreflang 本身不负责让頁面被發現。

多語言站点的根本還是内容差异。如果两個版本只是粗翻的替換,hreflang 寫得再規范,也很难改變它們被视為近似重复内容的结果。