多语言网站 hreflang 怎么设置?先给每种语言或地区版本使用独立、可抓取的完整 URL;然后在同一组对应页面中列出所有版本,包括当前页面自身,并让每个版本相互返回链接;最后按“语言代码-可选地区代码”填写,例如 en、en-US、de,必要时增加 x-default 后备页。HTML、HTTP 标头和 XML Sitemap 三种方式选一种维护即可。设置后逐页检查 URL、语言代码、双向关系、canonical 和索引状态。
hreflang 的作用,是告诉 Google:这些 URL 是同一内容的不同语言或地区版本,搜索时可以把更合适的版本提供给用户。它不是自动翻译工具,不会决定页面语言,也不是提升排名的保证。Google 的本地化网页官方说明明确列出 HTML、HTTP 标头和 Sitemap 三种等效实现方法,并要求每个语言版本列出自身和其他版本。

什么时候需要 hreflang,什么时候不需要
以下场景通常需要 hreflang:
- 同一产品页同时有英语、德语、西班牙语等完整翻译版本。
- 同为英语,但美国、英国、澳大利亚页面在币种、交付、认证或联系方式上有地区差异。
- 导航和页脚使用不同语言,主要内容仍相近,需要说明这些页面之间的本地化关系。
以下情况不要急着设置:
- 同一个 URL 根据浏览器语言动态替换内容,却没有每种语言的独立 URL。
- 只翻译了菜单,产品主体仍是另一种语言,页面对目标用户并不完整。
- 两个页面不是同一内容的对应版本,只是主题相似的不同文章。
- 目标语言页面尚未发布、被
noindex、跳转或无法抓取。
Google 还建议为不同语言版本使用不同 URL,而不是只依赖 Cookie 或浏览器语言改变页面。可参考其多区域和多语言网站管理指南。对 WordPress 外贸站,常见结构是子目录,如 /en/、/de/、/es/;但 hreflang 与 URL 结构是两件事,子目录、子域名或不同域名都可以建立对应关系。
HTML、HTTP 标头和 Sitemap 怎么选
| 方法 | 适用场景 | 优点 | 风险与维护成本 | 建议 |
|---|---|---|---|---|
| HTML link 标签 | 普通产品页、文章页、栏目页 | 可直接在页面源代码检查;WordPress 多语言插件通常支持 | 语言多时 head 代码变长;模板错误会扩散到大量页面 | 大多数 WordPress 网站优先使用 |
| HTTP Link 标头 | PDF 等非 HTML 文件,或有统一服务器层控制 | 适合不能插入 HTML head 的文件 | 不易人工检查;代理、缓存或服务器配置可能改变标头 | 只在明确需要时使用 |
| XML Sitemap | 页面很多、希望集中维护本地化关系 | 页面 head 不增加大量标签;可由系统统一生成 | 站点地图体积和逻辑更复杂;漏掉一个版本会产生不完整集群 | 大型站点或成熟技术团队使用 |
明确建议:普通 WordPress 外贸站选择一种方式即可,通常用多语言插件输出 HTML 标签最容易检查;PDF 才优先考虑 HTTP 标头;大规模目录站可使用 Sitemap。Google 说明三种方式从搜索角度等效,同时使用并没有额外收益,反而更难保证一致。
HTML hreflang 的正确写法
假设同一产品有英语、德语和西班牙语三个版本,每个版本的 <head> 中都应输出完全相同的一组链接,包括指向自身的链接:
<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="es" href="https://example.com/es/product-a/" /> <link rel="alternate" hreflang="x-default" href="https://example.com/product-a/" />
这组标签必须出现在英语、德语、西班牙语和后备页面对应版本中。若英语页指向德语页,但德语页没有指回英语页,Google 可能忽略这段关系。所有 href 都应使用带协议和域名的完整 URL,且应指向最终可访问的规范地址,不要指向 HTTP、重定向链或带无意义参数的 URL。
语言代码和地区代码怎么选
hreflang 的第一部分是 ISO 639-1 语言代码,第二部分可选,是 ISO 3166-1 Alpha 2 地区代码。不能只填国家代码,也不要凭日常缩写猜测。
| 写法 | 含义 | 是否合适 |
|---|---|---|
en | 英语,不限定地区 | 适合一套英语内容服务多个国家 |
en-US | 面向美国用户的英语 | 页面确有美国区域差异时使用 |
en-GB | 面向英国用户的英语 | 注意地区代码是 GB,不是 UK |
de | 德语,不限定地区 | 适合通用德语页面 |
zh-Hans | 简体中文书写体系 | 需要区分书写体系时使用 |
US | 只有地区,没有语言 | 无效,不应使用 |

如果英语页面并没有针对美国和英国做实质差异,就不要为了“覆盖更多国家”重复建立 en-US、en-GB 页面。只有币种、库存、物流、认证、法规、联系方式或主要内容确实按地区调整时,地区代码才有意义。否则使用通用 en 更容易维护。
x-default 是什么,应该指向哪里
x-default 是未匹配到其他语言或地区时的后备版本。它不代表一种语言。对于有语言选择器的首页,可以指向选择器;对于只有一个主语言页作为默认入口的网站,也可指向该默认页面。不要为 x-default 编造语言代码。

WordPress 多语言网站 hreflang 设置步骤
第 1 步:建立页面对应表
先用表格列出每个产品、栏目和文章的各语言 URL。只有真正对应的页面放在同一行;没有翻译版本时宁可不标,也不要把不相关页面凑成一组。可从产品详情页开始,再扩展到栏目、博客和首页。
第 2 步:确认每种语言使用独立 URL
检查每个语言版本是否能直接打开、返回 200、显示完整目标语言内容,并拥有自己的标题、正文、图片 ALT、canonical 和站内链接。只靠前端按钮替换文字、但地址不变的页面,不具备清晰的语言 URL。
第 3 步:选择一个输出来源
查看多语言插件、SEO 插件和主题是否都会生成 hreflang。只保留一个可靠来源,避免同一页面出现两组互相冲突的标签。插件界面会变化,因此最终必须检查公开页面源代码,而不是只看后台开关。
第 4 步:设置语言与可选地区
通用语言优先使用 en、de、fr 等;只有页面确实针对区域时再用 en-US、en-GB。在 Google 当前官方页面核对支持的代码,不使用 UK、EU 等无效地区写法。
第 5 步:检查自身引用与双向返回
每个版本必须包含自己和所有其他版本。同一组四个页面应该输出同一组四个(或加 x-default 后五个)链接。抽查时从 A 页进入 B 页,再确认 B 页源代码是否也指回 A 页。
第 6 步:让 canonical 与语言版本一致
通常每个真正独立的语言页面使用自引用 canonical:英语页 canonical 指向英语页,德语页指向德语页。不要把全部语言版本 canonical 到英语页,否则会给搜索引擎互相矛盾的合并与本地化信号。Google 的canonical 官方说明也强调选择一致的规范 URL。
第 7 步:发布后验证
查看页面源代码中的 rel="alternate",逐一打开 href;确认返回 200、没有 noindex、没有被 robots.txt 阻止、canonical 正确。再用 Search Console 网址检查查看 Google 能否抓取各语言 URL。不要把第三方工具的“通过”当成索引或排名保证。
最常见的 10 个 hreflang 错误
- 缺少返回链接:A 指向 B,B 没有指回 A。
- 没有自身引用:英语页只列德语和西班牙语,没有列英语页自己。
- 语言代码错误:把国家放在第一位,或使用不存在的缩写。
- 使用相对 URL:只写
/de/product/,而不是完整 HTTPS URL。 - 指向重定向或 404:标记中的 URL 不是最终有效页面。
- canonical 冲突:所有语言页 canonical 到同一个英语 URL。
- 把不对应页面配成一组:英语产品 A 对应到德语产品分类页。
- 多套输出冲突:插件、主题和 Sitemap 分别给出不同关系。
- 强制 IP 或语言跳转:用户和 Googlebot 无法稳定访问其他版本。
- 翻译质量不足:页面只翻译菜单或堆机器翻译,主要内容没有真正本地化。
一份可执行的发布检查表
| 检查项 | 合格标准 |
|---|---|
| URL | 每个版本独立、完整 HTTPS URL,公开返回 200 |
| 内容 | 主体内容确实是目标语言,不只翻译模板 |
| 代码 | 语言代码正确;地区代码只在必要时使用 |
| 集群 | 每个页面包含自身和所有对应版本,且双向返回 |
| x-default | 需要时指向可访问的默认页或语言选择器 |
| canonical | 各语言页通常自引用,不与 hreflang 冲突 |
| 索引 | 无 noindex、抓取屏蔽、跳转链和 404 |
| 维护 | 新增、删除或迁移语言 URL 时同步更新整组链接 |
完成 hreflang 后,还应检查Sitemap 生成与提交、robots.txt 抓取规则和Search Console 网址检查。这些环节共同决定 Google 能否访问、理解和索引不同语言版本。
