当网站同时提供中文、英文、日文等多个语言版本时,很多站长会遇到一个奇怪的现象:Google把英文版页面展示给了日本用户,或者把中文版页面收录成了主版本,导致各语言流量互相干扰。这类问题的根源,往往在于没有正确配置hreflang标签。hreflang是Google在2011年推出的一个标注机制,用来告诉搜索引擎当前页面与哪些语言或地区版本互为替代关系,帮助搜索引擎把最合适的版本推送给最合适的用户。本文将系统讲解hreflang的配置方法、语法规则和常见坑点。

hreflang标签到底解决什么问题
要理解hreflang的价值,先要明白多语言站点的天然困境。假设你的网站有中文版和英文版,两个页面的正文内容高度相似或互为翻译,搜索引擎在收录时会面临选择困难:这两个页面算不算重复内容?该把哪个版本排在前面?不同地区的用户该看到哪一个?
hreflang的作用就是消除这种歧义。它本质上是一组互相指向的声明,明确告诉搜索引擎:中文版面向zh或zh-CN用户,英文版面向en用户,两者是同一内容的不同语言版本,各自独立参与排名,不存在抄袭或重复的问题。配置正确后,Google会优先在中文搜索环境中展示中文版,在英文搜索环境中展示英文版,流量分配更加精准。
需要注意的一点是,hreflang不是强约束,而是一种建议信号。搜索引擎会参考它,但不会百分之百遵守。即便如此,实际数据表明,正确配置hreflang的多语言站点,其各语言版本的可见性普遍有明显提升。
三种主流配置方式及写法
hreflang有三种实现方式,分别是HTML头部声明、HTTP响应头声明和XML站点地图声明,三种方式效果等同,选择哪一种取决于网站的技术架构。
最常见的是HTML头部声明,直接在页面的head区域加入link标签:
<link rel="alternate" hreflang="zh-CN" href="https://www.ippipp.com/cn/page.html" />
<link rel="alternate" hreflang="en" href="https://www.ippipp.com/en/page.html" />
<link rel="alternate" hreflang="ja" href="https://www.ippipp.com/jp/page.html" />
<link rel="alternate" hreflang="x-default" href="https://www.ippipp.com/en/page.html" />
每个语言版本的页面上,都必须完整列出这一组互相指向的标签,包括指向自己的那一条。这是最容易出错的地方,后面会详细说。
第二种是HTTP响应头方式,适合非HTML内容如PDF文件。在服务器返回的头部信息中加入Link字段:Link: <https://www.ippipp.com/en/page.html>; rel="alternate"; hreflang="en"。第三种是XML站点地图方式,把hreflang关系写在sitemap里提交给搜索引擎,适合页面数量庞大、不希望改动页面模板的站点。
语言代码和地区代码的语法规则
hreflang的取值遵循ISO 639-1语言代码和ISO 3166-1 Alpha 2地区代码的组合规范。基础格式是纯语言代码,如zh代表中文、en代表英文、ja代表日语;如果需要精确到特定地区,用语言-地区的格式,如zh-CN表示简体中文(中国大陆)、zh-TW表示繁体中文(台湾地区)、en-US表示美式英语、en-GB表示英式英语。
有几个语法细节必须严格遵守。第一,语言代码在前,地区代码在后,顺序不能颠倒,en-US不能写成US-en。第二,代码区分大小写与否在不同工具中表现不一,建议统一小写。第三,只能精确到语言和国家两级,不支持en-US-CA这种三级写法。第四,保留值x-default专门用于兜底,当用户语言不匹配任何已声明版本时展示该页面,通常指向英文版或让用户自主选择的首页。
常见错误还包括使用无效代码,比如用zh-Hans这类文字系统代码代替zh-CN。Google的官方文档明确支持的语言列表中,建议严格对照核对,随意编造的代码会被直接忽略,整组hreflang声明可能因此失效。
五个最常见的配置错误
根据大量站点的排查经验,hreflang配置失败集中在以下几个场景:
- 没有互相指向:A页面声明了指向B,但B页面没有声明指向A,这种单向声明会被视为无效。正确做法是每个页面的标签组必须对称完整。
- 漏掉自引用:页面声明了指向其他版本的链接,却没有声明指向自己的链接。虽然技术上不算致命错误,但官方建议每个页面都要包含指向自己的hreflang。
- 漏掉x-default:当用户语言不在已声明范围内时没有兜底页面,影响这部分用户的体验和展示。
- 使用了相对路径:href属性必须使用完整的绝对URL,包括协议和域名,写成/page.html这样的相对路径会导致解析失败。
- 返回状态异常:hreflang指向的URL如果返回404、302重定向或有noindex标记,整组声明都会被降权处理,务必保证每个目标URL可正常访问且返回200状态码。
与canonical标签的搭配使用
很多站长会疑惑,hreflang和canonical是不是冲突?会不会让搜索引擎无所适从?答案是两者各司其职,可以同时使用,但必须遵守一条铁律:每个语言版本的canonical必须指向自身,不能指向另一个语言版本。
举个具体例子,中文页面的canonical应该是中文页面自己的URL,英文页面的canonical是英文页面自己的URL,两者再通过hreflang互相关联。如果错误地把英文页面的canonical指向了中文页面,等于告诉搜索引擎英文版不需要被收录,hreflang声明也就形同虚设。这类错误在通过参数控制语言的站点(如ippipp.com?lang=en)中尤其高发。
验证配置是否正确,可以借助Google Search Console的国际定位报告,它会列出hreflang错误的具体页面和错误类型,比如缺失返回链接、未知语言代码等,按报告逐项修复即可。配置完成后,坚持每周复查一次,确保新增页面也同步加上了标签,多语言SEO的基础才算真正稳固。
写在最后
hreflang的配置并不复杂,难的是在站点持续迭代过程中保持一致性。建议在页面模板层面统一输出标签组,而不是手工逐页添加;同时把hreflang检查纳入上线前的测试清单,配合XML站点地图定期提交,让各语言版本各得其所,全球流量自然稳步增长。
hreflang标签多语言SEO多语言网站优化修改时间:2026-09-06 08:56:34