hreflang 怎么配置?多语言网站从配对到验证的完整方法
说明 hreflang 的 HTML、HTTP 标头和 Sitemap 三种实现方式,以及自引用、双向返回、完整 URL、语言地区代码和 x-default 的配置与验证方法。
先看核心结论
- 先建立真正对应的页面组;没有目标页面时,不要用不相干 URL 填满标记。
- HTML、HTTP 标头和 Sitemap 对 Google 等效,选择一种可持续维护的方法即可。
- 每个版本必须列出自身和全部替代版本,并与其他版本保持双向返回。
hreflang 的难点不在单个标签,而在页面组。只要某个版本缺少自引用、返回链接或最终 URL 不一致,整组关系就可能失去作用。
实施前应先建立页面配对表,再从 HTML、HTTP 标头或 Sitemap 中选择一个最接近页面源数据、最容易长期同步的实现。
直接答案:配置 hreflang 的关键不是把代码贴到一个页面,而是为每组真正对应的语言或地区页面建立完整配对:每个版本列出自身与全部替代版本,使用完整 URL,并在其他版本上返回同一组标记。HTML、HTTP 标头和 Sitemap 选一种长期可维护的方法即可。
hreflang 到底解决什么问题?
它声明同一内容的语言或地区替代版本
hreflang 用于告诉 Google:这些 URL 是同一页面的本地化变体,分别面向哪些语言或地区。Google 不会用 hreflang 或 HTML lang 属性检测页面语言,而会根据可见内容判断语言,因此标记不能替代真实翻译与本地化。相关规则见 Google Search Central 的本地化版本指南(核验于 2026-07-23)。
Search Console 的“国际定位”报告已经弃用,但 Google 明确表示仍继续支持 hreflang。实施团队不能再把旧报告无报错当作验收,而应检查渲染后 HTML、HTTP 标头或 Sitemap。可核对 Search Console 关于报告弃用的说明。
HTML、HTTP 标头和 Sitemap 应该选哪一种?
选择离页面源数据最近、最容易保持一致的方法
| 方法 | 适用场景 | 优势 | 主要风险 |
|---|---|---|---|
| HTML head | 常规 HTML 页面、模板可控 | 打开页面即可检查,映射直观 | 语言很多时 head 变长;模板漏页会断组 |
| HTTP Link 标头 | PDF 等非 HTML 文件 | 不必修改文档正文 | 代理、CDN、应用层可能产生不一致 |
| XML Sitemap | URL 规模大、已有稳定页面映射 | 集中生成与批量校验 | 映射源错误会一次扩散到大量 URL |
Google 认为三种方法等效,同时使用不会带来额外搜索收益,反而更难维护。企业应确定一个页面映射源,再由它生成唯一实现。
hreflang 怎么配置?
从页面配对表到可验证标记的六个步骤
- 建立页面组:例如
/zh/product-a、/en/product-a、/de/product-a,只把真正对应的页面放在同一组。 - 确定代码:先写语言代码,再按需要添加地区代码,如
en、en-GB、de;不能只写国家代码。 - 列出自身和全部替代版本:每个页面都包含自引用,并使用带 HTTPS 与主机名的完整 URL。
- 复制同一组映射到所有版本:A 指向 B 时,B 必须返回指向 A;缺少返回链接时相关标记可能被忽略。
- 按需添加 x-default:语言选择页或没有匹配语言时的后备页,可声明
x-default。 - 发布后抽样验证:检查源代码或响应、最终状态码、canonical、Sitemap 和页面可见语言是否一致。
<link rel="alternate" hreflang="zh-Hans" href="https://example.com/zh/product-a" />
<link rel="alternate" hreflang="en" href="https://example.com/en/product-a" />
<link rel="alternate" hreflang="de" href="https://example.com/de/product-a" />
<link rel="alternate" hreflang="x-default" href="https://example.com/language" />
以上代码必须在同一组所有页面中保持一致,并位于格式正确的 HTML head。备用 URL 要使用完整 URL;不同域名之间也可以互相声明。
语言代码和 x-default 最容易错在哪里?
第一段是语言,第二段才是可选地区
| 写法 | 含义 | 判断 |
|---|---|---|
| en | 通用英语 | 适合不限定国家的英语页 |
| en-GB | 面向英国的英语 | 语言 + 地区,合法 |
| de-CH | 面向瑞士的德语 | 语言 + 地区,合法 |
| UK | 只有国家代码 | 错误:第一段必须是语言 |
| x-default | 无匹配语言时的后备 | 适合语言选择页或默认页 |
Google 使用 ISO 639-1 语言代码与可选的 ISO 3166-1 Alpha 2 地区代码,并建议为同一语言的多个地区版本保留一个通用语言页;x-default 不需要附加语言代码。
发布前怎样验证 hreflang?
按页面组检查,不要只抽一个标签
| 检查层 | 通过标准 | 失败动作 |
|---|---|---|
| URL | 全部返回 200,无登录墙或强制跳转 | 先修访问与重定向 |
| 页面组 | 只包含语义对应的本地化版本 | 拆掉错配页面,补真实对应页 |
| 返回链接 | 每个版本列出自身和其他版本 | 同步模板或页面映射源 |
| 代码 | 语言或地区格式有效,URL 完整 | 修代码并重新全组生成 |
| canonical | 指向同语言的规范页,不跨语言冲突 | 先处理规范页冲突再上线 |
| Sitemap 和内链 | 只使用最终正式 URL | 移除重定向、参数或旧主机名 |
第一手检查可从页面矩阵抽取三组,每组检查所有语言版本的渲染后 head、最终 URL、状态码和返回链接。截图只保留必要代码,不使用客户域名或账号数据。
哪些 hreflang 错误最常见?
缺少返回链接比少一个标签更值得优先修
- 只有默认语言页指向其他语言,其他页面没有返回链接。
- 把不对应的首页、产品页和文章页放入同一组。
- 使用相对路径、旧域名、HTTP、重定向 URL 或 404 URL。
- 把国家代码当语言代码,或把
en同时当语言与国家。 - HTML、Sitemap 和数据库各维护一份映射,三处逐渐不一致。
- 页面主体仍是同一种语言,只翻译导航,却期待 hreflang 解决重复内容。
NeoGress 能怎样连接这套工作?
先建立页面结构,再把标记纳入发布检查
NeoGress 的 多语言网站 SEO 专题 把 URL、hreflang、canonical 和页面内容放在同一张检查清单中。实际使用时,可先确定每个语言版本需要哪些首页、产品页、方案页、FAQ 和联系页,再把“页面组完整、返回链接存在、正式 URL 一致”纳入发布复核。
URL 架构尚未确定时,应先回到 多语言网站 URL 结构选择方法;出现语言页被替换或规范页变化时,再使用 canonical 与 hreflang 冲突排查清单。NeoGress 不替 Google 保证版本选择、索引或排名。
这种方法有哪些限制?
hreflang 是关系说明,不是收录开关
即使标记完全正确,页面仍可能因为内容薄、抓取受阻、canonical 冲突或站点信号不足而不进入索引。Google 也不保证所有语言或地区变体分别进入索引。验收应关注映射是否正确和页面是否可访问,而不是承诺每个版本都会获得展现。
配置完成后应该怎样扩到全站?
先验证三组页面,再批量生成
选择一个产品页、一个方案页和一个文章页,先完成语言版本配对、代码生成与双向检查。三组都稳定后,再把同一规则扩展到全站,并使用 多语言收录混乱排查页观察索引问题是否来自其他信号。
常见问题
hreflang 一定要放在 HTML 里吗?
不一定。Google 支持 HTML、HTTP 标头和 XML Sitemap 三种等效方式。普通 HTML 页面常用 head,PDF 可用 HTTP 标头,大型站点可用 Sitemap。
能同时使用三种方式吗?
可以,但 Google 明确说明不会获得额外搜索收益,维护难度反而增加。除非有严格同步机制,通常只选一种。
每个页面都要写自己吗?
要。每个语言版本都应列出自身和所有其他版本;同组页面还要双向返回。
x-default 是必需的吗?
不是所有页面都必须,但语言选择页或无匹配语言时的后备页很适合使用。
Search Console 还能看到 hreflang 报告吗?
旧“国际定位”报告已弃用。应通过页面源代码、HTTP 标头、Sitemap、抓取与 URL 检查进行验证。