Command Palette

Search for a command to run...

Hreflang 与 Canonical:他们如何合作

Hreflang 与 Canonical:他们如何合作

T
Toolz Team
|Aug 23, 2026|11 最小读数

搜索引擎优化工具 合集的一部分

Hreflang bug 最糟糕的我发货了 一行模板更改,从 Google's 索引中删除了四个语言版本 头部部分渲染了一个规范标签,有人重构了它,因此规范是从默认区域设置而不是当前每个翻译的页面开始声明英文页面是它的规范 hreflang 注释没有触及,仍然完美,它们也完全无关紧要,因为你无法提供已从索引中规范化的 URL。

Nothing broak。页面仍然加载。来自非英语市场的流量在大约三周内下降,这大约是谷歌重新绘制所有内容需要多长时间,而到明显的时候,原因是五个承诺回来。

Canonical 和 hreflang 是最容易相互混淆的两种注释,也是最容易相互抵消的两种注释,本指南涵盖了各自声称的内容、保持它们兼容的规则以及出现错误的具体组合,它位于 完整的 hreflang 指南、旁边 12个常见的hreflang错误

TL;博士: 规范标签说"这些几乎重复的URL,索引这个。"一个hreflang注释说"这些URL是本地化的替代品,为每个用户提供正确的。"它们回答不同的问题,并且不得相互矛盾。规则是每个页面都对自己进行规范化,而hreflang描述了那些自我规范页面之间的关系。将一种语言版本规范化为另一种语言版本将其从索引中删除,并使hreflang集合毫无意义,因为规范是更强的信号。

规范标签声称什么?

规范标签在服务于基本相同内容的一组 URL 中指定首选 URL:

<link rel="canonical" href="https://example.com/pricing" />

它的存在是因为在许多 URL 上都可以访问相同的内容:有或没有跟踪参数,有或没有尾随斜杠,通过打印视图,通过类别路径和直接路径。单独来看,Google 选择一个并将排名信号合并到其上。规范标签是您如何自己选择该选项。

2 个性质对本次讨论很重要,首先是 a 暗示的, 不是指令, 虽然一个强有力的, 谷歌遵循大多数时间。第二, 而这是咬的部分, 非规范 URL 停止以其自身的权限进行索引。他们的信号折叠到规范中,那是标签的全部点,对翻译做这恰恰是错误的事情。

hreflang 声称什么?

Hreflang 完全提出了不同的主张:

<link rel="alternate" hreflang="de-DE" href="https://example.com/de/preise" />

示:这个页面存在另一个版本,它针对的是德国的德语使用者,这里是它居住的地方,它没有说什么应该索引哪个URL,所有的备份都预计被索引,独立,每个排名在自己的市场中,Hreflang是在服务时间应用的路由提示,而不是索引指令。

将两者并排放置,差异就很明显:

规范 赫雷弗朗
问题它回答了 这些 URL 中哪些应该被索引? 该用户应该看到哪个版本?
对其他 URL 的影响 它们不再单独索引 它们保持指数化,每个都在自己的市场上
适用于 重复或接近重复的内容 翻译或区域化的内容
方向 积分给一位获胜者 描述对称集
力量 坚强;通常跟随 用于排名和发球时间的提示

译页不是重复的,它们是不同受众的不同内容,恰好在结构上是平行的,用跨语言规范把它们当作重复是下面每一个失败根源上的类别错误。

11选5是什么规律?

每一页都自我规范化。 Hreflang 描述了那些自我规范页面之间的关系。

具体来说,英文定价页面包含:

<link rel="canonical" href="https://example.com/pricing" />
<link rel="alternate" hreflang="en" href="https://example.com/pricing" />
<link rel="alternate" hreflang="de" href="https://example.com/de/preise" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/tarifs" />
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing" />

德国定价页面带有相同的 hreflang 块和不同的规范:

<link rel="canonical" href="https://example.com/de/preise" />
<link rel="alternate" hreflang="en" href="https://example.com/pricing" />
<link rel="alternate" hreflang="de" href="https://example.com/de/preise" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/tarifs" />
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing" />

两者上设置相同的 hreflang,每个都具有自我参照规范。这就是整个模式。 Google 在其中记录了相同的要求 本地化版本指导:注释必须是倒数的,它们命名的 URL 必须是您想要索引的 URL。

当跨语言的规范点时会发生什么?

语言版本消失了。

Walk through it 法文页面说&quot;索引英文页面而不是我。&quot;谷歌义务,并从索引中删除法文网址。英文页面&#39;s hreflang说&quot;法文版本在这个网址。&quot;谷歌查看那个网址,发现它被规范化到它已经打开的页面,并且没有什么可以为法国搜索者服务的集合崩溃为一页。

症(proticom)是被抓取、返回200、包含好的翻译内容、从不排名的语言版本,在搜索控制台URL检查工具中报告为另一个页面的替代品而不是索引的,该报告是确认诊断的最快方法,如果您正在追逐不会排名的语言版本,请先检查它。

Canonical wins的原因是两个信号在不同的阶段运行,在索引时会发生Canonical化;在排名和服务时会咨询hreflang,一个永远不会进入索引的URL在后期是没有的。

一种语言内的参数和近乎重复怎么办?

这就是两个信号同时合法发挥作用的地方,只要保持层平直,组合就很好。

说德国定价页面可访问: /de/preise/de/preise?utm_source=newsletter。参数化的 URL 规范化为 /de/preise,这是正确的:它们是一种语言内的真实副本。hreflang 集在一级上运行,介于两者之间 /pricing/de/preise、和 /fr/tarifs并且它仅命名每个的规范形式。

有两条规则保持干净:

  1. Hreflang 始终命名规范 URL。 Never 将注释指向参数化或其他非规范 URL。该 URL 上的返回标签将不匹配,因为规范版本是承载该块的版本。
  2. 在语言中规范化,而不是跨越。 参数、打印视图、会话 URL,一切都很好。另一种语言,永远不会。

相同的逻辑涵盖分页、分面 URL 和任何其他重复机制。在语言内部解析它,然后让 hreflang 描述已解析的集合。

hreflang 有助于处理跨地区的重复内容吗?

部分地,这种区别值得精确,因为它经常被夸大。

Hreflang不重复重复,它不会告诉谷歌忽略你的美英英文页面之间的相似性,它所做的就是告诉谷歌那些页面是故意的区域变体,它改变了谷歌处理相似性的方式:它不是选择一个,过滤另一个,而是保持两者并选择每个查询和每个用户。

That是同语言、多区域站点的实用益处,也是那些站点比多语言站点更迫切需要hreflang的原因,不同语言的两页显然是不同的文档,不同价格和拼写的英文两页对于爬虫来说并没有明显的不同,没有注释的其中一个就输了。

Regional页面真正完全相同的话,逐字逐句,诚实的答案是你可能根本不需要单独的页面,Hreflang不是证明近乎重复的内容合理化的一种方式;它是一种描述被市场合法区分的内容的方式。

你们如何一起审计这两个人?

1次提取2个注释的爬虫一次回答这个,对于每个URL,你要两个事实:它的规范是否等于自己的URL,它的hreflang集是否与它的兄弟姐妹相匹配&#39;,按规范排序,寻找几个URL跨不同语言路径共享一个规范的组,那个分组就是bug,一目了然。

对于单页, curl it 并一起读取两个标签:

curl -s https://example.com/de/preise | grep -E 'rel="(canonical|alternate)"'

你正在检查的是规范 href 是你刚刚取到的网址,并且hreflang块包含此页面的条目&#39;自己的区域设置指向同一网址,这两个事实一致是战斗的大部分。

然后检查 hreflang 目标本身是否是自规范的。一组可以完全互惠,但仍然失败,因为其中一个目标在其他地方规范化,这是本文顶部的失败,也是从您正在查看的页面中看不到的。

规范和站点地图怎么样?

Same principle, extended。sitemap 应该仅列出规范的、可索引的 URL。如果您的 sitemap 带有 hreflang 注释,则为 xhtml:link 条目,这些条目将 HTML 命名的规范 URL 相同。

此处的失败模式是由路由表而不是可索引 URL 集生成的站点地图,因此它列出了参数化或非规范变体与真实变体一起。Google 将站点地图包含视为弱规范化提示,因此与您的规范标签不一致的站点地图是另一个矛盾的信号 XML 站点地图生成器 是当您不确定当前列表中包含的内容时重建干净列表的快速方法 hreflang 生成器工具 产生匹配 xhtml:link 站点地图格式中的块。

常见问题

hreflang 和规范有什么区别?

1个规范标签提名几个近乎重复的URL中哪些应该被编入索引,一个hreflang注释声明几个URL是本地化的备份,并帮助搜索引擎为每个用户提供正确的规范整合;hreflang区分。

每个语言版本是否应该自我规范化?

是。hreflang集合中的每个页面都必须有一个自我参照的规范,将翻译的页面规范化为另一种语言会将其从索引中删除,并使hreflang集合变得毫无用处。

如果 hreflang 和规范不同意,哪个信号获胜?

Canonical, 实际上。Canonicalization 发生在索引时间,并且一个没有索引的 URL 不能提供给任何人,无论 hreflang 注释怎么说。

我可以在多语言网站上使用规范标签吗?

Yes,而你应该。用它们解决语言内部的重复,比如跟踪参数和打印视图。千万不要跨语言使用它们。

hreflang 是否修复了我的美国和英国页面之间的重复内容?

它不会重复,但它告诉谷歌这些页面是故意的区域变体,而不是意外重复,因此既保持索引,又按市场提供正确的页面。这是同语言多区域网站需要 hreflang 的主要原因。

hreflang 是否应该指向规范 URL?

Always。将注释指向参数化或非规范 URL 会破坏返回标签,因为该块会保留在规范版本上,而不是您命名的变体上。

如何判断规范是否正在扼杀语言版本?

Search Console&#39;s URL 检查工具运行 URL,如果它将页面报告为另一个 URL 的替代版本而不是索引,那么跨语言规范就是原因。

站点地图 URL 需要匹配我的规范标签吗?

是。站点地图应该只列出规范的、可索引的URL。列出非规范变体的站点地图会在你已经发出的标签之上添加一个矛盾的信号。


Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!