请勿使用 403 或 404 进行速率限制

2023 年 2 月 17 日,星期五

在过去几个月里,我们发现网站所有者和某些内容分发网络 (CDN) 在尝试使用 404 和其他 4xx 客户端错误(但不包括 429)来设法减慢 Googlebot 的抓取速度,并且这一情况呈现上升趋势。

简单来说,请不要这样做;我们提供了关于如何减慢 Googlebot 的抓取速度的文档。请改为阅读该文档,了解如何有效管理 Googlebot 的抓取速度。

回归根本:4xx 错误表示客户端错误

4xx 错误由服务器返回给客户端,这是服务器发出的信号,表明客户端请求在某种意义上发生了错误。这类错误大都良性的,比如“找不到”错误、“已禁止”和“我是茶壶”(没错,真的有这个错误)。它们并不意味着服务器本身有任何错误。

429 是一个例外,它代表“请求过多”。这个错误是一个明确的信号,用于告知任何运行得体的漫游器(包括深受喜爱的 Googlebot)需减慢速度,否则会导致服务器过载。

为什么 4xx 错误(429 除外)不适合用于对 Googlebot 进行速率限制

客户端错误就是指客户端发生了错误。它们通常不是表示服务器出现错误:不是过载、不是遇到严重错误和无法响应请求。它们只是意味着客户端请求由于某种原因而无效。例如,将 404 错误等同于服务器过载并不合理。想象一下这种情况:您的朋友意外链接到您网站上的错误页面,导致您收到大量 404 错误,从而导致 Googlebot 抓取速度变慢。这会非常糟糕。403410418 也是如此。

同样,429 状态代码是一个明显的意外,它表示“请求过多”。

使用 4xx 进行速率限制对 Googlebot 有什么影响

所有的 4xx HTTP 状态代码(同样地,429 除外)都会导致系统从 Google 搜索中移除您的内容。更糟糕的是,如果您对 robots.txt 文件返回 4xx HTTP 状态代码,则系统会解读为该文件不存在。如果你设置了禁止抓取私密内容的规则,那么现在 Googlebot 也会知道这类内容,这对双方而言有害无益。

如何以正确的方式减慢 Googlebot 的抓取速度

我们提供了关于如何减慢 Googlebot 的抓取速度以及 Googlebot(和搜索索引)如何处理不同的 HTTP 状态代码的详尽文档;请务必查看这些文档。简而言之,建议您执行以下任一操作:

如需获取更多提示或说明,请在 Twitter 上关注我们,或在我们的帮助论坛中发帖。