A AumCreate 建站、定制开发与成品插件/主题记录

seo-notes · 2026/8/26 · 更新于 2026/8/26

WordPress多语言网站如何设置hreflang标签避免谷歌重复内容惩罚

本文从技术笔记角度拆解WordPress多语言网站设置hreflang标签的完整流程:手动在head中添加link标签、使用WPML自动生成、常见错误原因及排查清单。结合AumCreate外贸独立站项目经验,给出可执行的SEO/GEO优化方案,帮助站长避免谷歌重复内容惩罚。

WordPress多语言网站设置hreflang标签避免谷歌重复内容惩罚的代码示例图,展示link rel alternate hreflang标签的head区域写法
图片来源:Pexels / Markus Winkler

摘要

要为WordPress多语言网站避免谷歌重复内容惩罚,核心是正确设置hreflang标签:在页面head中用link rel=alternate标注各语言版本,并补充x-default。WPML可自动生成但需手动检查。本文拆解手动方法、WPML设置及常见错误。

对于WordPress多语言网站,设置hreflang标签的核心方法是:在页面head区域为每个语言版本添加标签,同时建议添加x-default指向默认语言页。这样可以明确告知谷歌各语言版本之间的对应关系,避免被误判为重复内容。如果你使用WPML,它可以在后台自动生成这些标签,但需要开启并手动检查。下面从原理、手动方法、WPML设置和常见错误几个方面拆解。

hreflang标签的基础逻辑:告诉谷歌语言版本关系

当你的WordPress网站提供多个语言版本(例如中文、英文、西班牙语),谷歌爬虫会分别抓取这些页面。如果内容高度相似,谷歌可能将其视为重复内容,导致其中某些版本不被收录或排名下降。hreflang标签的作用就是主动声明这些页面之间的关系:每个页面都列出自己和其他语言版本的链接,并标注对应的语言和地区代码,例如zh-CN代表中国大陆简体中文,en-US代表美国英语。谷歌看到这些标签后就能理解这些页面是同一内容的不同语言版本,而不是恶意重复。

一个完整的hreflang设置包含以下几个要素:

  • 每个语言版本的页面都要包含指向所有其他版本的hreflang链接,包括指向自己;
  • 语言代码必须符合ISO 639-1格式,地区代码符合ISO 3166-1 Alpha 2格式(如zh-CN、en-US);
  • 必须使用绝对URL,不能使用相对路径;
  • 建议添加x-default标签,指向一个默认页面(通常是语言选择页或默认语言页),用于无法匹配用户语言时的回退。

WordPress多语言网站手动设置hreflang的方法

如果你不使用WPML或其他多语言插件,可以通过在主题的header.php文件中添加代码,或者使用SEO插件(如Yoast SEO、Rank Math)的钩子来输出hreflang标签。手动添加的优势是完全可控,适合对技术细节有要求的站长。

在head中添加link标签的代码示例

假设你的网站有中文和英文两个版本,URL结构为:

  • 中文版:https://www.example.com/zh/产品页面
  • 英文版:https://www.example.com/en/product-page

在中文版页面的区域,应该添加以下代码:

<link rel=“alternate” hreflang=“zh-CN” href=“https://www.example.com/zh/产品页面” />
<link rel=“alternate” hreflang=“en-US” href=“https://www.example.com/en/product-page” />
<link rel=“alternate” hreflang=“x-default” href=“https://www.example.com/zh/产品页面” />

在英文版页面也做同样的事,把两个链接都列出。注意每个页面都要有指向所有语言版本的标签,包括自己。

常见手动设置错误:语言代码不匹配、缺少x-default、使用相对URL

手动设置最容易犯的错误包括:

  • 语言代码写错,例如把zh-CN写成zh(地区代码缺失)或cn(非标准);
  • 缺少x-default标签,导致谷歌在用户语言不匹配时不知道回退到哪里;
  • 使用相对URL如/en/product-page而不是完整的https://www.example.com/en/product-page;
  • 只在首页设置hreflang,而内页没有设置;
  • 两个语言版本页面没有互相引用,导致谷歌无法确认关系。

使用WPML自动生成hreflang标签

对于大多数WordPress站长,使用WPML插件是最省心的方案。WPML在启用多语言内容后,会自动在页面head中输出hreflang标签,但你需要确认几个设置项。

WPML中开启hreflang输出的设置位置

登录WordPress后台,进入WPML → 语言 → SEO选项(或WPML → 设置 → SEO)。你会看到“在页面头部添加hreflang标签”的选项,默认是开启的。确保该选项处于开启状态。另外,WPML允许你设置“默认语言”和“回退语言”,这些会影响x-default标签的生成。

检查WPML生成的hreflang是否完整

WPML生成的hreflang标签通常比较完整,但仍有两个常见问题:一是对于某些自定义文章类型或产品页面,WPML可能不会输出x-default;二是如果你使用了缓存插件,可能需要清除缓存后才能看到新的hreflang标签。检查方法:在浏览器中查看页面源代码,搜索“hreflang”,确认所有语言版本的链接都在,且包含x-default。

hreflang标签错误的常见原因及排查清单

根据谷歌搜索中心的文档和实际项目经验,hreflang标签错误主要集中在以下几个方面:

  • 语言代码与页面实际语言不一致:例如页面内容是繁体中文,但hreflang标注为zh-CN(简体);
  • 缺少返回链接:A页面列出了B页面,但B页面没有列出A页面,谷歌会认为设置不完整;
  • x-default指向错误:x-default应该指向一个中性的语言选择页或默认语言页,而不是某个具体语言页;
  • URL参数或动态页面未处理:如果多语言版本通过URL参数(如?lang=en)区分,谷歌建议使用独立URL路径(如/en/),hreflang配合使用更稳定;
  • 重复内容惩罚的误解:hreflang不是避免重复内容的唯一手段,还需要配合canonical标签和robots指令,但hreflang是最关键的信号之一。

你可以使用谷歌Search Console中的“国际定位”报告检查hreflang错误,或者使用第三方SEO工具批量扫描。

真实项目经验:AumCreate外贸独立站如何处理hreflang

在AumCreate的定制建站服务中,我们处理过多个外贸独立站项目,这些网站通常需要面向欧洲、北美和中东市场,涉及英语、西班牙语、阿拉伯语等。我们的标准做法是:

  • 使用WPML或Polylang(对于预算有限的客户)搭建多语言结构,并在后台开启hreflang输出;
  • 对于企业级客户,我们会手动补充x-default标签,并通过AumCreate自研的SEO插件检查每一页的hreflang是否完整,特别是产品详情页和博客文章;
  • 如果客户使用AumCreate的行业主题,主题本身已经内置了标准的hreflang钩子,只需在主题选项中填写各语言首页URL即可自动生成;
  • 对于不使用插件的定制开发项目,我们直接在主题functions.php中写入hreflang输出函数,确保与页面语言映射表一致。

一个典型问题是:某客户原有的英文站和新增的德语站出现了重复内容警告。我们排查发现,德语站页面虽然通过WPML翻译,但部分自定义字段没有翻译,导致内容重复率过高。解决办法是:完善翻译内容,开启hreflang,并设置canonical指向各自语言版本。三周后Search Console中的重复内容警告消失。

总结与可执行的内链建议

为WordPress多语言网站设置hreflang标签,是避免谷歌重复内容惩罚的基础工作。核心步骤:

  1. 确定网站所有语言版本及其URL结构;
  2. 在每个页面的head区域输出hreflang标签,包含所有语言版本及x-default;
  3. 如果使用WPML,开启自动输出并手动检查完整性;
  4. 定期使用Search Console检查hreflang错误;
  5. 配合高质量的人工翻译和本地化内容,从根本上降低重复内容风险。

如果你需要进一步了解多语言网站建设的细节,可以阅读以下相关笔记(内链建议):

FAQ

hreflang标签应该放在页面什么位置?

hreflang标签必须放在页面HTML的<head>区域,可以通过link标签直接输出,也可以通过HTTP响应头返回。对于WordPress,通常由SEO插件或主题在wp_head钩子中输出。放在<body>中无效。

WPML自动生成的hreflang标签一定正确吗?

不一定。WPML能正确输出大部分页面的hreflang,但对于自定义文章类型、某些插件生成的内容或使用页面构建器的布局,可能会缺少x-default或语言代码不规范。建议每次发布新语言版本后,抽查几个关键页面源代码,确保hreflang完整。

如果同一个语言有多个地区版本(如en-US和en-GB),hreflang怎么写?

你可以分别标注en-US和en-GB,同时保留一个通用的en标签作为回退,并设置x-default指向默认地区页。例如:hreflang=“en-US”、hreflang=“en-GB”、hreflang=“en”、hreflang=“x-default”。这样谷歌能理解不同地区的英语版本。

不设置hreflang会导致谷歌惩罚吗?

不设置hreflang本身不会直接触发惩罚,但如果多语言版本的页面内容高度相似,谷歌可能将其视为重复内容,导致部分页面不被索引或排名下降。hreflang是谷歌官方推荐的信号,正确设置能大幅降低这种风险,但不能完全替代高质量翻译和本地化。

相关文章

相关项目:AumCreate 项目记录