多语言网站最常见的误区,是给英文页面加一个`hreflang="en"`就结束。真正可用的实现要求每个版本列出自己和全部对应版本,地址完整、语言地区代码正确,并且相互回链。
Hreflang是“页面对页面”的关系,不是给整个网站贴一个语言标签。只有真正对应的内容版本,才应该进入同一组。
01 什么时候需要使用hreflang
同一主题存在不同语言版本,或同一语言针对不同地区有内容差异时,应明确标记。只有导航和页脚翻译、正文仍相同,不算完整语言版本。
单语言网站、完全不同内容页面或仅依赖浏览器自动翻译,不需要建立虚假的对应关系。

02 每个版本必须包含自己和所有其他版本
英文页要列出英文自身、中文、日文等全部对应URL;中文页也要列出完全相同的集合。若两个页面没有互相指向,Google可能忽略相关标记。
新增加语言时,要同步更新整组页面,而不是只改新页面。
03 使用正确的语言与地区代码
语言使用ISO 639-1代码,地区可选ISO 3166-1 Alpha 2,例如`en-US`。不能只写国家代码,也不要把`UK`当地区代码,英国应使用`GB`。
只需要语言时写`en`、`zh-Hans`或`zh-Hant`,不要无意义地细分。

04 x-default用于无匹配时的兜底
语言选择页、全球首页或默认版本可以使用`hreflang="x-default"`,为未匹配语言的用户提供落点。
它不是必须项,也不代表英文默认;应指向真正适合作为兜底的页面。
05 HTML、HTTP Header和Sitemap三种方式等效
Google允许在HTML头部、HTTP响应头或XML Sitemap中实现。选择一种易维护的方式即可,同时使用三种没有额外搜索收益,反而增加不一致风险。
PDF等非HTML文件可通过HTTP Header或Sitemap标记。

06 Hreflang要与canonical和URL结构协调
每个语言页面通常应canonical到自己,而不是全部指向主语言。URL应可独立访问、内容可索引,并使用完整HTTPS地址。
自动跳转、错误重定向和语言版本不一致,会让标记失去意义。
Hreflang常见错误
错误 | 结果 | 修复 |
|---|---|---|
缺少回链 | 对应关系可能被忽略 | 每个版本使用相同完整集合 |
代码写错 | 地区或语言无法识别 | 按ISO标准核对 |
使用相对URL | 实现不符合要求 | 使用完整绝对URL |
全部canonical到主语言 | 语言页难以独立索引 | 各版本通常自指canonical |
页面内容不对应 | 用户进入错误版本 | 只为真实等价页面建立组 |
三种方式数据不一致 | 维护和排查困难 | 选择一种主实现 |
常见问题
Hreflang能提高关键词排名吗?
它主要帮助Google为用户选择合适语言或地区版本,不是直接排名加分项。
中文简体和繁体怎么写?
可使用`zh-Hans`和`zh-Hant`,也可结合地区,如`zh-Hant-TW`,但只在内容确实区分时使用。
不同域名之间可以使用hreflang吗?
可以,版本不必在同一域名,但必须相互回链并使用完整URL。
多语言页面需要相同URL路径吗?
不要求,但结构一致更容易维护和映射。
自动根据IP跳转可以吗?
应谨慎。最好提供可访问的独立URL和语言选择,避免用户及爬虫无法访问其他版本。