Hreflang 不是“告诉 Google 这个页面是什么语言”的标签。
Google 官方文档说得很清楚:Google 不用 hreflang 或 HTML lang 来检测页面语言,而是用算法判断语言。hreflang 的作用,是告诉 Google 这些页面是同一内容的不同语言或地区版本。
所以,hreflang 的重点是“替代版本关系”,不是翻译本身。
什么时候需要 hreflang
适合使用 hreflang 的场景:
- 同一内容有英文、中文、日文等语言版本;
- 同一语言有不同地区版本,如
en-us、en-gb; - 页面内容高度相似,但价格、配送、联系方式或用词因地区不同;
- 用户从搜索结果进入时,希望看到对应语言或地区页面。
如果只是一个页面里有几句外语,不需要 hreflang。
最容易错的是双向标注
Hreflang 必须形成互相确认。
如果英文页声明:
<link rel="alternate" hreflang="zh-cn" href="https://example.com/zh/page/" />
中文页也要声明回英文页:
<link rel="alternate" hreflang="en" href="https://example.com/en/page/" />
同时,每个页面通常也要声明自己。缺少回链,是 hreflang 最常见的错误之一。
canonical 和 hreflang 不要打架
每个语言版本应该 canonical 到自己,而不是都 canonical 到英文主版本。
错误示例:
/en/page/ canonical -> /en/page/
/zh/page/ canonical -> /en/page/
这样会让 Google 同时收到两个信号:hreflang 说中文页是替代版本,canonical 却说中文页不是规范页。更稳妥的方式是每个语言版本 self-canonical,再用 hreflang 表达替代关系。
x-default 什么时候用
x-default 适合指向语言选择页、全球首页,或没有明确语言/地区匹配时的默认页面。
例如:
<link rel="alternate" hreflang="x-default" href="https://example.com/" />
它不是必填,但对有全球入口页的网站很有帮助。
三类读者的盲点
SEO 新手常见盲点是把 hreflang 当翻译标签,以为加了标签就能解决语言识别和本地化质量。
有一定经验的人会加标签,但容易漏掉双向标注,或让 canonical 和 hreflang 冲突。
更资深的人需要构建语言/地区矩阵和验证流程,尤其是多国家、多品牌、多域名结构。
Hreflang 检查表
| 检查项 | 合格标准 |
|---|---|
| language_code | 使用有效语言/地区代码 |
| reciprocal | 所有版本互相声明 |
| self_reference | 每个页面包含自己 |
| canonical | 每个语言版本 self-canonical |
| status_code | 所有 hreflang URL 返回 200 |
| indexable | 替代版本可索引 |
| x_default | 有全球默认页时配置 |
Hreflang 做不好不会让页面消失,但会让搜索结果更容易展示错版本。