跳到主要内容

如何审核 Hreflang

2025-01-10

Hreflang 是一个简单的概念,但大规模正确实施却非常困难,而且经常被错误地实现。了解如何审核它们!


如何使用 SEO Spider 审核 Hreflang

Hreflang 让 Google 知道您有针对不同语言或语言和地区的页面的多个版本,以便他们能够向搜索用户返回适当的版本。

虽然 Hreflang 是一个非常简单的概念,但大规模正确实施却非常困难,而且经常被错误地实现,或者存在许多错误。

本教程将引导您了解如何使用 Screaming Frog SEO Spider 工具快速有效地检查 hreflang 的实施情况。SEO Spider 将抓取 HTML 中的 rel=”alternate” hreflang 注释、通过 HTTP 标头或在 XML 站点地图中抓取,并报告它们的设置和常见错误。

要开始使用,您需要下载 SEO Spider,拥有付费 许可证,然后按照以下步骤操作。

1) 在 ‘Config > Spider > Crawl’ 下选择 ‘Crawl’ 和 ‘Store’ Hreflang

‘Configuration’ 在 SEO Spider 的顶级菜单中可用。

hreflang 审核配置

这意味着还将抓取 hreflang 注释中引用的 URL,以及提取和报告。

选择这些选项后,单击“OK”。

2) 要抓取 XML 站点地图中的 Hreflang,请在 ‘Config > Spider > Crawl’ 下选择 ‘Crawl Linked XML Sitemaps’

然后选择通过 robots.txt 发现 XML 站点地图(这需要一个 ‘Sitemap: https://www.example.com/sitemap.xml’ 条目),或者提供 XML 站点地图的目标地址。

审核 Hreflang 站点地图

如果 hreflang 是通过链接元素或 HTTP 标头实现的,则无需执行此步骤。

如果您不确定 hreflang 是否已实施或如何实施,请无论如何抓取 XML 站点地图,SEO Spider 将发现任何具有 hreflang 注释的地方。

3) 要抓取多个域,请选择 ‘Config > CDNs’

如果您在多个域中设置了 hreflang,则默认情况下不会完全审查来自外部域的页面。会检查外部 URL 的状态,但不会下载 HTML 以查看是否存在任何返回链接。

为确保下载和处理这些页面,应将 hreflang 中引用的任何外部域添加为 CDN ‘Configuration > CDNs’。

用于抓取多个域的 CDN 配置。

然后,只要选中了抓取 hreflang 选项 ‘Configuration > Spider > Crawl Hreflang’,来自这些域的任何 URL 都会被视为内部页面,因此会被完全抓取并处理其 HTML。

如果 hreflang 设置是通过 XML 站点地图进行的,请确保还包括任何外部站点地图 如上所述

4) 抓取网站

打开 SEO Spider,在“Enter URL to spider”框中键入或复制要抓取的网站,然后点击“Start”。

抓取站点以审核 hreflang

将抓取网站,并且将发现 HTML 中的 rel=”alternate” hreflang 注释、通过 HTTP 标头或在 XML 站点地图中发现。

现在喝杯咖啡,等待进度条达到 100%,抓取完成。

5) 查看 Hreflang 选项卡

Hreflang 选项卡 显示在抓取中找到的所有 URL,并将在主窗口窗格右侧的列中显示 URL 发现和引用的任何 rel=”alternate” hreflang 注释。“Occurences”计算已发现的每个 URL 的 hreflang 数量。

Hreflang 选项卡有 13 个过滤器(如下图所示),可帮助您识别常见的 SEO 问题。

hreflang 选项卡

在抓取期间或抓取结束时,可以立即查看 13 个过滤器中的 12 个。“unlinked hreflang URLs”过滤器需要在抓取结束时通过帖子“Crawl Analysis”进行计算,才能填充数据(稍后会详细介绍)。

右侧的“overview”窗格针对此过滤器显示一条“(Crawl Analysis Required)”消息,该消息需要进行抓取后分析才能填充数据。

hreflang 过滤器抓取分析

6) 点击 ‘Crawl Analysis > Start’ 以填充 Hreflang 过滤器

要填充“unlinked hreflang URLs”过滤器,您只需点击一个按钮即可开始 抓取分析

开始抓取分析

但是,如果您之前配置了“Crawl Analysis”,您可能希望在“Crawl Analysis > Configure”下仔细检查是否勾选了“Hreflang”。

您还可以取消勾选其他也需要抓取后分析的项目,以加快此步骤。

hreflang 的抓取后分析

抓取分析完成后,“analysis”进度条将达到 100%,并且过滤器将不再显示“(Crawl Analysis Required)”消息。

hreflang 未链接的 urls 过滤器已填充

7) 点击 ‘Hreflang’ 并查看已填充的过滤器

执行抓取后分析后,所有 hreflang 过滤器现在都将填充适用的数据。

hreflang 测试工具

然后可以在列中查看收集的 hreflang 数据,以确保实施符合要求。您可以按以下 SEO 相关项目进行过滤 -

  • Contains Hreflang – 这些只是具有来自任何实施的 rel=”alternate” hreflang 注释的任何 URL,无论是链接元素、HTTP 标头还是 XML 站点地图。
  • Non-200 Hreflang URLs – 这些是包含 rel=”alternate” hreflang 注释的 URL,这些注释没有 200 响应代码,例如 robots.txt 阻止的 URL、没有响应、3XX(重定向)、4XX(客户端错误)或 5XX(服务器错误)。Hreflang URL 必须可抓取和可索引,因此非 200 URL 被视为错误,并且会被搜索引擎忽略。可以在下窗口“URL Details”窗格中看到非 200 hreflang URL,并带有“non-200”确认状态。它们可以通过“Reports > Hreflang > Non-200 Hreflang URLs”导出批量导出。
  • Unlinked Hreflang URLs – 这些是包含一个或多个 hreflang URL 的页面,这些 URL 只能通过其 rel=”alternate” hreflang 链接注释发现。Hreflang 注释不会像传统的锚标记那样传递 PageRank,因此这可能表明内部链接存在问题,或者 hreflang 注释中包含的 URL 存在问题。如果在多个域中设置了 hreflang,并且您只抓取单个域,则会标记此问题。考虑使用 CDNs 功能在此方案中抓取多个域。要准确找出这些页面上的哪些 hreflang URL 未链接,请使用“Reports > Hreflang > Unlinked Hreflang URLs”导出。
  • Missing Return Links – 这些是从其备用页面缺少返回链接(或 Google Search Console 中的“返回标记”)的 URL。Hreflang 是互惠的,因此所有备用版本都必须确认关系。当页面 X 使用 hreflang 链接到页面 Y 以将其指定为备用页面时,页面 Y 必须具有返回链接。没有返回链接意味着 hreflang 注释可能会被忽略或无法正确解释。可以在下窗口“URL Info”窗格中看到缺少返回链接的 URL,并带有“missing”确认状态。它们可以通过“Reports > Hreflang > Missing Return Links”导出批量导出。
  • Inconsistent Language & Region Return Links – 此过滤器包括具有不一致的语言和区域返回链接的 URL。这是指返回链接具有与 URL 自身引用的语言或区域值不同的情况。可以在下窗口“URL Details”窗格中看到不一致的语言返回 URL,并带有“Inconsistent”确认状态。它们可以通过“Reports > Hreflang > Inconsistent Language Return Links”导出批量导出。
  • Non Canonical Return Links – 具有非规范 hreflang 返回链接的 URL。Hreflang 应仅包含 URL 的规范版本。因此,此过滤器会拾取转到非规范版本的 URL 的返回链接。可以在下窗口“URL Details”窗格中看到非规范返回 URL,并带有“Non Canonical”确认状态。它们可以通过“Reports > Hreflang > Non Canonical Return Links”导出批量导出。
  • Noindex Return Links – 具有“noindex”meta 标记的返回链接。集合中的所有页面都应该是可索引的,因此任何具有“noindex”的返回 URL 都可能导致 hreflang 关系被忽略。可以在下窗口“URL Details”窗格中看到 noindex 返回链接 URL,并带有“noindex”确认状态。它们可以通过“Reports > Hreflang > Noindex Return Links”导出批量导出。
  • Incorrect Language & Region Codes – 这只是验证 语言(采用 ISO 639-1 格式)和可选 区域(采用 ISO 3166-1 Alpha 2 格式)代码值是否有效。可以在下窗口“URL Details”窗格中查看不受支持的 hreflang 值,并带有“invalid”状态。
  • Multiple Entries – 具有多个语言或区域代码条目的 URL。例如,如果页面 X 使用相同的“en”hreflang 值注释链接到页面 Y 和 Z。此过滤器还将拾取多个实施,例如,如果 hreflang 注释被发现为链接元素并通过 HTTP 标头。
  • Missing Self Reference – 缺少自己的自引用 rel=”alternate” hreflang 注释的 URL。以前需要具有自引用 hreflang,但 Google 已更新其指南以说明这是可选的。但是,包含自引用属性是一种好的做法,而且通常更容易。
  • Not Using Canonical – 未在其自己的 hreflang 注释中使用页面上的规范 URL 的 URL。Hreflang 应仅包含 URL 的规范版本。也可以在下窗口“URL Details”窗格中看到此信息,并带有“Not using canonical”确认状态。
  • Missing X-Default – 缺少 X-Default hreflang 属性的 URL。这是可选的,不一定是错误或问题。
  • Missing – 完全缺少 hreflang 属性的 URL。当然,如果页面没有多个版本,这些可能是有效的。
  • Outside <head> – 具有位于 HTML 中 head 元素之外的 hreflang 链接元素的页面。hreflang 链接元素应位于 head 元素内,否则搜索引擎将忽略它。

8) 查看下窗口窗格 ‘URL Details’ 选项卡以查看错误

底部的“URL Details”选项卡显示有关遇到的特定 hreflang 错误的有用细粒度信息。

Hreflang 下窗口窗格

例如,对于“Noindex Return Links”过滤器,它将显示备用页面的“hreflang confirmation status”。如下例所示,您可以看到哪些 URL 已标记为“noindex”。

noindex 确认链接

然后可以通过“Reports > Hreflang > Noindex Return Links”批量导出这些链接。

另一个例子直接来自 Google。是的,即使是 Google 也发现很难正确设置 hreflang!Google 在其 XML 站点地图中包含 hreflang 注释,并且存在许多问题。查看 Google 的搜索 XML 站点地图 (https://www.google.com/sitemap\_search.xml),我们可以看到它有 169 个“Incorrect Language & Region Codes”。

XML 站点地图中的每个 URL 都有 362 个 hreflang,手动审核将非常痛苦。但是,通过使用“Incorrect Language & Region Codes”过滤器,然后查看(或导出和过滤)下窗口“URL Info”选项卡,您可以快速识别具有“invalid”状态的“language code valid”列。

无效的 hreflang 语言代码

查看 ISO 639-1 语言代码列表,您可以看到“fl”不是菲律宾语的有效语言,它应该是“tl”。

9) 使用 ‘Reports > Hreflang > X’ 导出批量导出源 URL 和错误

要批量导出包含 hreflang 错误或问题的源页面的详细信息,请使用“Reports > Hreflang”选项。

例如,“Reports > Hreflang > Non-200 Hreflang URLs”导出将包含包含 rel=”alternate” hreflang 注释的源页面的详细信息,这些注释指向错误或重定向的确切 URL。

hreflang 报告

这有时比在用户界面中更容易理解,因为源 URL 和 hreflang 链接包含在单独的行中。

进一步支持

上面的指南应有助于说明使用 SEO Spider 工具测试和验证网站上的 hreflang 注释所需的简单步骤。

另请阅读我们的 Screaming Frog SEO Spider 常见问题解答 和完整的 用户指南,以获取有关该工具的更多信息。

如果您对 SEO Spider 工具中的 hreflang 测试有任何其他疑问,请通过 support 联系我们。