多语言网站:hreflang、URL 与常见错误
没有清晰 URL 方案和正确 hreflang 的 多语言网站,常常会丢流量:搜索引擎搞混版本、显示错误语言,或把页面当成重复内容。下面说明如何选择地址结构、如何关联各语言版本,以及 2026 年最常见的错误。
- hreflang - 告诉搜索引擎哪种语言/地区版本面向哪类受众
- URL - 路径前缀、子域名或独立域名;方案必须统一且可预期
- Canonical - 不能破坏各语言版本之间的关联
- 内容 - 翻译或本地化,而不是未经校对的机器翻译粘贴
- 规则 - 每个语言版本指向其余全部版本,并指向自己
为什么需要 hreflang 和 URL 方案
德国用户应看到德语版,巴西用户看到葡萄牙语版,美国用户看到英语版。没有明确信号时,搜索引擎会根据 IP、浏览器语言和链接猜测 - 而且经常猜错。
hreflang 本身不会提升排名。它帮助在对等页面中选择 正确版本。URL 方案决定人和爬虫如何找到这些版本:通过 /de/、de.example.com 或 example.de。
多语言的 URL 方案
| 方案 | 示例 | 优点 | 缺点 |
|---|---|---|---|
| 路径前缀 | example.com/de/blog/ |
单一域名,分析和证书更简单 | 路由与 sitemap 需要纪律 |
| 子域名 | de.example.com/blog/ |
托管与团队更灵活 | 域名权重更难共享,基础设施更多 |
| 独立域名 | example.de/blog/ |
本地信号强 | 维护成本高,SEO 活动需分开 |
对 2026 年大多数企业站和博客而言,路径前缀 更务实:一套技术栈、一套分析、部署更简单。子域名和 ccTLD 适合本地品牌强、法人主体不同,或有专门市场团队的情况。
请固定 默认语言:无前缀的根路径(/),或显式的 /en/。混用「有时有前缀、有时没有」会导致重复。
如何正确配置 hreflang
- 在每个页面列出所有可用的对等页:
hreflang="ru"、hreflang="en"、hreflang="de"等。 - 添加 自引用:页面也指向自己。
- 关联必须 互指:若 A 指向 B,则 B 指向 A。
- 使用 BCP 47 代码:语言(
en)或语言-地区(en-GB、pt-BR)。 - 需要时设置
x-default- 未匹配语言时的默认页(常见为语言选择页或 EN)。 - 在 HTML
<link rel="alternate" hreflang="...">和/或 XML sitemap 中镜像相同标注。
<head> 示例:
<link rel="alternate" hreflang="ru" href="https://example.com/blog/post/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/blog/post/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/blog/post/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/blog/post/" />
常见错误
1. 没有互指
俄语页链到 EN,但英语页没有回链到 RU。搜索引擎可能忽略整组。
2. Canonical 指向「主」语言
俄语页的 canonical 指向英语页「当作原文」。这样各语言版看起来像重复,而不是替代。Canonical 应指向 自身(或同一语言版的规范 URL),而不是另一种语言。
3. 按 IP / Accept-Language 自动跳转
用户和爬虫无法稳定打开目标版本。更好的做法:每个语言版独立 URL +语言切换,不要从根路径强制跳到「猜出」的语言。
4. 语言集合不完整
菜单有 5 种语言,hreflang 只有 2。或一篇有译文、下一篇没有,地图里仍挂着失效的 alternate。宁可诚实:只列真实存在的 URL。
5. 混淆语言与地区
de 是德语。de-AT 是面向奥地利的德语。若 DE/AT/CH 内容相同,不要在没有真正本地化价格、配送和法律文案的情况下造出三份几乎一样的页面。
6. 「翻译」下含义不同
URL「翻译」了,但报价、货币和 CTA 仍属于另一市场。对 SEO 而言已不再是对等页 - 此时 hreflang 可能有害。
7. 忘记 sitemap 与内链
<head> 里有标签,但 XML sitemap 没有 xhtml:link,页脚语言链接总是去首页,而不是当前文章的对等页。语言版之间的内链会加强信号。
上线前检查清单
- 全站统一一种 URL 方案。
- 每个可索引页都有完整互指的 hreflang 集合+ self。
- Canonical 不把不同语言粘在一起。
- 没有会切断索引的激进 geo-redirect。
- sitemap 包含所有语言版与标注。
- 语言切换指向对等页,而不只是首页。
- 404 与「尚未翻译」有明确处理(软回退或诚实 404),不要在同一 URL 下静默返回另一种语言。
总结
多语言网站 在每类受众有稳定 URL、且 hreflang 诚实关联对等页时才真正有效。选定一种地址方案,保持标注互指,不要用 canonical 或 geo-redirect 破坏语言版 - 搜索引擎就不必再替你猜语言。
若需要为您的技术栈设计 URL、hreflang 与 sitemap,或检查现有站点是否存在这些错误 - 请与我联系。
常见问题
只有两种语言也需要 hreflang 吗?
需要,如果两个版本都应面向各自受众出现在搜索结果中。 即使是 RU/EN 一对,没有互指标注也常会显示错误语言或像重复内容。
/en/ 路径和子域名哪个更好?
大多数项目用路径前缀。 子域名适合托管、团队或市场隔离较强的情况。独立 ccTLD - 当品牌与法人主体确实本地化时。
x-default 必须有吗?
不是必须,但很有用。 通常指向语言选择页或国际主版本(多为 EN)。没有时,搜索引擎自行选择回退页。
能否只把 hreflang 放在 sitemap?
可以,Google 能理解 sitemap 标注。 实务上更稳妥的是 HTML 与 sitemap 都放 - 更易排查,也减少部分部署时的不同步。
为什么设置 hreflang 后搜索结果语言仍不对?
常常不是标签问题,而是周围信号: 指向另一语言的 canonical、重定向、稀薄/机器「翻译」、集合中失效的 URL,或缺少指向对等页的内链。请检查互指,并确认两个页面确实被收录。