hreflang仅用于告知搜索引擎页面的语言版本关系,不影响用户端语言切换;必须用绝对url写在中,各语言页需双向声明,值须符合bcp 47规范,且与lang属性无关。

hreflang 不是用来“切换语言”的,它只告诉搜索引擎:这个页面的其他语言版本在哪。用户点进去后,页面本身该显示什么语言,和 hreflang 完全无关。
hreflang 必须出现在 里,且每条都是绝对 URL
浏览器不解析 hreflang,但 Google、Bing 等爬虫会严格校验格式。常见错误是写成相对路径:href="/zh/" —— 这会被直接忽略,等同于没写。
- 必须用完整协议 + 域名:
href="https://example.com/zh/" - 所有语言版本页面都要互相声明,不能只在英文页写中文链接,中文页也得反向写英文链接
- 如果用了子目录(如
/en/)、子域名(如zh.example.com)或不同域名(如example.cn),hreflang 值和 href 都要一一对应,不能混用
hreflang 值必须符合 BCP 47,不是随便填的 ISO 代码
填错格式会导致整组 hreflang 失效。比如 zh_CN、chinese、zh-Hant-TW(多了一个连字符)都会被爬虫拒绝。
使用 PptxGenJS 和 Python 解析,将结构化的 HTML/CSS 幻灯片内容转换为原生、可编辑的 PowerPoint(.pptx)演示文稿。
- 简体中文中国大陆:用
zh-CN,不是zh或zh-CN-GB - 繁体中文台湾:用
zh-TW,不是zh-Hant(虽然合法,但 Google 更倾向带地区码) - 英语美国:用
en-US;英语通用版(无特定地区):可用en,但更推荐en-GB或en-US明确指向 -
x-default只能设一个,且 href 必须指向你期望的“兜底页面”,比如国际版首页
hreflang 和 lang 属性完全不互通,别指望它自动改页面语言
很多人以为加了 hreflang="zh-CN",用户从百度点进来就自动看到中文——这是典型误解。hreflang 不影响 DOM 渲染,也不触发 JS 行为。
- 用户点击
hreflang="zh-CN"指向的链接后,目标页若没写,浏览器仍按默认语言渲染(字体、标点、语音朗读都可能出错) -
lang是给浏览器和屏幕阅读器看的内容语言,必须手动设置在标签上 - 如果你用 JS 动态切换语言,
hreflang依然要静态写死在每个版本页面的中,不能靠 JS 注入(爬虫不执行 JS)
容易被忽略的循环与遗漏:每个语言页都要“自指 + 互指”
最常翻车的是只在英文页写了中文链接,却忘了在中文页补上英文链接,或者漏掉 x-default 的反向声明。
- 英文页
https://example.com/en/要包含:<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="x-default" href="https://example.com/en/">
- 中文页
https://example.com/zh/同样要包含这三条,只是把en和zh-CN的位置对调 - Google Search Console 的“国际化”报告会明确标出“hreflang 未配对”或“孤立页面”,建议上线前必查
真正麻烦的不是写几行 <link>,而是保证所有语言版本页面之间形成闭环、URL 全部可访问、BCP 47 值全站统一。一旦某条 hreflang 指向 404 或格式错误,整组声明可能被降权处理。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










