Hreflang 标签告诉 Google 哪个语言版本应该展示给哪个国家的用户——选错了后果很严重。
义乌一家出口纺织品的公司曾经历过一个让人啼笑皆非的场景。他们的网站有英语、西班牙语和法语三个版本,但一直没有使用 hreflang 标签。某天运营团队发现,从法国来的自然搜索流量中,有很大一部分用户访问的是西班牙语页面——这意味着一个法国采购商搜索"textiles industriels"(工业纺织品,法语)时,Google 可能把西班牙语版的页面排在了法语版前面。法国人点进去看到的是西班牙语内容,大概率直接关闭页面离开。这不是技术故障,而是 hreflang 标签缺失导致的典型问题——Google 不知道哪个语言版本对应哪个地区的用户,于是做出错误的展示决定。
Hreflang 标签的本质是一个 HTML 属性或 HTTP 头信息,告诉搜索引擎:"嘿,这个页面还有一个西班牙语版本、一个法语版本和一个德语版本,它们对应的是同一个产品/内容,请根据用户的浏览器语言和地理位置来展示最合适的版本。"它的语法看起来简单却容易出错——一个标准的 hreflang 声明包含两部分:语言代码(如 "en")和可选的地区代码(如 "en-gb" 表示英国英语)。需要注意,hreflang 声明必须是双向的:如果页面 A 声明了页面 B 是自己的其他语言版本,页面 B 也必须反过来声明页面 A。这是新手最常犯的错误——只做了单向声明,导致 Google 无法建立完整的语言对应关系。
Hreflang 标签可以通过三种方式实现。第一种是 HTML link 标签,放在每个页面的 <head> 部分。这是最简单直接的方式,适合页面数量不多的网站。每个页面需要列出所有其他语言版本的对应链接,包括指向自身的版本。对于有 5 个语言版本的网站,每个页面需要添加至少 5 个 <link rel="alternate"> 标签。第二种是 HTTP 头部——适用于 PDF 文件或其他非 HTML 内容,在这些文件的 HTTP 响应头中添加 Link 字段来声明语言版本。第三种是 XML 站点地图,在站点地图中为每个 URL 添加 hreflang 注释,这种方式适合有大量页面的网站且需要集中管理。
对于大多数出口企业来说,推荐的做法是 HTML link 标签 + XML 站点地图双重备份。HTML 标签确保每个页面都自带语言版本信息,站点地图则提供了全局的、可供搜索引擎批量处理的完整语言关系映射。两种方式并存时,如果出现不一致(比如 HTML 标签中声明了 5 个版本,但站点地图中只列出了 3 个),Google 会优先参考 HTML 标签中的信息但仍然可能产生混淆。所以保持两种实现方式的一致性非常重要。
Hreflang 实施中的常见错误包括以下几个。第一是 缺少自身引用——每个页面必须包含一个指向自身的 hreflang 声明。第二是 使用了错误的语言代码——语言代码必须符合 ISO 639-1 格式,地区代码必须符合 ISO 3166-1 Alpha 2 格式。"en-uk" 是错误的,"en-gb" 才是正确的。第三是 不一致的声明——如果页面 A 声明了页面 B 是它的西班牙语版本,但页面 B 没有反过来声明页面 A,Google 无法验证这种关系,可能会忽略整个 hreflang 声明集。第四是 hreflang 指向了不存在的页面或重定向页面——确保所有 hreflang 声明中的 URL 都实际存在且能正常访问。
测试 hreflang 实施是否正确最有效的方式是使用 Google Search Console 中的"国际定位"报告。这个报告会显示每种语言版本中有多少页面被正确识别、有多少页面存在 hreflang 标记错误。此外,你还可以使用在线的 hreflang 验证工具(如 Merkle 的 Hreflang Tags Checker、Aleyda Solis 的 Hreflang Testing Tool 等)来检查单个页面的 hreflang 配置是否正确。Hreflang 的调试往往需要多次迭代——你设置了标签 -> 验证发现错误 -> 修复 -> 重新验证 -> Google 重新处理。这个过程可能需要 1-2 周才能看到完整的效果。
<head> 中是否存在 hreflang link 标签。不会。Hreflang link 标签位于 <head> 部分,是 HTML 的一部分,体积非常小——即使包含 10 种语言版本,全部 link 标签加起来也远小于 1KB,对页面加载速度的影响可以忽略。真正需要考虑的是维护成本:10 种语言的 hreflang 标签需要 100 条 link 声明(每种语言=10条),确保所有版本之间的双向对应关系正确,这是一个需要仔细管理的工作。建议使用站点地图中的 hreflang 注释作为主要维护方式,HTML 标签作为备份。
不需要,也不应该。Hreflang 声明必须指向实际存在且内容相关的页面。如果你没有阿拉伯语版的产品页面,就不应该在英语版的产品页面上添加 hreflang ar 的声明——这会误导搜索引擎并被视为错误。如果你希望阿拉伯语地区的用户在搜索时看到你的英语页面(作为后备),应该使用 x-default 声明,它告诉搜索引擎"如果找不到合适的语言版本,就展示这个默认版本"。
Hreflang 是一个"信号"而非"指令"——Google 会参考它但不一定完全遵从。如果 Google 仍然显示错误的语言版本,可能有几个原因:hreflang 声明中有语法错误(使用验证工具检查),页面内容质量不足以让 Google 认为该语言版本是"最佳结果"(例如,西班牙语版内容明显比英语版简陋),或者 Google 发现用户对你英语页面的互动程度远高于你的西班牙语页面。提升错误语言版本的内容质量往往比仅仅修复 hreflang 标签更有效。