rel="alternate" hreflang 是用于向搜索引擎声明多语言页面对应关系的语义标签,而非实现自动语言切换;必须双向互指、使用精确ietf语言标签(如zh-cn)、置于head中、用绝对url,且各语言页内容需实质性对应。

什么是 rel="alternate" 多语言声明
它不是用来“自动切换语言”的,而是告诉搜索引擎:当前页面有其他语言的对应版本。浏览器和用户看不到这些链接,它们只起语义标注作用。如果你指望加了这个就能在网页上出现语言切换按钮,那会白忙活。
hreflang 值必须严格匹配实际页面语言与区域
常见错误是写成 hreflang="zh" 或 hreflang="en"——这不够精确。搜索引擎要求使用 IETF 语言标签(如 zh-CN、en-US、ja-JP),且必须和目标页面的 属性一致。
-
hreflang="zh-Hans"和hreflang="zh-Hant"是不同值,不能混用 - 如果英文版只有一份,用
hreflang="x-default"标注为默认回退页(比如放在首页) - 所有
rel="alternate"链接必须双向互指:A 页面要声明 B,B 页面也得声明 A,否则 Google 可能忽略
怎么写才不被搜索引擎忽略
必须把 <link> 放在 里,且每个语言版本都得包含完整集合。比如中文页不能只写英文链接,还得带上自己和其他所有语言版本。
<link rel="alternate" hreflang="zh-CN" href="https://example.com/zh/"><link rel="alternate" hreflang="en-US" href="https://example.com/en/"><link rel="alternate" hreflang="ja-JP" href="https://example.com/ja/"><link rel="alternate" hreflang="x-default" href="https://example.com/">
注意:href 必须是绝对 URL;相对路径、带查询参数的 URL(如 ?lang=ja)容易被当作不同页面处理;HTTP 和 HTTPS 混用也会导致失效。
语言切换按钮得自己写,和 rel="alternate" 无关
想让用户点一下切语言?那得手写导航栏或下拉菜单,用 JavaScript 切换 URL,或者服务端根据 Cookie / Accept-Language 跳转。别指望 rel="alternate" 渲染出按钮来。
- 前端实现常用方案:一组
<a></a>链接,指向各语言首页或当前内容对应页 - 后端更稳妥:根据请求头
Accept-Language自动重定向,再配合用户手动选择存入 Cookie - 别用
window.location.href硬跳转带 hash 的 URL(如#section2),多语言页结构稍有差异就可能跳错位置
最常被忽略的一点:语言页之间内容必须实质性对应。如果中文页写了产品介绍,英文页却是空的或只有标题,Google 会认为 hreflang 关系不可靠,直接弃用。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











