Hreflang多语言落地:标记写法、区域页与常见错误
一、hreflang 到底管什么:是建议不是强制
先纠正一个最常见的误解:hreflang 不强制 Google 给某地区用户展示某版本,它只是告诉 Google「这几个 URL 是同一内容的不同语言版本,请按用户语言选择最匹配的那个」。Google 仍然可能根据其他信号(搜索词、链接、本地权威性)选择它认为更合适的版本,hreflang 只是提高选对的概率。
对 B2B 出海多语言站点,hreflang 解决两个具体问题:德国用户搜德语关键词时,不要给他看英文页;比利时法语用户搜法语关键词时,不要给他看法国法语页或加拿大法语页。做错的典型表现是:德语用户在 SERP 看到的是英文标题,点击后才被 301 跳到德语页——这一跳损失一半点击率。
| 认知误区 | 实际行为 | 后果 |
|---|---|---|
| hreflang 强制地区展示 | 只是建议,Google 有裁量权 | 写错不影响收录,只影响匹配 |
| 有了 hreflang 就不用翻译 | 内容必须真翻译,机器翻译不算 | Google 会识别自动翻译内容 |
| hreflang 放 footer 就行 | 必须放 head 或 HTTP 头或 sitemap | footer 不可抓取 |
| 一个域名配一种语言 | 一个域名可挂多语言版本 | 用子目录或子域名分语言 |
多语言站点的质量门比单语言严格,翻译质量不达标宁可不上线,见 多语言内容上线质量门。GEO 时代的多语言策略不止于英文,见 多语言 GEO 超越英文。
二、URL 结构:子目录优于子域名优于独立站
做 hreflang 之前先选 URL 结构,这一步错了后面全是补洞。
| 结构 | 示例 | SEO 权重传递 | 维护成本 | 适用场景 |
|---|---|---|---|---|
| 子目录 | example.com/de/、example.com/fr/ | 集中在主域,最强 | 最低 | 绝大多数 B2B 官网首选 |
| 子域名 | de.example.com、fr.example.com | 分散,需单独建权重 | 中 | 已有国别品牌独立运营时 |
| 独立站 | example.de、example.fr | 完全独立,需各自做外链 | 最高 | 本地化业务重、团队分散 |
| 参数区分 | example.com?lang=de | 不推荐,重复内容风险高 | 低但风险大 | 不要用 |
B2B 出海团队 90% 应该用子目录。理由:主域名的权重集中传递,hreflang 维护简单,CDN 和 HTTPS 证书只配一套。子域名只在你已经为某个国别市场建立了独立品牌和外链时才值得用;独立站只在你在德国、法国真有本地实体、本地团队、本地内容生产时才考虑。国别落地页和 doorway 页的边界,见 国别落地页与 doorway 页红线。
三、标记写法:三种实现方式
hreflang 有三种落地方式,按场景选。
| 方式 | 写法位置 | 适用规模 | 优先级 |
|---|---|---|---|
| HTML link 标签 | 每个页面 head 里 | 几十到几百页 | 首选 |
| XML sitemap | sitemap 里加 xhtml:link | 几千页以上 | 大规模首选 |
| HTTP 响应头 | 服务器返回 Link 头 | PDF 等非 HTML 文档 | 补充 |
HTML link 标签的标准写法是:在每个语言版本的 head 里,列出所有版本(包括自己)和 x-default。以英文、德文、法文三语版本为例,英文页 head 里要有:
link rel=”alternate” hreflang=”en” href=”https://example.com/”、link rel=”alternate” hreflang=”de” href=”https://example.com/de/”、link rel=”alternate” hreflang=”fr” href=”https://example.com/fr/”、link rel=”alternate” hreflang=”x-default” href=”https://example.com/”。德文页和法文页必须做同样的完整列表,且 URL 完全一致。
语言代码用 ISO 639-1 两字母语言码,必要时加 ISO 3166-1 国家码:en 表示英语通用、en-GB 表示英国英语、de-AT 表示奥地利德语、zh-CN 表示简体中文、zh-TW 表示繁体中文。不要用 cn 或 zh 这种不完整代码。
四、五类常见错误清单
hreflang 失效 90% 是这五类错误,逐条对照自查。
| 错误 | 检查方法 | 后果 | 修复时限 |
|---|---|---|---|
| 单向引用 | 英文页指了德文,德文页没指回 | 整组不生效 | 当天补全 |
| 缺 x-default | 找不到兜底页面 | 未知语言用户可能看英文版 | 当天加上 |
| 语言代码错 | cn 应为 zh-CN;用 zh 太宽 | 匹配错误 | 当天改正 |
| 漏自引用 | 某页没列自己的 hreflang | 该版本不参与组内选择 | 当天补上 |
| URL 不一致 | http/https、尾斜杠、大小写不一致 | 被视为不同 URL,组断开 | 规范化后重写 |
| 循环引用错 | A 指 B、B 指 C、C 指 A,但 A 没指 C | Google 无法建组 | 整组重写 |
一个工具能帮你快速检查:Search Console 的国际定位报告,上线后 7 天内会列出所有错误,包括「未返回正确返回标签」「未找到返回标签」。把错误清单导出,按页修复,直到报告为零。多语言站点的数字与表格本地化要和 hreflang 同步,见 多语言数字表格与单位本地化。术语表的统一管理是翻译质量的前提,见 MTPE 术语表工作流。
五、区域页与多语言的边界
B2B 出海常混淆两件事:多语言版本(同一内容不同语言)和区域落地页(针对某地区的专门内容)。
| 维度 | 多语言版本 | 区域落地页 |
|---|---|---|
| 内容 | 同源翻译 | 针对当地市场专门写 |
| URL | /de/、/fr/ 等语言子目录 | /us/、/mena/ 等区域子目录 |
| hreflang | 必标 | 可标 x-default 或区域码 |
| 风险 | 翻译质量差 | doorway 页惩罚 |
| 示例 | 产品页英文版译德文版 | 「面向中东买家的采购指南」 |
关键红线:区域落地页必须有真实本地化内容(当地认证、当地案例、当地支付方式),不能只是英文页改个标题。 doorway 页的判定和红线,见 国别落地页与 doorway 页红线。市场优先级先选英语、欧盟、中东、拉美,见 出海市场优先级英语欧盟中东北非拉美。
六、上线检查与监控节奏
| 步骤 | 工具 | 时限 | 通过标准 |
|---|---|---|---|
| 本地代码审查 | 逐模板检查 head | 提交前 | 三语版本互相引用完整 |
| URL 规范化 | canonical 与 hreflang 一致 | 提交前 | 无 http/https 冲突 |
| 部署后验证 | Rich Results Test 或 hreflang 工具 | 上线当天 | 每组 4 个标签完整 |
| Search Console | 国际定位报告 | 第 7、14 天 | 错误数为零 |
| 季度抽查 | 新页面上线时同步检查 | 每次发版 | 新模板继承 hreflang 逻辑 |
站点迁移或改版时,hreflang 是最容易被新模板漏掉的部分,要和 迁移 301 与 SEO 保全 一起回归。新页面上线时,开发模板里要内置 hreflang 输出逻辑,不要靠运营手动加。
FAQ 常见问题
写在最后
多语言官网的 hreflang 是个典型的「细节决定成败」工作:写法错一个字符、少一个互指,整组失效,而你在 Search Console 看到它可能已经是上线两周后。把它做成模板化工作,开发把 hreflang 输出逻辑写进模板,运营新增语言时只填 URL 列表,不靠人记忆。
落地三步:本周把现有多语言模板按五类错误清单自查一遍;下周在 Search Console 国际定位报告里确认零错误;第三周把 hreflang 检查加进新页面上线流程。做完这三步,你的多语言站点才真正开始服务各国买家。
一句可以记住的话:hreflang 是给 Google 看的翻译目录——列得全、互相指、带兜底,它才敢把德国买家送到德语页。
