多语言网站SEO:hreflang 的正确设置方法

hreflang 是多语言、多地区网站最重要的技术标注之一,它告诉搜索引擎:这个页面还有哪些语言或地区版本,各自面向谁。设置正确时,西班牙用户在 Google 上看到的是西语页面,英国用户看到的是英式英语页面;设置错误时,语言版本错乱、页面互相竞争的情况就会出现。本文讲清这一标注的写法、部署方式和常见错误。

hreflang 解决什么问题

当网站有多个语言或地区版本时,这些页面内容高度相关,有时甚至几乎相同(例如美国版和英国版的英文页面)。如果没有明确标注,搜索引擎需要自己判断该给哪个用户展示哪个版本,容易出现以下情况:

  • 德语用户在搜索结果中看到英文页面;
  • 面向不同地区的同语言页面被当作重复内容处理;
  • 不同语言版本之间的排名信号没有被正确关联。

这一标注并不会直接提升排名,它的作用是帮助搜索引擎在已收录的页面中,为不同语言和地区的用户选出合适的版本。需要说明的是,谷歌支持该标注;必应对它的支持有限,更多参考 content-language 等其他信号,因此面向必应的站点也要确保页面的 html lang 属性准确。

语言与地区代码怎么写

标注值由语言代码和可选的地区代码组成:

  • 语言代码使用 ISO 639-1 格式,例如 en、zh、es、vi;
  • 地区代码使用 ISO 3166-1 Alpha-2 格式,例如 US、GB、TW,写在语言代码后面,用连字符连接,如 en-GB;
  • 只写地区不写语言是错误的,例如单独写 GB 无效;
  • 简体和繁体中文可以用 zh-Hans、zh-Hant 这样的文字代码区分,也可以用 zh-CN、zh-TW 按地区区分,选一种方式并保持一致。

常见错误是把英国写成 en-UK,正确的地区代码是 GB。

三种部署方式对比

方式 写在哪里 优点 缺点
HTML 标签 每个页面的 head 中用 link rel=”alternate” hreflang 标注 直观,CMS 插件普遍支持 语言版本多时会增加每个页面的代码量
HTTP 响应头 服务器返回的 Link 头 适用于 PDF 等非 HTML 文件 配置和检查都不方便
XML 站点地图 在 sitemap 的每个 url 条目中用 xhtml:link 标注 集中管理,不改动页面代码,适合大型站点 不容易在页面上直接看到,需要定期核对

三种方式选一种即可,不建议混用,混用时一旦两边不一致,排查会很麻烦。

必须遵守的核心规则

  1. 互相指向:如果英文页指向了法文页,法文页也必须指回英文页。只有单向标注时,搜索引擎可能会忽略这组关系。
  2. 包含自引用:每个页面在列出其他版本的同时,也要列出它自己。例如英文页的标注列表中要包含 en 指向自身的那一条。
  3. 使用完整的绝对网址:包括协议和域名,例如 https://example.com/fr/page/,不要写相对路径。
  4. 指向可收录的规范网址:标注中的网址应返回 200 状态码,不能是跳转、404 或被 noindex 的页面,并且要与该页面的 canonical 一致。
  5. 对应的是同一内容的不同版本:应该把英文的产品 A 页和法文的产品 A 页关联,而不是全部指向各语言首页。

以一个有英文、法文两个版本并设置默认页的页面为例,每个版本的 head 中都应包含同样的一组标注:

  • <link rel="alternate" hreflang="en" href="https://example.com/en/page/" />
  • <link rel="alternate" hreflang="fr" href="https://example.com/fr/page/" />
  • <link rel="alternate" hreflang="x-default" href="https://example.com/en/page/" />

x-default 怎么用

x-default 用来指定“没有匹配语言或地区时”展示的默认版本。典型场景有两种:

  • 网站有一个语言选择页,让用户自己选择语言,这个选择页适合设为 x-default;
  • 没有选择页时,通常把面向最广泛用户的版本(很多网站是英文版)设为 x-default。

x-default 不是必填项,但多语言站点建议加上,能让未被覆盖的用户也有一个合理的落地页。

多语言网站的其他配套设置

语言标注只是多语言 SEO 的一部分,以下几点同样重要:

  • URL 结构:常见的有子目录(/en/、/fr/)、子域名(en.example.com)和独立国家域名。子目录便于集中权重和管理,是多数中小网站的稳妥选择。
  • 不要按 IP 强制跳转:根据访客 IP 自动跳转语言版本,可能导致搜索引擎爬虫只能看到一种语言。更好的做法是显示语言切换提示,让用户自己选择。
  • 翻译质量:机器翻译后不经审校就上线,内容质量难以保证。多语言内容的生产流程可以参考 多语言AI翻译内容系统 的思路。
  • 本地化而不只是翻译:货币、单位、联系方式、案例都要符合当地习惯,关键词也要针对当地用户的说法重新调研。
  • 各语言版本独立优化:标题、描述、内链都按该语言单独处理,不要保留其他语言的残留文字。

页面的 canonical 设置与语言标注关系密切,相关原理可以参考 canonical 标签与重复内容。

常见问题

设置完成后,如何检查是否生效?

可以查看页面源代码确认标注是否完整,用网址检查工具查看 Google 选择的规范网址;对大型站点,可以用 SEO 爬虫工具批量抓取,检查有没有缺少回指、缺少自引用、指向非 200 页面等问题。生效需要时间,搜索引擎重新抓取相关页面后才会体现。

只有一种语言但面向多个国家,需要 hreflang 吗?

如果所有国家看到的内容完全一样,一般不需要。如果针对不同国家有不同的价格、货币、联系方式等区别,就可以用 en-US、en-GB、en-AU 这样的标注区分各地区版本。

部分页面只有中文版,没有英文版,怎么处理?

语言标注只需要在确实存在对应版本的页面之间设置。只有单一语言版本的页面可以不加 hreflang,或只保留自引用,不要把它指向另一语言的首页或无关页面。

多语言网站的 hreflang、URL 结构和翻译流程需要在建站阶段就规划好,后期补救的成本往往更高。SEO飞侠 的 SaaS官网中英双语建站与SEO 方案介绍了相关做法;如果你的多语言站点出现了版本错乱或收录问题,可以通过 Telegram @Seofeixia 发来网址做免费诊断。

Telegram 咨询@Seofeixia