站点运营

站点运营:多语言与多地区站点,目录结构与 hreflang 的自查思路

多语言、多地区站点最容易在结构上留下隐患:目录怎么放、hreflang 怎么写、语言切换能不能被直接访问。本文从目录选型、hreflang 规则、自动跳转的取舍、站点地图标注到上线前自查,梳理一套可落地的检查思路。

站点运营

站点运营:多语言与多地区站点,目录结构与 hreflang 的自查思路

做多语言或多地区站点,最常见的坑往往不是翻译质量,而是结构没想清楚就开始复制页面。等文件堆到几百上千个,再回头改目录、改链接,成本会翻好几倍。下面这几件事,建议在动手之前先定下来。

一、先选结构,再谈实现

语言版本的承载方式主要有三种,各有取舍:

  • 子目录(如 /en/、/de/):所有语言共用一个域名,权重集中,配置简单,适合初期和小语种站点。
  • 子域名(如 en.example.com):适合不同地区由不同团队维护,或在服务器、CDN 上需要分开部署的情况。
  • 独立国家域名(如 example.co.uk):地区和语言信号最明确,但成本高、维护分散,一般只在已有本地业务实体时使用。

选定之后不要混用,例如一部分语言放子目录、一部分放子域名,会让后续的 hreflang 配置和日志分析都变得难读。

二、hreflang 的三条硬规则

hreflang 用来告诉搜索引擎「这个页面还有哪些语言或地区的版本」,写法不难,但出错的概率很高。

  1. 互相指向,形成闭环。A 页面标注了 B,B 也必须标注 A。单向标注经常被忽略,效果也会打折。
  2. 用规范的语言代码。语言用 ISO 639-1(en、zh、de),地区用 ISO 3166-1 Alpha-2(US、GB、HK)。zh-Hans、pt-BR 这类写法是可以的,不要自创。
  3. x-default 只写一条。它表示「没有匹配到任何语言版本时给谁看」,通常指向默认语言页或语言选择页,不要每个页面都塞一条不同的 x-default。

另外,hreflang 中的地址必须是可访问的绝对 URL,且指向返回 200 的规范版本。指向跳转链接或 404 的标注,基本等于没写。

三、自动跳转要谨慎

不少站点一进来就根据 IP 或浏览器语言强制跳到对应版本。对访客来说未必更方便,对搜索引擎来说还可能让你的其他语言版本一直抓不到。更稳妥的做法是:给一个语言选择提示,或者允许通过链接和手动切换进入任意语言版本,并保证每个版本都能被直接访问。

如果一个语言版本只能靠自动跳转到达,它基本上就很难被稳定地抓取和索引。

四、站点地图与内链上的标注

除了页面 head 里的 hreflang,还可以在 XML 站点地图中用 xhtml:link 标注各语言版本,两处写法保持一致,避免互相矛盾。内链方面,语言切换器最好用普通的 a 标签指向具体 URL,而不是用 JavaScript 事件或表单提交。切换器本身也可以承担一点内链作用:比如从英文文章链到对应的中文文章,帮助蜘蛛在语言版本之间横向发现页面。

五、上线前自查清单

  1. 每个语言版本的 URL 都能直接打开,不依赖跳转。
  2. hreflang 全部双向、无死链、无指向重定向地址的标注。
  3. 语言代码和地区代码符合标准,x-default 唯一。
  4. 各语言版本的内容是真实翻译,而不是同一段文字的机械替换。
  5. 站点地图中包含各语言版本,并能互相标注。
  6. 页面上的语言切换器是可抓取的链接。

多语言站点的复杂度往往不在翻译本身,而在层级、标注和入口的一致性。前期多花半天理清结构,后面能省掉大量逐页修正的时间。