Hreflang 有一个属性,它使得调试变得独特烦人:每个故障模式都会产生看起来正确的标记,没有控制台错误,浏览器中没有红色徽章,没有构建失败的标签渲染,页面验证为 HTML,注释什么也没做。几周后,您会从搜索控制台报告或另一个国家/地区的人告诉您他们弄错了页面。
我现在已经调试了足够多的这些,可以有一个列表。这就是那个列表,大致按照我找到每个列表的频率排序,其中包含您将观察到的症状和修复情况。它位于下面 完整的 hreflang 指南 沿着碎片 x-默认值 並 hreflang 与规范。
TL;博士: 最常见的 hreflang 错误是缺少返回标签、非 ISO 代码等
en-UK、相对 URL、跨语言指向的规范、缺失x-default、以及混合相同网址的实现方法,它们都沉默了:标记渲染,什么也不做搜索控制台's国际目标报告大规模捕获返回标签和未知代码错误;其余的需要抓取或查看渲染的HTML hreflang 标签生成器 在部署之前验证代码、URL、重复项和缺失的后备功能。
1。缺少返回标签
症状: Search 控制台报告"没有返回标签"语言版本不会换入合适的市场,整个集合的行为就好像hreflang不存在一样。
原因: A页声明B页为备选,但B页不声明A页,谷歌要求双方确认关系,并丢弃未往复的注释。
修复: Group中每个页面上放完整、相同的注释集,包括一个自指条目,不要试图巧妙地知道哪个页面需要哪个条目,英文页面列出了英文、法文、德文、x-default;法文页面也是如此;德文页面也随处可见相同的块。
从很大程度上来说,这是最常见的失败,而且几乎总是由每页的手动编辑或渲染 " 其他语言"的模板引起的。而不是"所有语言"。
2、使用非ISO区域代码
症状: Search Console 报告 "未知语言代码 ",或者在注释被悄悄忽略时完全没有。
原因: en-UK 领先领域。 UK 不是 ISO 3166-1 alpha-2 代码;英国是 GB。发明了区域代码,例如 en-EU 並 es-LATAM 是同一类错误,也是如此 en-uk 错误的外壳与已经无效的区域配对。
修复: 语言来自 ISO 639-1、ISO 3166-1 alpha-2 的区域,用连字符连接起来,对于拉丁美洲,有效的答案是 UN M49 代码 es-419。对于中文, 喜欢脚本子标签: zh-Hant 並 zh-Hans。
| 错 | 对 | 为什么 |
|---|---|---|
en-UK |
en-GB |
UK 不是 ISO 3166-1 代码 |
en-EU |
每个国家或平原都有单独的条目 en |
欧盟不是国家代码 |
es-LATAM |
es-419 |
UN M49 拉丁美洲地区代码 |
zh-CH |
zh-Hans 或 zh-CN |
CH 是瑞士 |
CA |
en-CA 並 fr-CA |
仅区域无效 |
3、仅限区域的注释
症状: 没什么事发生,注释完全被忽略。
原因: 尝试在不命名语言的情况下瞄准一个国家,例如 hreflang="US" 或 hreflang="CA"。Hreflang是语言优先的设计;该区域是语言的可选缩小,而不是其本身的目标。
修复: Name the language。如果你用两种语言为加拿大服务, 那就是两个条目: en-CA 並 fr-CA。
4、相对网址
症状: 注释被忽略。经常伴有 "这在我的机器上有效"因为相对 URL 在浏览器中可以很好地解决问题。
原因: href="/fr/pricing" 代替 href="https://example.com/fr/pricing".Hreflang 需要完全合格的绝对 URL,包括协议和主机。
修复: Emit 绝对 URL,如果您是在模板中构建它们,则从配置的站点源而不是硬编码字符串构建它们,因此暂存部署不会发布生产 URL,反之亦然。
5。跨语言指向的规范
症状: 整个语言版本从索引中消失。Hreflang 显示正确且没有效果。
原因: 法语页面声明英语页面为其规范,那指示谷歌放弃法语URL,而一个已经规范化掉的URL无论hreflang说什么都不能提供给任何人,规范是更强的信号,它获胜。
修复: 每一页都自我规范化,Hreflang 描述了那些自我规范页面之间的关系,这个值得自己阅读: hreflang 与规范 通过包括参数化 URL 在内的组合进行工作。
6。无x默认
症状: 来自您不以明显随机语言版本为目标的国家/地区的访客。
原因: No fallback声明,所以谷歌选择。它的选择是基于你看不到的相似性信号,这就是荷兰访问者最终出现在德国页面上的方式。
修复: 添加一个 x-default 每组条目,指向语言选择器或您的主要国际版本。 x-默认指南 涵盖了指向何处以及使其无用的错误。
7、混合实施方式
症状: 间歇性、难以再现的行为。有些页面交换正确,而另一些则不正确。
原因: HTML <link> 标签和 XML 网站地图 xhtml:link entries 都声明 hreflang 相同的 URL。每个都是单独有效的。它们一起是两个真理的来源,漂移,当他们不同意时,你就无法知道谷歌使用了哪一个。
修复: URL 集选择一种方法。大多数站点的 HTML 标签,当您有许多本地并想要精简页面头时,站点地图条目,PDF 等非 HTML 文件的 HTTP 标头。然后删除另一个而不是将其留作备份。
8。尾随斜杠和协议不匹配
症状: 即使两个页面都带有注释,返回标签也会失败。
原因: 注释指向 https://example.com/fr 而可索引 URL 是 https://example.com/fr/.或者它指向 http:// HTTPS站点上。这些是不同的URL,因此真实页面上的返回标签与另一个页面命名的URL不匹配。
修复: Url 的确切规范形式,你会在站点地图中放入相同的字符串。从你的规范标签使用的同一个 URL 构建器生成 hreflang,所以两者不能不同意。
9。指向重定向或404s
症状: 部分或退化的行为;受影响对上的搜索控制台错误。
原因: Locale 退役,现在重定向它的 URL,或者在命名它的注释停留时删除翻译页面,重定向目标仍然解析,所以它不是致命的,但它添加了一个跳,最终 URL 上的返回标签可能与被命名的 URL 404 目标直接毒害了这对。
修复: 爬取您自己的 hreflang 目标并检查状态代码。这是无人运行的检查,它是在编写时发现正确的集合中腐烂的检查。
10。注释无指纹页
症状: 该集的行为不一致;有些替代品从未出现。
原因: 携带时,页面被宣传为语言替代品 noindex.你已经告诉谷歌,既要把这个网址提供给市场,又要把它排除在指数之外,矛盾的解决是赞成 noindex。
修复: 删除注释或删除注释 noindex.分期剩菜和未翻译的占位页是通常的罪魁祸首。
11、在机器人中阻挡hreflang目标txt
症状: 替代方案永远不会得到确认。搜索控制台显示明显带有返回标签的页面的返回标签错误。
原因: Robots。txt中禁止目标,所以谷歌机器人无法获取,也看不到返回标签,你那边的注释没问题;另一边的确认是无法到达的。
修复: 允许在 hreflang 注释中抓取您命名的每个 URL。如果某个部分不应该被抓取,那么它也不应该被抓取在 hreflang 集中。 robots.txt 生成器 对于审核当前规则块非常有用,该规则块通常比预期的要广泛。
12、一套内重复代码
症状: Unpredictable。Google 可能会拿走第一个、最后一个,或者丢弃这对。
原因: 2个具有相同hreflang值的条目指向不同的网址,通常是因为两个系统都发出注释,或者是因为一个区域设置地图有一个重复的键。两个 x-default 条目最常见的形式也是同样的问题。
修复: 每组每个代码一个条目。查看渲染的源而不是模板;仅从模板中看不到添加第二个块的插件。 免费 hreflang 生成器 标记您构建的集合中的重复代码,尽管它看不到页面还会发出什么。
您如何系统地发现这些错误?
3次传球,按这个顺序,因为每一次都抓住不同的级别。
首先是搜索控制台。 International Targeting 报告涵盖了整个属性,并发现了两个缩放错误:缺少返回标签和未知语言代码。它落后于您的部署,无论完全重绘需要多长时间,因此请将一周不变视为正常情况。
爬行秒。 任何提取 hreflang 的爬虫都会给你每个 URL 的集合。按集群分组并比较计数:一个页面有五个一组中的四个条目就是错误。然后检查每个目标的状态代码,即发现错误 8、9、10 和 11 的通过。
最后渲染 HTML,适用于行为不端的特定页面。 curl 它,计算注释块,计算 x-default entries,并将 URL 与规范逐个字符进行比较,这就是重复和尾部斜杠不匹配出现的地方,并且它是唯一看到在运行时注入什么插件的通行证。
Generator 值得在其中任何一个之前运行,因为在你写入它的时候验证集合,在错误 2,3,4,6,12 能够发货之前就去除了它们。任何工具都无法强制执行的是互惠,因为那是除了你前面的页面之外的页面的属性。为此,纪律是结构性的:一个区域设置地图,一个渲染器,每个页面上的完整块。 下一个。js 並 文字出版社 指南显示了代码中的外观。
常见问题
最常见的 hreflang 错误是什么?
Missing return标签,A页将B页命名为备选但B页没有命名A页,因此Google放弃了关系,修复方法是将完全相同的注释集,包括一个自指条目,放在组中的每个页面上。
为什么 Search Console 说我的 hreflang 没有返回标签?
为你指向的页面没有用匹配的注释指向后方,或者指向略有不同的URL,尾随斜杠、协议差异以及www与非www都算作不同的URL。
En-UK 是有效的 hreflang 代码吗?
不。 UK 不是 ISO 3166-1 alpha-2 代码。英国的正确代码是 GB故值为 en-GB。 en-UK 被默默地忽略。
hreflang URL 可以是相对的吗?
No。Hreflang要求包括协议和主机在内的完全限定的绝对URL。相对URL即使在浏览器中正常解析,也会被忽略。
规范标签是否覆盖 hreflang?
效是。如果一个页面将规范化为不同的语言版本,则该 URL 从索引中删除,hreflang 无法将其带回。每个页面都必须对自己进行规范化。
hreflang 修复需要多长时间才能出现?
Days to weeks。google 必须在设置中重新绘制每个页面才能确认返回标签,而搜索控制台则报告同一时间表的更新。
我可以使用 HTML 标签和站点地图 hreflang 吗?
Ke,但不能,相同网址的两个来源相去甚远,不同意时也没法说出是用哪一个,每个网址集选一个方法。
hreflang 目标需要可爬行吗?
是。txt或标记为noindex的机器人中阻止了目标,谷歌无法确认返回标签,即使你的标记是正确的,注释也失败了。



