关于管理抓取预算的大型网站所有者指南

概览

本指南介绍了如何优化 Google 对超大型频繁更新的网站的抓取。

如果您的网站中没有大量经常更新的网页,或者您的网页似乎是在发布当日就被抓取,那么您无需阅读本指南;只需及时更新站点地图并定期检查索引涵盖范围即可。

如果您的内容已发布一段时间,但从未编入索引,则是另外一个问题;请改用网址检查工具查明网页未编入索引的原因。

本指南的适用对象

这是一个高级指南,适用于:

  • 内容更改频率比较频繁(每周一次)的大型网站(独特网页数量超过 100 万个),或者
  • 内容每日更改速度非常快的中大型网站(独特网页数量超过 10000 个)。

请注意,上文提供的数字只是大致估算值,旨在帮助您对网站进行分类。这些数字并不是精确的阈值。目录

抓取的一般理论

网络是一个近乎无限的空间,超出了 Google 浏览每个可用网址并将其编入索引的能力。因此,Googlebot 能花在抓取任意单个网站上的时间是有限的。Google 在抓取网站上投入的时间和资源通常称为网站的“抓取预算”。请注意,并非从您网站上抓取的所有内容都一定会编入索引;我们必须对每个网页进行评估和整合,确定在抓取该网页后是否将其编入索引。

抓取预算由两个主要元素决定:抓取容量上限和抓取需求。

抓取容量上限

Googlebot 希望在抓取您的网站时,不会导致您的服务器过载。为防止出现这种情况,Googlebot 会计算抓取容量上限(即 Googlebot 最多可以使用多少同时载入的并行连接来抓取网站),以及它在完成一次抓取后需要等待多久才能执行下一次抓取。计算此值是为了既涵盖您的所有重要内容,又不会导致您的服务器负载过重。

抓取容量上限可能会升高或降低,具体取决于下面这几个因素:

  • 抓取状况:如果网站在一段时间内的响应速度很快,抓取速度上限便会升高,这意味着 Googlebot 可以使用更多的连接进行抓取。如果网站运行速度变慢或出现服务器错误,这一上限便会降低,因而 Googlebot 能抓取的网页就会减少。
  • 网站所有者在 Search Console 中设定的抓取速度上限:网站所有者可以视需要降低 Googlebot 对其网站的抓取速度。但请注意,设置更高的抓取速度上限并不会自动提高抓取速度。
  • Google 的抓取上限:虽然 Google 的计算机数量很多,但不是无穷尽的。我们仍需根据自己的资源做出选择。

抓取需求

通常,Google 会根据需要将尽可能多的时间用在抓取网站上,具体要考虑该网站的规模、更新频率、网页质量和相关性(与其他网站相比)。

下面这几个因素在确定抓取需求方面起着重要作用:

  • Google 感知到的网址目录:如果没有您的引导,Googlebot 会尝试抓取它在您网站上发现的所有或大多数网址。如果这些网址中有很多是重复的,或者由于其他某种原因(已被移除、不重要等)而不应被抓取,则 Google 会浪费大量时间抓取您的网站。这是最需要您积极控制的因素。
  • 热门程度:Googlebot 对互联网上较为热门的网址的抓取往往会更频繁,以便在我们的索引中及时更新这些网址的内容。
  • 过时性:我们的系统希望尽可能频繁地重新抓取文档,以便纳入任何更改。

此外,诸如网站迁移之类的网站级事件也可能会导致抓取需求上升,以便将新网址下的内容重新编入索引。

总结

在综合考虑了抓取容量和抓取需求之后,Google 将网站的“抓取预算”定义为 Googlebot 可以且希望抓取的一组网址。即使未达到抓取容量上限,如果抓取需求较低,Googlebot 也会降低对您网站的抓取频率。Google,多给我提供一些抓取预算吧!Google 会根据热门程度、用户价值、独特性和服务器容量来确定向每个网站提供的抓取资源量。增加抓取预算的唯一方法是提升抓取的服务器容量,(更为重要的是)提高您网站上的内容对搜索用户的价值。

最佳做法

请遵循以下最佳做法,以便最大限度地提高抓取效率:

  • 管理网址目录:使用适当的工具告知 Google 要抓取哪些网页和不抓取哪些网页。如果 Google 花费太多时间抓取不适合编入索引的网址,Googlebot 就可能认为不值得花时间查看您网站的其余部分(或为此增加您的预算)。
    • 整合重复内容。消除重复内容,将重点放在抓取独特内容(而不是独一无二的网址)上。
    • 禁止 Google 抓取不应编入索引的网址。某些网页可能对用户很重要,但不应显示在搜索结果中。例如,在链接页上显示重复信息的无限滚动网页,或以不同方式排序的同一网页。如果您无法按照第 1 条中的说明整合此类网页,请使用 robots.txt 或网址参数工具(针对可通过网址参数获取的重复内容)屏蔽这些对搜索引擎来说不重要的网页。请勿使用 noindex,因为 Google 依然会请求抓取相应网页,但是在看到 noindex 标记后却放弃抓取,从而浪费抓取时间。请勿使用 robots.txt 暂时腾出用于其他网页的抓取预算;而是使用 robots.txt 屏蔽您认为我们根本不应抓取的网页或资源。除非 Google 已达到您网站的服务上限,否则 Google 不会将这笔腾出的抓取预算转移给其他网页。
    • 针对永久移除的网页返回 404/410 错误。Google 不会忘记自己发现的网址,但 404 会明确地告知 Google 不应再次抓取该网址。但是,已屏蔽的网址将会在抓取队列中保留更长时间,并会在取消屏蔽后被重新抓取。
    • 消除返回软 404 代码的网页。返回软 404 代码的网页将会继续被抓取,并会浪费您的预算。请查看“索引涵盖范围”报告中是否含有软 404 错误。
    • 及时更新站点地图。Google 会定期读取您的站点地图,因此请务必添加您希望 Google 抓取的所有内容。如果您的网站包含更新后的内容,我们建议您添加 <lastmod> 标记。
    • 避免使用很长的重定向链,以免对抓取产生负面影响。
  • 提高网页的加载速度。如果 Google 能够更快速地加载和呈现您的网页,我们或许可以从您的网站中读取更多内容。
  • 监控网站抓取情况。监控您的网站在抓取过程中是否会出现可访问性问题,并寻找其他方式来提高抓取效率。

监控网站的抓取和索引编制情况

以下是监控网站抓取配置文件的关键步骤:

  1. 查看 Googlebot 是否在您的网站上遇到了可访问性问题
  2. 查看您是否有未被抓取但应被抓取的网页
  3. 查看是否需要提高网站某个部分的抓取速度
  4. 提高您网站的抓取效率
  5. 处理过度抓取您网站的问题

1. 查看 Googlebot 是否在您的网站上遇到了可访问性问题

改善您网站的可访问性不一定会增加您的抓取预算;如前所述,Google 会根据抓取需求确定最佳抓取速度。但是,可访问性问题确实会导致 Google 无法按照期望的速度抓取您的网站。

诊断

您可以在“抓取统计信息”报告中查看 Googlebot 对您网站的抓取历史记录。该报告会显示 Google 何时在您的网站上遇到了可访问性问题。如果系统针对您的网站报告了可访问性错误或警告,请在 Host availability 图表中查找 Googlebot 请求超出上限(用红线表示)的实例,点击进入图表查看哪些网址未通过,并尝试将这些网址与您网站上的问题关联起来。

解决方案

  • 请查看“抓取统计信息”报告文档,了解如何查找和处理一些可访问性问题。
  • 禁止抓取不应被抓取的网页。(请参阅管理您的网址目录
  • 提高网页加载速度和呈现速度。(请参阅提高您的网站抓取效率
  • 增加服务器容量。如果 Google 在抓取网站时似乎一直达到服务容量上限,但您仍有一些重要网址的抓取和更新频率达不到其所需频率,那么,提供更多服务资源也许使 Google 能够请求您网站上的更多网页。请在“抓取统计信息”报告中查看您的主机可访问性历史记录,了解 Google 的抓取速度是否经常超出上限。如果是,请增加服务资源达一个月,并查看抓取请求数在这一时间段内是否增加了。

2. 查看您网站的任意部分是否未被抓取但应被抓取

Google 会在您的网站上花费尽可能多的时间,以便将其能够找到的所有对用户有价值的高品质内容编入索引。如果您认为 Googlebot 遗漏了重要内容,可能是因为它不知道该内容、该内容已对 Google 屏蔽,或者您的网站可访问性限制了 Google 的访问权限(或者 Google 在尽力不让您的网站负载过重)。请注意抓取和索引编制之间的区别。本页的主题是如何帮助 Google 高效地抓取您的网站,而不是所发现的网页是否会编入索引。

诊断

Search Console 不会为您的网站提供可以按网址或路径过滤的抓取历史记录,但您可以检查网站日志,看看特定网址是否已被 Googlebot 抓取。这些已抓取的网址是否已被编入索引就另当别论了。

请注意,对于大多数网站,新网页至少需要几天时间才能被发现;大多数网站的网址都不会在当天被抓取,但新闻网站等具有时效性的网站除外。

解决方案

如果您向网站添加了网页,但这些网页未在合理的时间内被抓取,可能是因为 Google 不知道这些网页、相关内容已被屏蔽、您的网站已达到服务器容量上限,或者您已超出抓取预算

  1. 将新网页告知 Google:更新站点地图以反映新网址。
  2. 检查您的 robots.txt 规则,确认您没有意外屏蔽网页。
  3. 如果您的所有未被抓取的网页都有网址参数,那么您的网页可能因网址参数工具中的设置而被排除;遗憾的是,您无法检查此类排除内容,因此我们通常建议您不要使用该工具。
  4. 查看抓取优先级(也就是明智地使用抓取预算)。管理您的网址目录提高您的网站抓取效率
  5. 确保您没有用完服务容量。如果 Googlebot 检测到您的服务器在响应抓取请求时遇到问题,将会降低抓取速度。

请注意,如果相关内容没有足够的价值或用户需求,那么即使网页被抓取也可能不会显示在搜索结果中。

3. 看看更新内容的抓取速度是否足够快

如果我们遗漏了您网站上的新网页或更新过的网页,可能是因为我们没有发现这些网页,或者没有注意到这些网页已更新。您可以通过以下方式帮助我们了解网页更新。

请注意,Google 一直在努力及时检查网页并将其编入索引。对于大多数网站,此过程至少需要三天的时间。除非您的网站是新闻网站或包含其他高价值、极具时效性的内容,否则不要指望 Google 会在您发布网页的当天将其编入索引。

诊断

检查您的网站日志,了解 Googlebot 何时抓取了特定网址。

若要了解编入索引的日期,请使用网址检查工具或在 Google 上搜索您更新的网址。

解决方案

正确做法:

应避免的做法:

  • 每天多次提交同一个未更改的站点地图。
  • 期望 Googlebot 抓取站点地图中的所有内容,或立即抓取这些内容。站点地图可以为 Googlebot 提供实用的建议,而不是绝对要求。
  • 向站点地图中添加不应显示在搜索结果中的网址。这可能会将您的抓取预算浪费在不应被编入索引的网页上。

4. 提高您的网站抓取效率

提高网页加载速度

Google 的抓取过程受带宽、时间和 Googlebot 实例的可用性的限制。如果您的服务器能够更快地响应请求,我们或许就可以抓取您网站上的更多网页。即便如此,Google 只想抓取优质内容,因此单靠提高质量低劣网页的加载速度并不能鼓励 Googlebot 抓取您网站上的更多内容;相反,如果我们认为我们遗漏了您网站上的优质内容,可能会增加您的预算来抓取这些内容。

您可以通过以下方法优化您的网页和资源以供抓取:

  • 使用 robots.txt 阻止 Googlebot 加载较大而不重要的资源。确保仅屏蔽非关键资源,即对理解网页含义无关紧要的资源(如装饰图片)。
  • 确保网页能够快速加载。
  • 留意很长的重定向链,以免对抓取产生负面影响。
  • 响应服务器请求花费的时间以及呈现网页所需的时间都很重要,包括嵌入式资源(例如图片和脚本)的加载时间和运行时间。请注意需要编入索引的较大或加载速度缓慢的资源。

隐藏不应显示在搜索结果中的网址

将服务器资源浪费在不必要网页上会减少对您很重要的网页被抓取的机会,这可能会显著延迟我们在网站上发现精彩新内容或更新后内容的时间。除非 Google 已达到您网站的服务上限,否则屏蔽或隐藏已抓取的网页以免被重新抓取,并不会将您的抓取预算转移到您网站的其他部分。

公开您网站上很多不应被搜索引擎抓取的网址,可能会不利于对网站进行抓取并将其编入索引。通常,这些网址分为以下类别:

  • 分面导航会话标识符:(分面导航通常是来自网站的重复内容;会话标识符以及其他仅用于排序或过滤网页的网址参数不会提供新内容。)使用 robots.txt 屏蔽分面导航网页。如果您发现 Google 抓取了您网站上大量包含不同参数而本质上重复的网址,请考虑屏蔽参数化重复内容
  • 重复内容:帮助 Google 识别重复内容,以避免不必要的抓取。
  • 软 404 网页:当网页不再存在时,返回 404 代码。
  • 被黑网页:请务必查看“安全问题”报告,并修正或移除所发现的所有被黑网页。
  • 无限空间和代理:使用 robots.txt 禁止 Googlebot 抓取这些内容。
  • 低劣品质和垃圾内容:显然,最好避免此类内容。
  • 购物车网页、无限滚动网页和执行某项操作的网页(例如“注册”或“立即购买”网页)。

正确做法:

  • 如果您认为我们根本不应该抓取某项资源或某个网页,请使用 robots.txt。
  • 如果在多个网页(例如共享的图片或 JavaScript 文件)中重复使用了相同的资源,请在每个网页中通过同一个网址引用该资源,以便 Google 可以缓存和重复使用同一项资源,而无需多次请求同一项资源。

应避免的做法:

  • 定期在 robots.txt 中添加或从中移除网页或目录,以便为您的网站“腾出”一些额外的抓取预算。请仅对不应长时间在 Google 中显示的网页或资源使用 robots.txt。
  • 交换站点地图或使用其他临时隐藏机制“腾出更多预算”。

warning 减少紧急抓取

Googlebot 会通过算法来避免您的网站因抓取请求而负载过重。不过,如果您发现 Googlebot 会让您的网站负载过重,可以采取一些应对措施。

诊断

监控服务器,查看 Googlebot 向您网站发出的请求是否过多。

解决方案

在紧急情况下,我们建议您按照以下步骤放慢 Googlebot 的抓取速度:

  1. 当服务器负载过重时,针对 Googlebot 请求暂时返回 503/429 HTTP 结果代码。Googlebot 会重新尝试抓取这些网址大约 2 天。请注意,如果在数日内返回“no availability”代码,会导致 Google 永久减慢对您网站上网址的抓取速度或永久停止抓取这些网址,因此您应该另外执行以下操作。
  2. 减慢 Googlebot 对您网站的抓取速度。此操作最长可能需要 2 天才能生效,并且需要 Search Console 资源所有者权限。只有当“抓取统计信息”报告的 Host availability > Host utilization 图表中显示 Google 长期屡次进行过度抓取时,才能执行此操作。
  3. 当抓取速度变慢时,不再针对抓取请求返回 503/429;返回 503 的时间超过 2 天会导致 Google 从索引中移除 503 网址。
  4. 持续监控您的抓取和主机容量,并在适当时再次提高抓取速度,或允许使用默认抓取速度。
  5. 如果存在问题的抓取工具是某个 AdsBot 抓取工具,那么问题可能在于您为 Google 尝试抓取的网站创建了动态搜索广告定位条件。系统每 2 周会再次进行该抓取。如果您的服务器容量不足以处理这类抓取,您应限制广告定位条件或增加服务器容量。

关于抓取的谬论和事实

压缩我的站点地图会增加我的抓取预算

  • 不会。压缩后的站点地图仍必须从服务器中提取,因此,发送压缩后的站点地图并不能让 Google 节省太多的抓取时间或工作量。

Google 会优先抓取较新的内容,因此我最好不断微调自己的网页

  • 内容是按质量评分的,与新旧无关。请根据需要创建和更新您的内容,但通过做出一些无关紧要的更改及更新网页日期来人为地使网页看似是最新的,并不能带来额外价值。

Google 会优先抓取旧内容(具有更高的权重),而不是新内容

  • 错误:如果您的网页很实用,那就很实用,与新旧无关。

Google 会优先抓取简洁网址,并且不喜欢查询参数

小型网站的抓取频率不及大型网站

  • 错误:如果某个网站包含经常变更的重要内容,我们便会经常抓取该网站,无论其规模如何。

内容越靠近首页,对 Google 来说就越重要

  • 部分正确:网站的首页通常是网站中最重要的网页,因此直接链接到首页的网页可能会被视为更重要,因此抓取频率更高。不过,这并不意味着这些网页的排名会高于您网站上的其他网页。

网页的加载速度和呈现速度越快,被 Google 抓取的几率就越大

  • 一方面是正确的,因为我们的资源同时受到时间与抓取漫游器数量的限制。如果您可以在有限的时间内向我们提供更多网页,我们能够抓取的网页就越多。但是,我们可能会将更多时间投入到抓取包含更重要信息的网站上,即使该网站的运行速度可能更慢。对您来说,让用户更快速地看到您的网站内容可能比提高网站速度以扩大您的抓取涵盖范围更重要。帮助 Google 抓取正确的内容比每次都抓取所有内容要简单得多。
  • 请注意,抓取网站涉及检索和呈现内容。呈现网页所花费的时间与请求网页所花费的时间一样重要。因此,提高网页的呈现速度也会提高抓取速度。

网址版本控制是鼓励 Google 重新抓取我的网页的好方法

  • 部分正确:如果为了吸引 Google 尽快重新抓取您的网页,而对该网页使用经过版本控制的网址,这么做或许是可行的,但通常没有必要这样做,而且如果该网页实际上并未更改,则会浪费抓取资源。一般而言,包含 <lastmod> 值的站点地图是向 Google 指明内容已更新的最佳方式。如果您使用了经过版本控制的网址指明新内容,则只有在网页内容发生有意义的更改时才能更改网址。

网站速度和错误会影响我的抓取预算

  • 正确:使网站运行速度变快既能改善用户体验,又能提高抓取速度。对于 Googlebot 来说,网站运行速度快表明服务器运转正常,因此它可以通过相同数量的连接获得更多的网站内容。反之,出现大量的 5xx HTTP 结果代码(服务器错误)或连接超时情况则表明服务器运转不正常,因此 Googlebot 的抓取速度会下降。
  • 我们建议您密切关注 Search Console 中的“抓取统计信息”报告,并让服务器错误的数量保持较低水平。

抓取是一项排名因素

  • 错误:提高抓取速度未必会使网站在搜索结果中的排名升高。Google 会根据多种因素对结果进行排名,虽然抓取对于让网页显示在搜索结果中必不可少,但它不是一项排名因素。

备用网址和嵌入式内容会被计入抓取预算中

  • 正确:通常,Googlebot 所抓取的任何网址都会被计入网站的抓取预算中。AMP 或 hreflang 等备用网址以及 CSS 和 JavaScript 等嵌入式内容(包括 XHR 提取)可能必须被抓取,此时它们将会耗用网站的抓取预算。

我可以使用“crawl-delay”指令控制 Googlebot

  • 错误:“crawl-delay”不是一项标准的 robots.txt 指令,所以 Googlebot 不会处理它。

nofollow 指令会影响抓取预算

  • 部分正确:被抓取的任意网址都会影响抓取预算,因此即使您的网页将某个网址标记为 nofollow,只要您网站上的其他网页或网络上的任何网页未将相应链接标记为 nofollow,Googlebot 就仍会抓取该网址。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注