首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >hreflang标签搞对了吗?我给我的工具站做多语言时踩的5个坑

hreflang标签搞对了吗?我给我的工具站做多语言时踩的5个坑

作者头像
袁锐钦
发布2026-07-13 20:16:24
发布2026-07-13 20:16:24
160
举报

多语言SEO最容易被忽略的技术环节不是翻译质量,是hreflang标签——它不出错你感觉不到它存在,一出错你所有翻译页面的排名都白做。


上个月我给工具站加了法语和德语版本,翻译质量自认为不错——不是机翻,找了母语者校对。上线两周后查GSC,法语页面在 Google.fr 的展示量不到20,德语页面在 Google.de 更惨,个位数。

我以为翻译太慢被索引了。等了几天还是没动静。直到有一天我无意中打开 hreflang 验证工具跑了一遍——才发现我根本没加 hreflang 标签。

翻译页面上线两周,Google完全不知道它们是其他语言版本的替代页面。等于白干。

那天我才意识到:hreflang不是锦上添花,是多语言SEO的地基。没有它,你的翻译页面就像孤岛一样漂在互联网上,Google不知道它们和主站有什么关系。

这篇文章把我研究hreflang过程中的所有坑、所有知识点、以及最终落地的方案,全摊开给你看。


hreflang到底是什么?

一句话:hreflang是一个HTML标签,用来告诉搜索引擎「这个页面有多个语言版本,请根据用户的语言偏好显示最合适的那个」。

比如你有一个工具站,同一个计算器页面有英文版、法文版、德文版:

  • https://yourtool.com/calculator (英文)
  • https://yourtool.com/fr/calculator (法文)
  • https://yourtool.com/de/calculator (德文)

如果不加hreflang,Google可能把法文版推给德国用户,或者把英文版推给法国用户——结果就是用户看到一堆看不懂的文字,秒关。

加了hreflang之后,Google知道这三个页面是同一内容的不同语言版本,会根据用户浏览器的语言设置自动匹配。

我踩的第一个坑就是:以为多语言=翻译,忽略了多语言=告诉Google这些页面之间的关系。


坑1:只加了hreflang,没加返回链接(Return Tag)

这是最常见的错误。Google的John Mueller说过,缺少返回链接是hreflang实现中最常见的错误。

什么意思?

假设你的英文页面是 /en/page,法文页面是 /fr/page

正确的双向引用:

英文页面上的hreflang标签:

代码语言:javascript
复制




<link rel="alternate" hreflang="en" href="https://yourtool.com/en/page" />
<link rel="alternate" hreflang="fr" href="https://yourtool.com/fr/page" />

法文页面上的hreflang标签:

代码语言:javascript
复制




<link rel="alternate" hreflang="en" href="https://yourtool.com/en/page" />
<link rel="alternate" hreflang="fr" href="https://yourtool.com/fr/page" />

关键点:每个语言版本的页面上,hreflang标签必须完全一致。 法文页面上不能只写自己的hreflang,必须把英文版也写进去——反过来也一样。

错误的做法(只写了单向):

法文页面上的hreflang:

代码语言:javascript
复制




<link rel="alternate" hreflang="fr" href="https://yourtool.com/fr/page" />
<!-- 缺少en的引用! -->

Google看到这种不完整的hreflang标注,会直接忽略全部。也就是说,你加了一个hreflang但不完整,等于没加。


坑2:语言代码用错了

hreflang用的是ISO标准代码,不是你想写什么就写什么。

  • 语言代码:ISO 639-1(两位小写字母)。如 en(英语)、fr(法语)、de(德语)、zh(中文)、ja(日语)
  • 国家代码(可选):ISO 3166-1 Alpha-2(两位大写字母)。如 USGBFR

组合格式:hreflang="语言-国家",如 en-USfr-FRzh-CN

我见过的错误:

  • • 把英语写成 ENG 而不是 en — hreflang要求小写
  • • 用 uk 代表英国 — 正确是 en-GBuk不是合法的ISO语言代码
  • • 把简体中文写成 zh-Hans — hreflang标准下应该是 zh-CN(虽然 zh-Hans 在BCP47标准下是合法的,但Google对hreflang的处理更偏向zh-CN

如果你只做语言区分(不做国家区分),可以省略国家代码。 比如你只想区分英语和法语版本,不区分法国法语和加拿大法语,那就写 enfr 就够了。

但如果你想做国家级别的区分——比如英国英语和美国英语,用不同的内容/价格——就必须加国家代码:en-GBen-US


坑3:忘了 x-default

x-default 是一个特殊的hreflang值,表示「当用户的语言偏好不匹配任何现有版本时,显示这个默认版本」。

代码语言:javascript
复制




<link rel="alternate" hreflang="x-default" href="https://yourtool.com/" />

什么时候需要 x-default?

典型场景:用户浏览器语言是韩语(ko),但你的网站只有英法德三个版本。如果没有 x-default,Google可能随机选一个版本展示。有了 x-default,Google会把x-default指向的页面推给它。

x-default 通常指向什么?

两种常见做法:

  1. 1. 指向语言选择器页面:比如你的首页有个「选择语言」的页面,x-default指向它
  2. 2. 指向英文版:如果你默认使用英文作为fallback,x-default指向英文版

我用的是第二种——指向英文版。因为大部分国际用户看到英文至少能凑合看,比看到一个语言选择器然后被要求点按钮的体验好。


坑4:hreflang和canonical打架

如果你的页面同时设置了 canonical 和 hreflang,它们指向的URL必须一致。

这是个坑中坑。

举个例子:你的法文页面 /fr/page 的 canonical 指向了 /en/page(想集中权重到英文版),但同时又在法文页面上写了 hreflang 标签指向 /fr/page

Google看到这个页面有两个冲突信号:

  • • canonical说「这个页面的主版本是英文版」
  • • hreflang说「这个页面是法文版本,请用它」

两个信号打架 → Google会忽略hreflang标签,只保留canonical。

所以:如果你用hreflang管理多语言,每个语言版本的canonical必须指向自己。

代码语言:javascript
复制




法文页面:<link rel="canonical" href="https://yourtool.com/fr/page" />
法文页面hreflang中的fr也必须指向:https://yourtool.com/fr/page
→ 一致 ✅

坑5:页面本身没在hreflang标签里

这个坑看起来蠢,但实际上很多工具生成的hreflang列表不包括自己在内。

hreflang的自引用规则:每个页面必须在自己的hreflang标签中包含对自己语言版本的引用。

也就是说,英文页面上的hreflang列表里,必须有 hreflang="en" 指向自己的URL。

代码语言:javascript
复制




<!-- 英文页面上的hreflang列表 -->
<link rel="alternate" hreflang="en" href="https://yourtool.com/en/page" />  ← 必须包含自己!
<link rel="alternate" hreflang="fr" href="https://yourtool.com/fr/page" />
<link rel="alternate" hreflang="de" href="https://yourtool.com/de/page" />

有些CMS或插件生成的代码只列出「其他语言版本」,不包含当前页面——这种实现Google会忽略。


三种实现方式,我选了最简单的那种

搞清楚了坑之后,来看怎么实现。hreflang有三种技术实现方式:

方式1:HTML 标签(推荐,也是我用的)

<head> 里直接写 <link> 标签:

代码语言:javascript
复制




<head>
  <link rel="alternate" hreflang="en" href="https://yourtool.com/en/calculator" />
  <link rel="alternate" hreflang="fr" href="https://yourtool.com/fr/calculator" />
  <link rel="alternate" hreflang="de" href="https://yourtool.com/de/calculator" />
  <link rel="alternate" hreflang="x-default" href="https://yourtool.com/en/calculator" />
</head>

优点: 简单直观,调试方便,直接看页面源码就能验证。缺点: 每个页面都要写,页面多了维护麻烦。

方式2:XML Sitemap

在sitemap里标注hreflang:

代码语言:javascript
复制




<url>
  <loc>https://yourtool.com/en/calculator</loc>
  <xhtml:link rel="alternate" hreflang="en" href="https://yourtool.com/en/calculator" />
  <xhtml:link rel="alternate" hreflang="fr" href="https://yourtool.com/fr/calculator" />
  <xhtml:link rel="alternate" hreflang="de" href="https://yourtool.com/de/calculator" />
</url>

优点: 不增加HTML体积,适合页面量大的站。缺点: 调试不直观,需要提交sitemap后等Google处理。

方式3:HTTP Header

在服务器响应头中返回hreflang信息:

代码语言:javascript
复制




Link: <https://yourtool.com/fr/calculator>; rel="alternate"; hreflang="fr"

优点: 不依赖HTML。缺点: 适合非HTML文件(如PDF),对普通网页来说维护成本最高。

我的选择:方式1(HTML标签)。 对于一个刚起步的工具站来说,页面量不超过100个,直接写代码里最省心,也方便随时检查。


验证hreflang:上线前必做的检查

写完hreflang不是完事了。上线前必须验证。

我用的两个验证工具:

  1. 1. Google Search Console → 国际定位报告:这是Google官方反馈,告诉你hreflang实现有没有错误。但GSC反馈有延时,新页面可能等几天才有数据。
  2. 2. 第三方验证工具:我用的是 hreflang.org[1] 的测试工具,输入URL就能快速扫描错误。Screaming Frog 也支持批量检查hreflang,适合页面量大的站。

验证清单:

检查项

说明

返回链接完整

每个页面的hreflang列表完全一致

自引用存在

每个页面在hreflang中引用自己

语言代码正确

ISO格式,小写,无拼写错误

canonical一致性

canonical和hreflang指向同一个URL

x-default设置

有兜底页面

状态码200

hreflang指向的URL全部可访问,无404/301


对工具站来说,hreflang值得搞吗?

这个问题我问过自己。

一个只有5个工具、月访问量不到5000的工具站,值得花时间做多语言和hreflang吗?

我的答案是:取决于你的工具类型。

如果你的工具是纯计算类的——比如汇率换算器、BMI计算器——用户不需要看太多文字就能用,那多语言的ROI可能不高。一个法国用户看到一个英文的BMI计算器,输入身高体重就能出结果,语言不是障碍。

但如果你的工具依赖文字引导——比如我有一个「关键词难度分析工具」,需要用户理解"KD分数"、"搜索量"、"CPC"这些术语——那中文用户和英文用户的体验差距就很大。这种情况下,不做多语言等于放弃非英语市场的流量。

更实际的一个判断标准:去看GSC里你网站的搜索查询,有没有其他语言的搜索词。 如果有法国用户用 calculateur de... 搜到了你的站,而且点击了——这就是多语言需求信号。

我的站就是看到了德语和法语的搜索词,才决定加这两个版本。


一键执行清单

  • • [ ] 确定多语言URL结构:子目录(/fr/)还是子域名(fr.example.com)?推荐子目录,权重继承更直接
  • • [ ] 列出所有需要hreflang的语言版本,使用正确ISO代码
  • • [ ] 在每个页面的 <head> 中添加完整的hreflang标签列表(含自引用 + x-default)
  • • [ ] 上线前用 hreflang.org 验证工具扫描所有页面
  • • [ ] 提交sitemap到GSC,关注「国际定位」报告中的错误

适合谁: 正在做或计划做多语言版本的独立站/工具站站长。尤其是用子目录结构(/en/ /fr/)的站。

不适合谁: 纯英文站点,或工具本身就是语言无关的(计算器类),可以先跳过。


袁锐钦 · AI产品实操 & 出海工具站日更中。做产品、测工具、跑变现,把试过的路摊开给你看。

引用链接

[1] hreflang.org: https://hreflang.org

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Ruiqin袁锐钦 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • hreflang到底是什么?
  • 坑1:只加了hreflang,没加返回链接(Return Tag)
  • 坑2:语言代码用错了
  • 坑3:忘了 x-default
  • 坑4:hreflang和canonical打架
  • 坑5:页面本身没在hreflang标签里
  • 三种实现方式,我选了最简单的那种
    • 方式1:HTML 标签(推荐,也是我用的)
    • 方式2:XML Sitemap
    • 方式3:HTTP Header
  • 验证hreflang:上线前必做的检查
  • 对工具站来说,hreflang值得搞吗?
  • 一键执行清单
    • 引用链接
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档