Hreflang 告诉搜索引擎页面面向的语言和地区。了解其语法、常见错误,以及它在多语言 SEO 中的作用。

摘要
Hreflang是一种HTML属性,用于标示页面的语言和地区定向。它告诉Google和其他搜索引擎,向每位用户提供您内容的正确版本,避免重复内容冲突,是任何多语言或多地区网站的必备要素。
想深入了解?请询问
如果您的网站有一种以上的语言,或者用同一种语言面向不同国家,搜索引擎就需要帮助,才能判断该向哪位用户展示哪个版本。身在加拿大的法语使用者和身在法国的法语使用者,应该看到不同的页面。Hreflang(即rel="alternate" hreflang注解)正是您向搜索引擎说明这些关系的方式,好让正确的页面触达正确的受众。
没有hreflang,您的本地化页面可能在搜索结果中互相竞争、被判定为重复内容,或者干脆向用户展示错误的版本。有了它,Google会把您的语言和地区变体归入同一个集合,并提供最合适的那一个。它是国际SEO中最强大、也最常被配置错误的工具之一。
Hreflang解决的是本地化匹配问题。当您用英语、西班牙语和德语发布同样的内容时,这些页面彼此近乎重复。搜索引擎可能会误把它们当作抄袭内容,或者挑错了要排名的那一个。hreflang注解告诉它们,这些页面是有意为之的替代版本,每一个都是为特定语言或区域而作。
结果是更好的用户体验和更清晰的收录。Google关于本地化版本的文档说明,hreflang让Google能够把用户引导到符合其语言和地区的页面,而不是提供一个他们看不懂的版本,或者货币、配送、法律信息都不对的版本。
页面head中的hreflang注解写法如下:<link rel="alternate" hreflang="en" href="https://example.com/en/" />。其中rel="alternate"声明所链接的网址是一个替代版本,hreflang的值说明语言(以及可选的地区),href给出该版本完整的绝对网址。
每个版本都要有这样一条标记,而且每个页面上都要有。一个存在三种语言的页面会带有三条hreflang标记,分别指向每个版本,其中包括一条指向它自己的标记。每个语言变体都重复这一整套完全相同的标记。正是这一点,让搜索引擎能够把整个集合映射到一起。
hreflang的值使用标准化代码,写对它们没有商量余地。语言采用ISO 639-1格式(例如en、es、de)。您可以选择再加上ISO 3166-1 Alpha 2格式的地区,用连字符连接:en-GB、en-US、es-MX、fr-CA。
语言永远在前,单独的地区是无效的。您不能单独使用hreflang="GB",而en-UK或EU这类杜撰的代码也不起作用(英国的正确代码是GB)。对于文字系统的差异,适用ISO 15924代码,例如繁体中文用zh-Hant,简体中文用zh-Hans。无效代码会被直接忽略,悄无声息地破坏您的配置。
Hreflang必须是相互呼应的。如果页面X把页面Y标为它的西班牙语替代版本,那么页面Y也必须把页面X标为它的英语替代版本。Google把这些称为回指标记,如果缺失,它可能完全忽略您的注解。正如Google关于多地区网站的指南所强调的,这一回指要求是实践中hreflang失效最常见的单一原因。
同样重要的是,每个页面都必须引用它自己。英文页面要包含一条指向自身网址的英语hreflang标记。遗漏自引用标记是另一个常见错误。请把这条规则当作绝对要求:每个页面都列出自己以及所有其他版本,而每个版本也同样回指。
特殊值hreflang="x-default"告诉搜索引擎,当您指定的语言或地区都不匹配用户时,该展示哪个页面。它是一个兜底方案。常见用法是语言选择落地页或您的主要全球版本:<link rel="alternate" hreflang="x-default" href="https://example.com/" />。
为国际站点添加x-default是一项最佳实践。没有它,语言和地区都不匹配您任何变体的用户,就只能听凭搜索引擎自行推测。有了它,您就掌控了默认体验,例如把未匹配的访客引导到一个可以自行选择语言的页面。
Google支持三种实现方式,您应当选定一种,而不要混用。第一种是放在每个页面<head>中的HTML链接标记,这是普通网页最常用的做法。第二种是HTTP头,用于PDF等无法在正文中添加标记的非HTML文件。
第三种方式是XML站点地图。您不必在每个页面添加标记,而是在XML站点地图中用xhtml:link条目声明所有语言关系。这让页面代码保持干净,在大规模场景下往往更易维护,不过需要谨慎生成。无论您选择哪种方式,都要在整个网站上一致地应用它。
Hreflang和规范标记是协同工作的,但一个经典错误会同时毁掉两者。每个语言版本都应当规范化到它自己,而不是某个单一的主版本。如果您的德语页面把规范标记设为英文网址,就等于告诉Google德语页面是不该被收录的重复内容,这会摧毁您的hreflang配置。
正确的做法是,每个本地化页面都有一个自引用的规范标记,再配上一整套相互呼应的hreflang标记。规范标记确认每个页面都是它自身的首选版本,而hreflang描述这些各自独立、同等有效的页面之间的关系。这里的信号冲突,是多语言网站收录问题的首要原因之一。
当您用同一种语言面向多个国家时,hreflang与本地SEO密切相关。一家同时在西班牙和墨西哥经营的企业,会为两地各自发布西班牙语页面,但价格、配送和税费各不相同。es-ES和es-MX这样的标记,能让Google把西班牙语使用者引导到为其所在国家打造的版本。
Hreflang只负责语言和地区的匹配,不负责内容质量。Google的系统能以很高的准确率识别未经编辑的机器翻译,而单薄的翻译页面会拖累所有版本的排名,而不只是被翻译的那一个。请把正确的hreflang与真正本地化、经人工审阅的各市场内容结合起来,才能获得全部收益。
针对国际站点的调查一再发现,绝大多数站点都存在hreflang错误。最常见的包括缺少回指标记、没有自引用标记、语言代码无效或只有地区代码、使用相对网址而非绝对网址,以及把hreflang指向会重定向或返回错误的网址,而不是可用的页面。
每次改动之后都要校验您的配置。Google Search Console曾经提供国际定向报告,而专门的hreflang检查工具,以及Screaming Frog这类爬虫,可以确认您的注解相互呼应并使用了有效代码。作为更广泛的技术SEO的一部分,定期审计能在这些悄无声息的故障割裂您的国际排名之前将其发现。
多语言 SEO 是让网站的每个语言版本都能在各自语言中获得排名的工作。hreflang 负责把各版本关联起来,但每个版本还需要独立的可编入索引的网址、完整翻译的正文和元数据、针对该语言的关键词研究,以及留在同一语言内的内部链接。
| 网址结构 | 示例 | 优点 | 代价 |
|---|---|---|---|
| 子目录 | example.com/zh/ | 一个域名,管理简单,各语言共享权威 | 如果面向特定地区,国家信号较弱 |
| 子域名 | zh.example.com | 可按语言分别托管或配置 | 需要维护更多配置 |
| 国家域名 | example.cn | 针对单一国家的信号最清晰 | 需要分别建设和付费的独立域名 |
这些投入在 AI 回答中同样有回报:AI 助手通常用用户的语言作答,并引用以该语言撰写的来源,因此每种语言都有精心制作的版本,就能为它们提供可引用的内容。
Hreflang是让多语言和多地区SEO得以运转的注解。它把您的语言和地区变体映射到同一个集合,为每位用户提供正确的页面,并避免重复内容冲突。规则很严格:有效的ISO代码、相互呼应的回指标记、每个页面上的自引用、一个x-default兜底方案,以及绝不跨语言指向的自引用规范标记。把这些都做对,您的国际内容就能触达它所面向的受众。了解Sorank如何为搜索引擎和AI审计您的hreflang以及整套技术配置。
来源
规范标记告诉搜索引擎哪个网址是某个页面的首选版本,而hreflang告诉它们某个页面面向哪种语言或地区。两者职责不同,绝不能相互冲突。在多语言网站上,每个本地化页面都应该有一个自引用的规范标记(指向它自己),再加上一整套互相呼应的hreflang标记,用来描述其他语言版本。经典错误是把每个语言版本都规范化到同一个主网址,这等于告诉Google其他版本是重复内容,会彻底破坏hreflang的配置。
通常不需要。hreflang的作用是映射同一内容多个语言或地区版本之间的关系,因此只面向一个国家的单语言网站一般不需要它。例外情况是,您用同一种语言面向不同国家,且内容存在实质差异,例如面向美国和英国的英文页面在价格或配送上有所不同。这种情况下,en-US和en-GB这样的标记可以帮助Google把各自的受众引导到正确的版本,尽管两者都是英文。
最常见的原因是缺少回指标记。hreflang必须是相互呼应的,因此如果页面X指向页面Y,而页面Y没有指回X,Google可能会忽略这些注解。其他常见原因包括语言代码无效(例如只有地区代码,或en-UK这类杜撰的值)、缺少自引用标记、使用相对网址而非绝对网址,以及把hreflang指向会重定向或返回错误的网址。请用爬虫或hreflang检查工具校验您的配置,确认每一处引用都是相互呼应的、使用绝对网址,并采用正确的ISO代码。
他们已先于您体验了 SORANK

