你的多语言网站,是不是总把德国用户塞进英文页?

你上线了法语站、日语站、巴西葡语站,结果法国人搜到的是英语首页,东京用户点进来全是繁体中文——不是内容不够好,是谷歌压根没搞懂“谁该看哪一版”。

这锅,hreflang 标签背得最冤,也最该背。

hreflang标签到底是什么?为什么说它是“地理定位器”?

hreflang 就是一句大白话:“这个页面,是给说XX话、住在YY地的人看的。”

它不帮你抢排名,只负责别让搜索引擎乱配婚。没它?谷歌靠IP、浏览器语言、历史行为瞎猜——猜错了,用户秒关页面。

它的写法很直白:hreflang="语言代码-国家代码"
比如:

  • hreflang="en-us" → 给美国讲英语的人
  • hreflang="ja-jp" → 给日本讲日语的人
  • hreflang="en" → 所有英语用户(但英式/美式混着上,容易翻车)

真实场景:一个做户外装备的德国品牌,有德语、法语、荷兰语三个版本。早期只靠URL路径区分(/de/ /fr/ /nl/),结果荷兰用户搜登山包,谷歌返回德语页——页面加载完才反应过来“这不是我的语言”。加了完整闭环的 hreflang 后,本地用户直接命中母语页,页面停留时间和加购动作都明显提升。

配置hreflang的3个核心方法,哪个最适合你?

选哪种,取决于你网站怎么搭的、谁来管它。

方法一:在HTML <head> 里写 link 标签
每个页面的 <head> 里,手动加上所有语言版本的指向。比如德语页要写:

<link rel="alternate" hreflang="de-de" href="https://example.com/de/product/" />
<link rel="alternate" hreflang="fr-fr" href="https://example.com/fr/product/" />
<link rel="alternate" hreflang="en-us" href="https://example.com/en/product/" />

✅ 适合小站、CMS后台能直接编辑模板的团队
❌ 页面超500个后,改一处得全站同步,容易漏

方法二:用HTTP响应头发 Link 字段
服务器返回页面时,在HTTP头里塞一行:
Link: <https://example.com/de/product/>; rel="alternate"; hreflang="de-de"
✅ 适合SPA应用、PDF文档、或不想动前端代码的后端主导团队
❌ 运维和开发得一起盯,普通运营看不到、改不了

方法三:塞进XML网站地图
sitemap.xml 里为每个URL加 <xhtml:link> 子节点,声明所有语言变体。
✅ 大站首选——集中管理,不怕页面爆炸,SEO团队自己就能维护
❌ 需要支持多语言URL结构的Sitemap生成逻辑(WordPress插件、Shopify App、Next.js sitemap库都能搞定)

配置时最容易踩的5个大坑,你中了几个?

这些错误,90%的多语言站都栽过。

坑一:只出不进,不成闭环
A页写了“我有法语版”,但法语版B页里没写“我有德语版”。谷歌当它无效。
→ 每个语言页,必须互相指一遍,包括自己。

坑二:代码写反、写错、写糊了
en-us 不是 us-enzh-cn(简体中文-大陆)和 zh-tw(繁体中文-台湾)不能混;pt-br(巴西葡语)≠ pt-pt(葡萄牙葡语)。
→ 记住口诀:先语言,再国家,中间短横,全小写

坑三:忘了指自己
德语页里写了法语、英语链接,但漏了 hreflang="de-de" 指向自己。谷歌会认为“这页没主语”。
→ 每个页面的 hreflang 列表里,必须有且仅有一个指向自身的条目。

坑四:和 canonical 标签打架
比如英文页的 canonicalhttps://example.com/en/product/?ref=abc(带参数),但 hreflang 却指向干净的 https://example.com/en/product/。谷歌懵了。
hreflang 里的所有URL,必须和对应页面的 canonical 完全一致。

坑五:没设 x-default
用户用瑞典语搜,你只有英/法/德三版——这时候该弹哪个?没设 hreflang="x-default",谷歌可能随便扔一个。
→ 通常设成国际版英语首页,告诉谷歌:“其他都不匹配时,就上这儿。”

如何验证你的hreflang标签是否真的生效了?

别信“我写完了”,要亲眼看见谷歌认了。

第一步:打开谷歌Search Console
进「索引」→「网页」,搜一个你配了 hreflang 的URL。如果显示“已编入索引的网页带有hreflang注解”,说明基础信号收到了。
再进「国际化」→「语言」报告,看谷歌识别出的各语言版本是否和你预期一致——这里一眼揪出漏配、错配。

第二步:用在线hreflang检查器扫一遍
推荐 hreflang.ninjaMerchen’s Hreflang Tester,粘贴URL,它会列出所有发现的 hreflang 链接,并标红报错(比如自引用缺失、代码格式错误)。

第三步:真人模拟搜索
不用VPN,直接在谷歌搜索框右下角点「工具」→「任意国家/地区」,切换成法国、日本、墨西哥……搜你网站的核心词,看第一页结果里出现的是不是对应语言页。不对?立刻回源码查。

hreflang配置好了,接下来该做什么?

它只是把对的人请进门。门里有没有人等、茶热不热、菜单能不能看懂,才是转化的关键。

翻译不是替换文字,是换脑子
法国用户看到“lightweight jacket”译成“轻量夹克”,不如“防风薄外套”来得准;日本页写“今すぐ購入”(马上购买)不如“今すぐチェック”(马上看看)更软性。找母语运营或本地化团队重写,别依赖DeepL。

CDN节点别拖后腿
hreflang 把东京用户导到 /jp/ 页,但如果服务器在法兰克福,首屏加载慢3秒——用户早划走了。确认你的CDN(Cloudflare、阿里云CDN、腾讯云CDN)在目标区域有边缘节点。

域名策略要看业务重心
如果你在英国卖高端羊绒,在澳大利亚卖平价卫衣,两个市场完全独立,那就别硬套 /uk//au/ 路径——直接上 example.co.ukexample.com.au,再配合 hreflang,谷歌和用户都更清楚“这是两个独立生意”。

今天下班前,就能完成的hreflang检查清单

别等排期、别约会议,现在打开浏览器就能干:

  1. 打开你网站一个主力产品页(比如 /de/hoodie/),右键 → 「查看页面源代码」
  2. Ctrl+F 搜 hreflang,看 <head> 里有没有 link[rel="alternate"]
  3. 数一数有几个 hreflang 条目:应该等于你当前站点支持的语言版本总数(比如德/法/英/日 = 4个)
  4. 挨个核对代码de-de 对不对?有没有 x-default?有没有指向自己的那一条?
  5. 复制其中一条非当前语言的URL(比如 href="https://example.com/fr/hoodie/"),新开标签页打开它,重复步骤1-4,看它有没有指回 /de/hoodie/

做完这5步,你就亲手验过了最常出问题的环节。今晚改掉一个页面,明天同步到全站模板——你的多语言流量,终于开始认路了。