如果你的网站服务于多种语言或多个国家的人,你会希望每位访客都在搜索结果中看到正确的版本:讲简体中文的人看到简体中文页面,台湾的访客看到繁体中文页面,英国的购物者看到以英镑标价的价格。国际 SEO 就是实现这一点的方法,而 hreflang 是它的核心工具。
选择网站结构
组织国际内容有三种常见方式:
| 结构 | 示例 | 优点 | 缺点 |
|---|---|---|---|
| 国家代码顶级域名(ccTLD) | example.de、example.fr | 国家信号最强,容易获得本地信任 | 成本高,权威性分散在多个域名上,维护工作更多 |
| 子域名 | de.example.com | 容易单独托管 | 权威性部分分离,地域信号较弱 |
| 子目录 | example.com/de/ | 共享主域名的权威性,最容易维护 | 国家信号比 ccTLD 弱 |
对于大多数企业来说,子目录是最平衡的选择:一个域名为所有语言积累权威性。当你有足够的资源去运营真正独立的各国业务时,再使用 ccTLD。
无论选择哪种,都要避免依赖 URL 参数(?lang=fr),也不要根据 Cookie 或 IP 地址在同一个 URL 上显示不同的语言,因为搜索引擎需要每个版本都有唯一的 URL。
按语言定位与按国家定位
决定你定位的是语言、国家,还是两者兼有:
- 为所有讲西班牙语的人提供一个西班牙语版本 → 按语言定位(
es) - 为西班牙和墨西哥提供不同的版本 → 语言加地区(
es-ES、es-MX) - 一个英语版本,但英国和美国的价格不同 → 地区变体(
en-GB、en-US)
只有当内容确实不同(币种、价格、法律信息、拼写、产品)时,才创建国家变体。为每个英语国家都复制一份几乎相同的内容,只会增加维护工作,却没有多少好处。
hreflang 的作用
hreflang 注释告诉搜索引擎,几个 URL 是同一内容针对不同语言或地区的对等版本。它们帮助搜索引擎向每位搜索者显示正确的 URL,并防止替代版本被视为相互竞争的重复页面。
<link rel="alternate" hreflang="en" href="https://example.com/">
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/">
<link rel="alternate" hreflang="fr" href="https://example.com/fr/">
<link rel="alternate" hreflang="x-default" href="https://example.com/">
Google 使用 hreflang;Bing 更依赖 content-language meta 标签和 HTML 的 lang 属性,所以这些也要设置。
重要的规则
1. 每个版本都列出所有版本,包括它自己
完整的 hreflang 标签集应该出现在该组中的每一个页面上。每个页面都包含一个指向自身的条目。
2. 必须有回链
如果英语页面指向法语页面,法语页面就必须回指英语页面。没有相互的链接,Google 可能会忽略这些注释。这是最常见的 hreflang 错误。
验证 hreflang 标签,并确认每个语言版本都相互链接。
3. 使用有效的代码
- 语言:ISO 639-1 两字母代码(
en、fr、de、ar) - 可选的地区:ISO 3166-1 alpha-2 代码(
GB、US、MX) - 只有地区是无效的(
hreflang="uk"表示乌克兰语,而不是英国) - 英国是
GB:使用en-GB,绝不要用en-UK
4. 添加 x-default
x-default 标记当没有其他版本与搜索者匹配时应显示的页面,通常是语言选择页或你的主要国际页面。
5. 指向规范的、可收录的 URL
hreflang 中的每个 URL 都应该返回 200、可以被收录,并且自身就是规范网址。不要让 hreflang 指向重定向或带有 noindex 的页面,也不要把不同语言版本相互设置为 canonical。
为页面的每个语言和地区版本生成 hreflang 链接标签。
实施 hreflang 的三种方式
<head>中的 HTML link 标签:对小网站来说最简单- HTTP 标头:用于 PDF 等非 HTML 文件
- XML 站点地图:最适合大型网站,能让 HTML 保持精简,也更便于集中管理
<url>
<loc>https://example.com/fr/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/"/>
<xhtml:link rel="alternate" hreflang="fr" href="https://example.com/fr/"/>
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/"/>
</url>
始终如一地使用一种方法;混合使用更容易出错。
hreflang 之外
- 认真翻译。 未经审校的机器翻译往往读起来很差。要对币种、单位、日期、示例和文化元素进行本地化。
- 本地化元数据。 在可行的情况下,翻译标题、描述、alt 文本和 URL(别名)。
- 不要根据 IP 自动重定向。 根据位置重定向访客,可能会让 Googlebot(主要从美国抓取)看不到其他版本。改为显示一个建议切换到本地版本的横幅。
- 用使用普通链接的可见语言切换器在各版本之间建立链接。
- 设置 HTML
lang属性和文字方向(阿拉伯语和希伯来语使用dir="rtl")。 - 为每个市场赢得本地链接和提及。
常见的 hreflang 错误
- 缺少回链
- 无效的代码,例如用
en-UK或uk表示英国 - 缺少指向自身的条目
- hreflang 指向已重定向、失效或带有 noindex 的 URL
- canonical 标签把所有语言都指向同一个版本
- 只有首页有 hreflang,内页没有
实例演示
一家中国的跨境网店面向中国大陆、台湾、美国和英国销售,提供简体中文、繁体中文和英语内容。美国(美元)和英国(英镑)的价格不同。
**结构:**同一域名下的子目录。
| 版本 | URL | hreflang |
|---|---|---|
| 简体中文 | example.com/ | zh |
| 繁体中文 – 台湾 | example.com/tw/ | zh-TW |
| 英语 – 美国 | example.com/us/ | en-US |
| 英语 – 英国 | example.com/uk/ | en-GB |
| 默认版本 | example.com/us/ | x-default |
每个版本的每个页面都带有全部五条注释。简体中文版本按语言(而不是单一国家)定位,因为它用同样的内容服务中国大陆、新加坡等地的中文读者。繁体中文版本使用台湾的字体、用词和价格,所以指定为 zh-TW。美国版和英国版的币种和配送信息不同,所以分别使用各自的地区代码。不匹配任何语言的访客会看到作为默认版本的美国英语版。
从右向左书写的语言
阿拉伯语、希伯来语、波斯语和乌尔都语是从右向左书写的。对于这些版本:
- 在
<html>元素上设置dir="rtl",并配合正确的lang - 镜像布局:导航、表示方向的图标以及文字对齐方式
- 使用 CSS 逻辑属性(用
margin-inline-start代替margin-left),让一份样式表同时适用于两个方向 - 检查数字、URL 和多语言混排的文字是否正确显示
衡量国际表现
在 Google Search Console 中,你可以按国家和页面筛选“效果”报告,从而比较每个语言目录在其目标国家中的点击和展示。如果英语页面的展示大多来自美国,而英国和澳大利亚的受众却很少,就要考虑地区变体或本地内容是否会有帮助。还要检查每个国家的搜索者是否进入了正确的版本:如果英国的搜索者进入的是美国页面,请检查你的 hreflang 和内容差异。
国际 SEO 清单
- 每个语言或地区版本都有唯一的 URL
- 选定了网站结构(ccTLD、子域名或子目录),并始终如一地使用
- 每个版本都有 hreflang,包括指向自身的条目和 x-default
- 所有版本之间都有相互的回链
- 有效的语言和地区代码
- 每个版本都有自引用的 canonical
- 内容、标题和描述都经过翻译和本地化
- 设置了 HTML
lang和dir属性 - 没有基于 IP 的自动重定向,而是提供可见的语言切换器
- 按市场分别跟踪表现
要点总结
- 国际网站的每个语言或地区版本都需要唯一的 URL。
- 对于大多数企业来说,同一域名下的子目录在权威性和维护之间最为平衡。
- hreflang 必须是相互的,并在每个版本上包含指向自身的条目。
- 使用有效的代码(语言加可选的地区,例如 en-GB),并添加 x-default。
- 每个版本都需要自引用的 canonical;绝不要把不同语言相互设置为 canonical。
- 避免基于 IP 的自动重定向,改为提供可见的语言切换器。
常见问题
单一语言的网站需要 hreflang 吗?
不需要。hreflang 只适用于在多种语言或地区中拥有对等内容的网站。
hreflang 是排名因素吗?
不是。它不会让页面排名更高;它帮助搜索引擎向正确的受众显示正确的版本。
Google 会使用 HTML 的 lang 属性吗?
Google 根据内容本身来判断语言,并使用 hreflang 来识别替代版本。不过,设置 lang 属性对无障碍和其他搜索引擎仍然很重要。
我可以自动翻译我的网站吗?
可以,但要审校机器翻译。大规模的低质量自动翻译可能会被视为低价值内容。
检测你自己的网站
免费运行 80+ 项检查,每个问题都有修复方法。