hreflang标签必须在每语言页head中完整互指所有版本(含自身及x-default),使用绝对url、严格bcp 47格式,与lang属性无关,不支持参数路由,且不触发自动跳转。

hreflang 标签必须在每个语言页的 中显式列出所有语言版本(含自身),漏掉任意一个,整组失效。
hreflang 必须成组互指,不能只写单向
常见错误是只在英文页里加 <link rel="alternate" hreflang="zh-CN" href="https://example.com/zh/">,却没在中文页里补上回指英文页的 <link rel="alternate" hreflang="en" href="https://example.com/en/">。搜索引擎会认为“中文页没有对应英文版”,直接放弃索引或错配流量。
正确做法是:每个语言页都声明全部版本,包括自己和 x-default(推荐但非强制):
<link rel="alternate" hreflang="en" href="https://example.com/en/"><link rel="alternate" hreflang="zh-CN" href="https://example.com/zh/"><link rel="alternate" hreflang="ja-JP" href="https://example.com/ja/"><link rel="alternate" hreflang="x-default" href="https://example.com/en/">
- 每条
href必须是绝对 URL,相对路径如/zh/会被忽略 - 每个页面都要有这组完整声明,不能靠模板自动省略“自己”
-
x-default应指向语言选择器页或最通用的首页,不是替代具体语言标签
hreflang 值必须严格符合 BCP 47,大小写和拼写都不能错
写成 zh_cn、Chinese、EN-GB 或 en-gb (末尾空格)都会导致解析失败。Google 只认小写、连字符分隔、ISO 639-1 + ISO 3166-1 的组合。
典型有效值:
-
en(不带地区,泛英语) -
en-US(美国英语) -
zh-Hans(简体中文,非地区限定) -
zh-CN(简体中文 + 中国) -
fr-FR、fr-CA(法语在法国 vs 加拿大)
无效写法:
-
zh-chs、cn-zh、Chinese (Simplified) -
en-uk(应为en-GB) -
ja-japan(应为ja-JP)
hreflang 和 lang 属性完全无关,别混用
hreflang 是给搜索引擎看的链接关系,lang 是给浏览器和辅助技术看的内容语言。两者不互通、不推导、不覆盖。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
翻车场景:
- 页面
,但hreflang="zh-CN"指向中文页 → 搜索引擎收了信号,浏览器仍按英文渲染中文段落 - 中文页里嵌了一段英文说明,没加
<p lang="en"></p>→ 屏幕阅读器用中文语音念英文词 - 英文页用了
hreflang="x-default",但没设lang→ 浏览器无法触发字体 fallback 或拼写检查
务必分开处理:lang 控制渲染与可访问性,hreflang 控制搜索分发。
URL 结构决定 hreflang 是否可靠,参数路由基本等于白配
Google 明确不推荐用 query 参数(如 ?lang=zh)做多语言路由。这类 URL 极易被忽略 hreflang,或被判定为重复内容。
优先采用:
- 子目录:https://example.com/en/、https://example.com/zh/
- 子域名:https://en.example.com/、https://zh.example.com/
- ccTLD:https://example.co.uk/、https://example.de/(需跨域配置)
关键点:
- 每个语言 URL 必须返回 HTTP 200 状态码,且内容语言与
hreflang声明一致 - 不要在同一个页面中重复声明同一
hreflang值(比如两条hreflang="en") - 协议必须统一:HTTP 和 HTTPS 被视为不同站点,混用会导致 hreflang 关系断裂
最常被忽略的一点:hreflang 不会自动跳转用户,也不影响浏览器行为——它只是告诉搜索引擎“这个 URL 对应哪种语言+地区”。真要实现语言探测跳转,得额外写服务端逻辑或 JS。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










