本指南介绍了如何优化 Google 对频繁更新的超大型网站的抓取。
如果您的网站中没有大量经常更新的网页,或者您的网页一般在发布当日就被抓取,那么您无需阅读本指南;只需及时更新站点地图并定期检查索引涵盖范围即可。
如果您的内容已发布一段时间,但从未被编入索引,这便是另外一个问题了;请改用网址检查工具以查明网页未编入索引的原因。
这是一个高级指南,适用于:
网络是一个近乎无限的空间,Google 无法浏览每个可用网址并将其编入索引。因此,Googlebot 能花在抓取任意单个网站上的时间是有限的。Google 在抓取网站上投入的时间和资源通常称为网站的“抓取预算”。请注意,并非从您网站上抓取的所有内容都一定会编入索引;我们必须对每个网页进行评估和整合,以确定在抓取该网页后是否将其编入索引。
抓取预算由两个主要元素决定:抓取容量上限和抓取需求。
Googlebot 不希望在抓取您的网站时,导致您的服务器过载。为防止出现这种情况,Googlebot 会计算抓取容量上限,即 Googlebot 最多可以使用多少同时载入的并行连接来抓取网站,以及各次抓取之间的时间延迟。计算抓取容量上限是为了既能涵盖您的所有重要内容,又不会导致您的服务器负载过重。
抓取容量上限可能会升高或降低,具体取决于下面这几个因素:
通常,Google 在抓取网站时会根据需要来分配抓取时间,具体取决于该网站的规模、更新频率、网页质量和相关性(与其他网站相比)。
下面这几个因素在确定抓取需求方面起着重要作用:
此外,诸如网站迁移之类的网站级事件也可能会导致抓取需求上升,以便将新网址下的内容重新编入索引。
在综合考虑了抓取容量和抓取需求之后,Google 将网站的“抓取预算”定义为 Googlebot 可以且希望抓取的一组网址。即使未达到抓取容量上限,如果抓取需求较低,Googlebot 也会降低对您网站的抓取频率。
请遵循以下最佳实践,以便最大限度地提高抓取效率:
404
或 410
状态代码。Google 不会忘记自己发现的网址,但 404
状态代码会明确告知 Google 不要再次抓取该网址。 但是,被屏蔽的网址将会在您的抓取队列中保留较长一段时间,并会在取消屏蔽后被重新抓取。soft 404
错误。系统会继续抓取 soft 404
网页,这会浪费您的预算。请查看“索引涵盖范围”报告中是否存在 soft 404
错误。<lastmod>
标记。以下是监控您网站的抓取配置文件的关键步骤:
改善网站的可用性不一定会增加抓取预算;如前所述,Google 会根据抓取需求来确定最佳抓取速度。但是,可用性问题确实会导致 Google 无法按照其期望的频率来抓取您的网站。
诊断:
在“抓取统计信息”报告中查看 Googlebot 对您网站的抓取历史记录。该报告会显示 Google 何时在您的网站上遇到了可用性问题。如果系统针对您的网站报告了可用性错误或警告,请在主机可用性图表中查找 Googlebot 请求超出上限(用红线表示)的实例,点击进入图表查看哪些网址不可用,并尝试将这些网址与您网站上的问题关联起来。
此外,您还可以使用网址检查工具测试您网站上的多个网址。如果该工具返回已超出主机负载警告,则表示 Googlebot 从您的网站中抓取的网址会少于它在其中发现的网址。
解决方案:
Google 会在您的网站上花费尽可能多的时间,以便将其能够找到的所有对用户有价值的高品质内容编入索引。如果您认为 Googlebot 遗漏了重要内容,可能是因为它不知道该内容、该内容已对 Google 屏蔽,或者您的网站可用性限制了 Google 的访问权限(或者 Google 在尽力不让您的网站负载过重)。
诊断:
Search Console 不会为您的网站提供可以按网址或路径过滤的抓取历史记录,但您可以检查网站日志,看看特定网址是否已被 Googlebot 抓取。这些已抓取的网址是否已被编入索引就另当别论了。
请注意,对于大多数网站,新网页至少需要几天时间才能被发现;大多数网站的网址都不会在当天被抓取,但新闻网站等具有时效性的网站除外。
解决方案:
如果您向网站添加了网页,但这些网页未在合理的时间内被抓取,可能是因为 Google 不知道这些网页、相关内容已被屏蔽、您的网站已达到服务器容量上限,或者您已超出抓取预算。
请注意,如果相关内容没有足够的价值或用户需求,那么即使网页被抓取,也可能不会显示在搜索结果中。
如果我们遗漏了您网站上的新网页或更新过的网页,可能是因为我们没有发现这些网页,或者没有注意到这些网页已更新。您可以通过以下方式帮助我们了解网页更新。
请注意,Google 一直在努力及时检查网页并将其编入索引。对于大多数网站,此过程至少需要三天的时间。除非您的网站是新闻网站或包含其他高价值、极具时效性的内容,否则不要指望 Google 会在您发布网页的当天将其编入索引。
诊断:
检查您的网站日志,了解 Googlebot 何时抓取了特定网址。
若要了解编入索引的日期,请使用网址检查工具或在 Google 上搜索您更新的网址。
解决方案:
正确做法:
<lastmod>
标记指明编入索引的网址的更新时间。<a>
链接,以便 Google 找到您的网页。应避免以下做法:
Google 的抓取过程受带宽、时间和 Googlebot 实例可用性的限制。 如果您的服务器能够更快地响应请求,我们或许可以抓取您网站上的更多网页。即便如此,Google 只想抓取优质内容,因此单靠提高质量低劣网页的加载速度并不能鼓励 Googlebot 抓取您网站上的更多内容;相反,如果我们认为我们遗漏了您网站上的优质内容,可能会增加预算来抓取这些内容。
您可以通过以下方法优化您的网页和资源以供抓取:
Google 通常支持使用 If-Modified-Since
和 If-None-Match
HTTP 请求标头进行抓取。Google 抓取工具不会在每次尝试抓取时都发送标头;这取决于请求的用例(例如,AdsBot 更有可能设置 If-Modified-Since
和 If-None-Match
HTTP 请求标头)。如果我们的抓取工具发送 If-Modified-Since
标头,则该标头的值就是上次抓取相应内容的日期和时间。服务器可能会根据该值选择返回不含响应正文的 304 (Not Modified)
HTTP 状态代码,在这种情况下,Google 会重复使用上次抓取的内容版本。如果内容晚于抓取工具在 If-Modified-Since
标头中指定的日期,服务器可能会返回包含响应正文的 200 (OK)
HTTP 状态代码。
如果自 Googlebot 上次访问相应网址后内容未发生更改,那么无论请求标头是什么,您都可以针对任何 Googlebot 请求发送没有响应正文的 304 (Not Modified)
HTTP 状态代码。这样可以节省服务器处理时间和资源,可能会间接提高抓取效率。
将服务器资源浪费在不必要网页上会减少真正重要网页被抓取的机会,这可能会显著延迟我们在网站上发现精彩新内容或更新后内容的时间。
如果 Google 搜索服务发现您网站上有很多不希望被抓取的网址,可能会对网站的抓取及索引编制造成不利影响。通常,这些网址分为以下类别:
soft 404
网页:当网页不再存在时,返回 404
代码。正确做法:
应避免以下做法:
Googlebot 会采用相关算法,以免您的网站因抓取请求而负载过重。 不过,如果您发现 Googlebot 会让您的网站负载过重,可以采取一些应对措施。
诊断:
监控服务器,查看 Googlebot 向您网站发出的请求是否过多。
解决方案:
在紧急情况下,我们建议您按照以下步骤放慢 Googlebot 的抓取速度:
503
或 429
HTTP 响应状态代码。Googlebot 会重新尝试抓取这些网址大约 2 天。请注意,如果在数日内返回“no availability”代码,会导致 Google 永久减慢对您网站上网址的抓取速度或永久停止抓取这些网址,因此请按照接下来的后续步骤继续操作。503
或 429
HTTP 响应状态代码;返回 503
或 429
的时间超过 2 天会导致 Google 从索引中移除这些网址。检验您对 Google 如何抓取网站并将其编入索引的了解程度。
nofollow
规则会影响抓取预算。noindex
来控制抓取预算。4xx
HTTP 状态代码的网页在浪费抓取预算。免费申请你的专属方案
Online Consulting