一、Hreflang 工作原理
标签基础结构
<link rel="alternate" hreflang="语言代码-地区代码" href="目标URL" />
三个属性的作用:
| 属性 | 用途 |
|---|---|
| rel="alternate" | 声明该 URL 是当前页面的替代版本 |
| hreflang | 用 ISO 标准代码声明语言与地区 |
| href | 替代版本的绝对 URL |
语言代码规范
Hreflang 使用两个 ISO 标准的组合:
- 语言代码:ISO 639-1(两字母),如
en(英语)、zh(中文)、fr(法语) - 地区代码:ISO 3166-1 Alpha-2(两字母),如
US(美国)、GB(英国)、CN(中国)
格式:language-REGION(语言小写,地区大写,连字符分隔)。
常见错误代码对照:
| 错误写法 | 正确写法 | 说明 |
|---|---|---|
| cn | zh-CN | cn 不是有效语言代码 |
| en_US | en-US | 用连字符不是下划线 |
| english | en | 必须用 ISO 639-1 代码 |
| zh-cn | zh-CN | 地区代码大写 |
x-default 的角色
x-default 是默认兜底版本,当用户的语言与地区都无法匹配任何 Hreflang 时显示:
<link rel="alternate" hreflang="x-default" href="https://yourdomain.com/" />
必加。缺少 x-default 会让 Google 在无法匹配时随机选择,可能选到非主市场版本。
二、Hreflang 与 Canonical 的关系
这是 Hreflang 配置中最容易出错的部分。两个标签作用不同:
- Canonical:声明”哪个 URL 是这组重复 URL 的官方版本”
- Hreflang:声明”这些 URL 是同一内容的不同语言/地区版本”
关键规则
每个语言版本的 canonical 应该指向自己,不是默认语言。
正确示例(法语页面):
<link rel="c...