hreflang 标签多语言网站 SEO 配置避坑指南

hreflang 解决什么问题

多语言或跨地区站点常有多份内容相同、语言不同的页面。没有 hreflang 时,谷歌可能把美国用户送到中文页,或把几个版本当成重复内容处理。hreflang 的作用就是告诉谷歌:这个页面有哪些语言/地区版本,该给什么用户看哪一个(来源见文末)。

三种写法

方式写法适用
HTML head<link rel="alternate" hreflang="en-us" href="https://a.com/us/" />最常用,页面级
HTTP 响应头Link: <https://a.com/us/>; rel="alternate"; hreflang="en-us"PDF 等非 HTML 文件
Sitemap<xhtml:link rel="alternate" hreflang="en-us" href="..."/>站点很大、改模板困难

三选一即可,不要混用,混用容易互相冲突。

代码怎么填

  • 语言:ISO 639-1,如 enzhdeja
  • 地区(可选):ISO 3166-1 Alpha-2,如 usgbde,必须跟在语言后面;
  • 只写语言zh 覆盖所有中文用户;zh-cn 只覆盖中国内地用户;
  • x-default:没有匹配版本时的兜底页,通常指向语言选择页或默认国际版。

必须遵守的规则

  1. 自引用:每个页面都要列出包括自己在内的一组 hreflang;
  2. 双向确认:A 页面声明 B 是它的英文版,B 页面也必须声明 A 是它的中文版,缺一边谷歌可能忽略整组;
  3. 指向规范化 URL:href 里必须填该页面的 canonical 地址,别填带参数或被跳转的 URL;
  4. 返回 200:被声明的页面必须可抓取且返回 200,跳到别处的 URL 无效;
  5. 每个语言版本自成一组:一组里的 URL 必须一一对应,不能多一个少一个。

示例

中文页 head 里应写:

  • <link rel="alternate" hreflang="zh-cn" href="https://a.com/zh/" />
  • <link rel="alternate" hreflang="en-us" href="https://a.com/en/" />
  • <link rel="alternate" hreflang="x-default" href="https://a.com/" />

英文页里则把同样三条原样再写一遍,这就是自引用加双向确认。

常见错误

错误后果
只有单向声明,没有回链整组 hreflang 可能被忽略
地区代码写错(如 en-UK、zh-CN 写成 cn)指令无效
漏了自引用谷歌不确定该页属于哪一组
href 填了带参数或 301 的地址与 canonical 冲突,信号丢失
x-default 指向某个具体语言页兜底失效,用户体验错乱
用 JS 动态注入 hreflang渲染不可靠,建议写在 HTML 里
按 IP 重定向且屏蔽爬虫谷歌只能抓到其中一个版本

怎么自查

  1. GSC 的国际化报告看有没有 hreflang 错误;
  2. 网址检查工具查看谷歌识别到的 hreflang 组;
  3. 抽查几个页面源码,确认自引用与双向确认齐全。

来源:https://developers.google.com/search/docs/specialty/international/localized-versions

来源:https://developers.google.com/search/docs/specialty/international/use-hreflang

您可能还会对下面的文章感兴趣: