# TranslatePress 中的重复 hreflang 标签:该修复什么 > TranslatePress 中出现重复的 hreflang 标签?区分有效的地区标签和互相冲突的网址,检查它们的来源,并比较 LingoWP 的做法。 - URL: https://www.lingowp.com/zh/blog/translatepress-hreflang-chongfu/ - Author: Amine Sayagh - Category: 故障排查 - Published: 2026-10-06 - Language: zh SEO 审计报告了重复的 hreflang 标签。你检查页面,发现有两个法语条目。应该删掉其中一个吗? **先比较确切的语言代码和目标地址。重复的 `fr-BE` 条目如果指向两个不同的网址,就需要排查。而 `fr` 条目和 `fr-BE` 条目指向同一个合适的法语页面,则可能是有效的。** 修复方式取决于你遇到的是冗余输出、互相冲突的目标,还是页面之间的错误对应。TranslatePress 的地区设置可以解释一部分看似重复的条目;其他情况则需要检查某个集成或自定义的标注来源。 本指南说明哪些该保留、哪些该修正,以及 LingoWP 如何让每个页面的语言目标保持一致。 *由 LingoWP 发布。外部文档核对于 2026 年 10 月 6 日。关于 LingoWP 的说明基于其 1.5 版的开发评测。* ## 三种看起来像重复 hreflang 的情况 hreflang 用来标明页面的语言或地区对应版本。代码和目标地址是一起起作用的:如果只数“法语”条目而不同时检查两者,可能会做出错误的修正。 | 同一页面上的条目 | 实际情况 | 合适的下一步 | |---|---|---| | `fr-BE` → `/fr/contact/`,完全相同地重复出现 | 冗余输出 | 找出同一条目出现两次的原因,并清理重复 | | `fr-BE` → `/fr/contact/` 和 `fr-BE` → `/fr/contactez-nous/` | 同一代码对应两个竞争目标 | 确定预期的当前网址,并修正冲突的条目 | | `fr` → `/fr/contact/` 和 `fr-BE` → `/fr/contact/` | 通用定位与地区定位 | 确认两者都是有意为之;不要仅因网址重复就删除其中一个 | 以上是示意例子,并不是新复现的 TranslatePress 缺陷。 Screaming Frog 的 **Multiple Entries** 检查会找出同一语言或地区代码的多个条目,也可能发现多种实现方式,例如 HTML 标签和 HTTP 标头同时存在。在判断问题所在之前,请先看警告的详细内容。[查看该工具的说明](https://www.screamingfrog.co.uk/seo-spider/issues/hreflang/multiple-entries/)。 ## 为什么 TranslatePress 会同时显示 fr 和 fr-BE `fr` 面向不限地区的法语,`fr-BE` 表示比利时法语。它们是两个不同的代码。 Google 允许通用语言目标使用该语言的某个地区页面。因此,共用一个网址并不会自动让通用条目和地区条目失效。[阅读 Google 关于本地化页面的指南](https://developers.google.com/search/docs/specialty/international/localized-versions)。 TranslatePress 的 **Remove duplicate hreflang** 设置提供国家格式、与地区无关的格式或两者兼有。它的文档说明默认会同时显示两种格式。 你可以在**设置 → TranslatePress → 高级 → 杂项**中找到这个选项。它的名称很容易被误解:它控制的是语言条目的格式,并不意味着同时使用通用定位和地区定位是缺陷。[查看官方的高级设置文档](https://translatepress.com/docs/settings/advanced-settings/)。 选择与你的目标受众相符的格式。保留有意义的定位,而不是一味追求最少的标签数量。 ## 当同一代码指向不同网址时 更重要的问题是:一个页面为完全相同的代码声明了两个互相竞争的目标。 例如,一个 `fr-BE` 条目可能指向可用的翻译页面,而另一个则使用旧的或未翻译的别名。在删除任何内容之前,先确定哪个目标才代表预期的法语对应页面。 在一次涉及 The Events Calendar 的 TranslatePress 支持讨论中,有用户报告某些活动页面上有两个 `fr-BE` 条目:一个使用翻译后的别名,另一个使用无法访问的未翻译别名。技术支持在检查示例时未能复现该重复,并要求提供更多证据。 这次讨论说明了需要排查的症状,但并不能确定每个安装中的原因,也不能证明每个版本都存在持续的缺陷。[阅读报告和回复](https://wordpress.org/support/topic/translatepress-the-events-calendar-duplicate-hreflang-with-untranslated-slug/)。 ## 如何诊断和修复重复的 hreflang 标签 ### 1. 检查单个页面的实际条目 打开一个受影响的页面,选择**查看网页源代码**,搜索 `hreflang`。记录每个相关代码及其完整的目标网址。 除了审计检查过的页面,也要在未登录状态下检查公开页面。比较对等的网址,不要把原始页面和编辑器预览混在一起。 判断警告涉及的是: - 同一代码和同一网址在页面 HTML 中重复出现。 - 同一代码指向不同目标。 - 不同的地区代码和通用代码共用一个目标。 - 通过多种方式检测到的标注。 不同语言页面之间出现重复引用是正常的。每个页面都会描述它的对应页面,这与同一页面声明中存在互相冲突的条目是两回事。 ### 2. 确认正确的目标和页面用途 打开每个竞争网址,检查它的最终地址、响应、语言和内容。一个能成功加载的网址,仍可能是错误的对应页面。 一篇文章的法语版本应当代表那篇文章本身。标签归档页应指向对应的标签归档页,而不是某篇单独的文章或无关的主题。 举例说明: | 原始页面 | 合适的对应页面 | 需要排查的对应关系 | |---|---|---| | 联系页面 | 目标语言的联系页面 | 首页 | | 关于旅行的文章 | 该文章的译文 | “旅行”标签归档页 | | “旅行”标签归档页 | 对应的“旅行”标签归档页 | 无关的分类 | 对于归档页,请比较主题和页面用途。仅凭翻译后的标签名称,并不能证明网址指向了正确的归档页。 如果某个目标发生重定向或返回 404,请先确定正确的可用地址,再调整语言集合。不要仅仅因为另一个页面也引用了某个失效目标就保留它。[hreflang 指向重定向](/zh/blog/translatepress-hreflang-chongdingxiang/)和 [hreflang 指向 404 页面](/zh/blog/translatepress-hreflang-404/)的指南介绍了这些检查。 ### 3. 找出生成多余条目的来源 TranslatePress 可能不是唯一提供语言标注的组件。请检查会明确生成 hreflang 的集成、自定义代码片段、主题页眉的自定义内容,以及以前多语言配置留下的残余。 在测试副本上,比较停用某个可疑标注来源前后的输出。如果停用后多余条目消失了,你就找到了一条有用的线索。在把这个改动应用到线上网站之前,请确认剩下的条目完整且正确。 如果某个组件提供了关闭其 hreflang 输出的设置,就使用该设置。否则,请询问它的技术支持团队或开发者,如何在不删除无关 SEO 功能的情况下停止冗余输出。 目标是避免多个独立组件为同一页面发布互相冲突的语言目标。 ### 4. 检查地区设置和自定义代码映射 如果条目只是 `fr` 和 `fr-BE`,请对照你的预期定位检查 TranslatePress 的格式设置。你可以决定两者都保留。 如果两个条目使用完全相同的代码,请检查是否有自定义的语言代码映射。把同一代码分配给不同已配置版本的自定义,即使每个网址本身都有效,也可能造成冲突。 TranslatePress 文档介绍了用于修改输出代码的 `trp_hreflang` 过滤器。如果你的开发者用过它,请让他们结合当前设置检查映射关系。仅仅为了在标准地区格式之间做选择,你不需要引入自定义代码。[查看开发者文档](https://translatepress.com/docs/developers/change-hreflang-localization/)。 ### 5. 修正错误的别名或归档页对应关系 当某个条目使用了错误的页面地址时,请修正生成该目标的设置或集成。 TranslatePress 付费的 SEO Pack 支持翻译页面、术语、分类法和内容类型的别名。请检查相关的别名类别,而不要把路径中的每个词都当作页面名称。[它的文档说明了支持的别名类型](https://translatepress.com/docs/addons/seo-pack/)。 翻译后的归档基础路径本身并不一定有错,但它必须与你的配置实际支持的路由相匹配。把预期的归档页与一个可用地址进行比较;如果两者不一致,就排查定义该路由的插件。 联系技术支持时,请同时给出两个条目和正确的目标: > 在这个页面上,两个 fr-BE 条目指向不同的地址。这一个是可用的译文,另一个指向旧别名。附上页面网址、两个条目以及我已启用插件的版本。 这比只报告“hreflang 重复了”更便于处理。 ### 6. 修正后检查整组语言 修改生成设置后,清除相关缓存,然后再次检查公开输出。 请确认: - 在所选实现方式中,每个确切的语言或地区代码都有一个明确的预期目标。 - 保留下来的通用条目和地区条目都是有意为之。 - 目标能在正确的当前地址打开。 - 各页面代表对等的内容或对应主题的归档页。 - 各语言版本包含预期的返回链接。 TranslatePress 自己的 [hreflang 验证指南](https://translatepress.com/hreflang-validation-and-testing/)说明了如何检查目标和返回链接。请在受影响的页面类型上重新运行审计,必要时包括归档页或活动页面。 如果你同时使用 HTML 和站点地图标注,还要确认两者的语言目标一致。允许同时使用多种方式,但这并不能免去保持输出一致的工作。请参阅 [hreflang 与站点地图网址不一致](/zh/blog/translatepress-hreflang-zhandian-ditu-buyizhi/)时的处理方法。 ## LingoWP 如何保持语言对应关系一致 对网站所有者来说,有用的结果很明确:每个页面都应该在每种已发布语言中标明正确的对应页面,而不需要维护互相竞争的地址列表。 LingoWP 的开发评测描述了为每种已发布语言生成一个条目,外加一个 `x-default` 条目。它报告的测试会检查各语言版本是否列出预期的集合并互相链接。 评测还描述了在测试案例中保留固定的标签和分类路由基础路径。其目的是通过受支持的路由链接到正确的对应页面或归档页。 你在 LingoWP 的中央工作区中管理译文,而插件根据当前的页面信息生成语言对应关系。当反复修正标注已成为日常维护的一部分时,这是一项值得评估的实用功能。[LingoWP 与 TranslatePress 对比](/zh/blog/lingowp-yu-translatepress-duibi/)一文介绍了更全面的差异。 **优势在于目标和页面对应关系可预测。**标签少并不一定更好:TranslatePress 的通用条目和地区条目可以是有效的,而 `x-default` 是一个可选的回退标注,正如它的[验证文档](https://translatepress.com/hreflang-validation-and-testing/)所指出的。 关于 LingoWP 的结论仅针对评测的 **1.5** 版本及其报告的测试。外部插件或自定义代码仍可能添加互相竞争的标注。切换之前,请在网站副本上验证你实际的归档页、活动或其他集成。 **[了解 LingoWP](https://lingowp.com/)**,看看它的翻译工作区,并评估它的做法是否适合你的网站。 ## 常见问题 ### 我应该删除所有重复的 hreflang 网址吗? 不应该。不同但有效的语言或地区代码可能有意使用同一个目标。在删除任何内容之前,请先检查代码和每个条目的用途。 ### “Remove duplicate hreflang” 能修复两个互相冲突的 fr-BE 网址吗? 这个设置选择的是国家格式、通用格式或两者兼有。它可能会改变显示哪些条目,但来自其他集成或自定义的冲突地址仍需从源头修正。之后请检查实际输出。 ### 网址能打开,就足以证明对应关系正确吗? 不足以。请确认它包含预期语言的对应内容。一个能打开的标签归档页,并不会自动成为一篇能打开的文章的对应页面。