站点运营

站点运营:多语言与地区版本自查,别让 hreflang 只写一半

多语言与多地区站点的常见问题,往往出在版本关系没交代清楚:hreflang 只写单向、语言与地区代码混用、canonical 指错版本、自动跳转把抓取带偏。本文整理上线前的自查清单与日常维护要点,帮助减少各语言版本之间的互相干扰。

站点运营

站点运营:多语言与地区版本自查,别让 hreflang 只写一半

做多语言或多地区站点时,最容易出问题的往往不是翻译质量,而是“版本之间的关系”没交代清楚。同一个产品页,简体版、繁体版、英文版各自独立,如果没有明确的对应关系,搜索引擎判断该给哪个地区的用户展示哪个版本时,就只能靠猜。hreflang 的作用是减少这种猜测,但它本身也很容易被配成半成品。

先确定版本用什么形式承载

常见有三种做法,选哪种取决于运营投入和维护成本:

  • 子目录(example.com/en/):共用主域,部署简单,适合大多数中小站点。
  • 子域名(en.example.com):技术隔离方便,但要单独维护证书、robots 和 sitemap。
  • 独立域名(example.co.uk):地区归属感强,但每个域名都要重新积累,运营成本最高。

形式一旦确定,后续的 hreflang、sitemap、内链都围绕它来写,中途更换等于全部重做。

hreflang 的三条基本规则

1. 声明必须互相指向

A 页面写了指向 B 的 hreflang,B 页面也要写回 A。只写一半是最常见的错误,效果往往不如不写。建议用一张表格把每个语言版本的 URL 列出来逐条对照,比凭记忆靠谱。

2. 语言代码和地区代码别写混

语言用 ISO 639-1 两位代码(zh、en、ja),地区用 ISO 3166-1 两位代码(CN、TW、HK、US)。中文简繁要区分:zh-Hans 指简体,zh-Hant 指繁体,只写 zh 会让搜索引擎自行判断,简繁版本容易互相顶替。英文同理,en 与 en-GB、en-US 覆盖的范围并不一样。

3. x-default 用来兜底

x-default 指向“没有匹配到任何语言或地区时展示哪一个页面”,通常放语言选择页或默认语言版本。它只应出现一个,不要在每个页面里塞不同的 x-default。

上线前的自查清单

  1. 抽查三到五组对应页面,确认 hreflang 是双向的,URL 没有拼错、没有指向 301 或 404 地址。
  2. 确认 head 里的 hreflang 与 sitemap 里的写法一致。两处都写没问题,互相矛盾就有问题。
  3. 检查 canonical 是否指向了另一个语言版本。每个语言版本应 canonical 到自己,而不是互相收拢。
  4. 确认自动跳转没有把默认版本的页面藏起来。按 IP 判断地区后直接跳走,会让抓取工具只看到跳转。
  5. 在后台查看国际定位相关的报告,留意是否存在“重复网页,不同语言版本”之类的提示。
  6. 翻一段服务器日志,看各语言目录的抓取频次是否正常,有没有某个版本长期无人访问。

语言切换器与自动跳转

语言切换器建议用普通链接,让每个版本都有一个稳定的入口,不要只靠 JavaScript 事件或下拉框隐藏。地区自动跳转可以保留,但宜做成“提示加可关闭”,并保证跳转前原页面能被正常访问。

一个常见的坑:跳转把抓取工具一次性带到英文版,之后中文目录就再也没被抓过。日志里如果看到某个语言目录访问量长期为零,先查跳转逻辑,再查 robots 和 sitemap。

内容层面的重复问题

多语言的另一个风险是批量生成。为了覆盖更多语种,用机器翻译把同一批页面翻十遍,正文高度相似、只有语言不同,这类页面即使 hreflang 配得再准,也很难有独立价值。更稳妥的做法是先挑几个核心栏目做完整本地化,其余语种等有真实需求再铺开。

日常维护建议

  • 新增语言版本时,同步更新 hreflang、sitemap 和导航入口,一次做完。
  • 修改 URL 结构时,把 hreflang 一起改,别只改页面地址。
  • 每个季度抽一批页面复核,重点看地区代码与语言代码的对应关系。

hreflang 不保证任何展示结果,它只是把版本关系说明白。把它配正确,更多是减少误判,让每个语言版本都有被正确识别的机会。