429 Too Many Requests(リクエスト過多)

HTTP 429ステータスの意味、Googleがレート制限とクロールのバックオフをどう扱うか、クロールバジェットへの影響、インデックス削除を招かずにサーバーから429を返す設定方法を解説します。

初回公開:2026年6月27日 · 最終更新:2026年8月22日 · Advanced
言語
このページには証拠シグナルが 2 件あります

429 Too Many Requestsは、Googleがクライアントエラーとして扱わない唯一の4xxコードです。十分な数の429を検出すると、Googleはそれをサーバー過負荷の信号として読み取り、5xxと同じグループに入れます。コンテンツを削除する代わりに、ホスト名全体でGooglebotのクロールレートを抑制します。これはクローラーを遅くするGoogle公認の正しい方法であり、403や404は使いません。ただし短期的な手段です。数時間から1〜2日にとどめ、ベストプラクティスとしてRetry-Afterヘッダーを送り、正しいトラフィックに適用してください。同じURLへの429が何日も続くと、そのURLがインデックスから外れる可能性があります。

TL;DR — 429は、Googleが5xxのように扱う唯一の4xxコードです。500/503/429レスポンスを一定数検出すると、Googleはそれをサーバー過負荷の信号と読み、コンテンツを削除する代わりに、Googlebotのクロールレートをホスト名全体で抑制します。クローラーを遅くするためにGoogleが推奨する唯一のコードであり、403や404は使いません。Googleの文書は緊急時の目安を「a couple of hours, or 1–2 days」 (翻訳)「数時間、または1〜2日」としています。安全な期間を保証するものではありません。同じURLへの429が続けば、URLが最終的にインデックスから外れるリスクがあり、エラー量が減るとスロットルは再び増加し始めます(必ずしも即時または完全ではありません)。RFC 6585は429が条件を説明することを推奨し、Retry-Afterを含めてもよいとしています。送るのは推奨実務であり、準拠の必須条件ではありません。正しいトラフィックに制限を適用し、例外を書く前にクローラーの身元を確認してください。

プロトコルレベルでの429

仕様をそのまま、MDNは次のように説明しています。「The HTTP 429 Too Many Requests client error response status code indicates the client has sent too many requests in a given amount of time. This mechanism of asking the client to slow down the rate of requests is commonly called ‘rate limiting.’」 (翻訳)「HTTP 429 Too Many Requestsクライアントエラーレスポンスステータスコードは、クライアントが一定時間内にリクエストを送りすぎたことを示します。クライアントにリクエストの速度を落とすよう求める仕組みは、一般に『レート制限』と呼ばれます。」 Evidence for this claim A 429 response means the user sent too many requests in a given time, and the response may include Retry-After. Scope: RFC 9110 defines the status and optional Retry-After field; it does not define a universal rate threshold. Confidence: high · Verified: IETF: RFC 9110 §15.5.20 — 429 Too Many Requests

RFC 6585 §4は、多くの要約より正確です。429の表現は条件を説明すべきであり、クライアントが再試行前に待つ具体的な秒数(RFC 9110ではHTTP日付も可)を示すRetry-Afterヘッダーを含めてもかまいません。Retry-Afterは推奨実務であり、準拠の必須条件ではありません。仕様は、クライアントをどう識別するか、リクエストをどう数えるかも定義していません。IP、セッション、APIキー、リソースごとなど、レスポンスを発行した側の実装ポリシーに任されています。見落としやすいもう1つのルールとして、RFC 6585では429レスポンスをキャッシュに保存してはなりません。健全なオリジンなのに429がキャッシュ済みまたは再生されたように見えるなら、オリジンが再び制限を判断したのではなく、中間層(CDN、プロキシ)の不具合です。

私はいつも、HTTPステータスコードとSEOへの影響 ガイドで、429を「a form of rate-limiting to protect the server because the client sent too many requests to the server too fast.」 (翻訳)「クライアントがサーバーへ高速にリクエストを送りすぎたため、サーバーを保護するレート制限の一形態」と平易に説明しています。名目上はクライアントエラーです。クライアントが要求しすぎたという意味で、クライアント側が間違えています。しかし、SEOの話が仕様から分岐するのは、まさにこの点です。

4xxコードにおける唯一の例外

このページで最も重要な事実は、Googleが429を4xxファミリーの他のコードと同じように扱わないことです。Gary Illyesは2023年2月、このことについてGoogle Search Centralのブログ記事全体を書きました。十分な数のサイトやCDNがGooglebotを抑えるために、見つからない応答を誤用していたため、Googleが止めるよう伝える必要があったのです。

彼のルールはこうです。「The one exception is 429, which stands for ‘too many requests’. This error is a clear signal to any well-behaved robot, including our beloved Googlebot, that it needs to slow down because it’s overloading the server.」 (翻訳)「唯一の例外は429で、too many requestsを意味します。このエラーは、私たちが愛するGooglebotを含む、適切に動作するすべてのロボットに、サーバーに過負荷をかけているため速度を落とす必要があるという明確な信号です。」そしてGoogleのステータスコードリファレンスには、「Don’t use 401 and 403 status codes for limiting the crawl rate. The 4xx status codes, except 429, have no effect on crawl rate.」 (翻訳)「クロールレートの制限に401や403のステータスコードを使わないでください。429を除く4xxステータスコードはクロールレートに影響しません。」とあります。

つまり、403と404がコンテンツを検索から削除する一方、429は一時的な低速化をもたらします。Googleは文字どおりサーバーエラーと同じ分類に入れています。「Google’s crawlers treat the 429 status code as a signal that the server is overloaded, and it’s considered a server error.」 (翻訳)「Googleのクローラーは429ステータスコードをサーバーが過負荷である信号として扱い、サーバーエラーとみなします。」 Evidence for this claim Google treats 429 as a server-overload signal that reduces crawl rate and recommends 429, 500, or 503 for temporary crawl reduction instead of other 4xx codes. Scope: Google's guidance covers Google crawler behavior and short-term overload; it does not promise indexing preservation during prolonged unavailability. Confidence: high · Verified: Google: Reduce Google crawl rate

この点が、429を503 Service Unavailable(従来のメンテナンス/一時利用不可の信号)の便利な姉妹コードにしています。そして、多くのファイアウォールがデフォルトで使うにもかかわらずレート制限には不適切な403 Forbiddenとは正反対です。

クロールレートへの影響はホスト名全体 — ただししきい値がある

ここでは2つの異なる範囲が混同されるため、分けて考える価値があります。レート制限をどう数え、何をキーにするか(IP、セッション、APIキー、リソース、サーバー単位)は、あなた自身のポリシーです。HTTP仕様は定義していません。Googleが観測したエラーをどう扱うかは別の、文書化された動作であり、単一のレスポンスではなく量が条件になります。「Google’s crawling infrastructure reduces your site’s crawling rate when it encounters a significant number of URLs with 500, 503, or 429 HTTP response status codes.」 (翻訳)「Googleのクロールインフラは、500、503、429 HTTPレスポンスステータスコードを返すURLを相当数検出すると、サイトのクロールレートを下げます。」しきい値に達すると、「the reduced crawl rate affects the whole hostname of your site (for example, subdomain.example.com), both the crawling of the URLs that return errors, as well as the URLs that return content.」 (翻訳)「低下したクロールレートは、サイトのホスト名全体(たとえばsubdomain.example.com)に影響し、エラーを返すURLとコンテンツを返すURLの両方が対象になります。」

つまり、たとえば重いAPIパスなど、ページの一部を実際に大量の429にすると、Googlebotはホスト名全体(まだ200を返しているページも含む)のクロールを遅くします。総負荷を減らすことが目的なら、通常これは意図した効果です。ただし、1つのパスに単独で出た429だけでは、ホスト名全体への影響が起きたとはいえません。Google自身の表現は、1件ではなくエラーレスポンスの「相当数」に範囲を限定しています。

Evidence for this claim When Google encounters a significant number of 500, 503, or 429 responses, its documented crawl-rate reduction affects the whole hostname, including error URLs and URLs still returning content; one isolated 429 does not establish that site-wide effect. Scope: hostname crawl-load incidents Confidence: high · Verified: Reduce Google crawl rate

1〜2日の指針 — 429が危険になるとき

429は短期的な信号であり、Googleは緊急時の具体的な利用目安を示しています。安全な期間や明確な境界を保証するものではありません。「reduce crawl rate」文書には、「If you need to urgently reduce the crawl rate for short period of time (for example, a couple of hours, or 1-2 days), then return 500, 503, or 429 HTTP response status code instead of 200 to the crawl requests.」 (翻訳)「短期間(たとえば数時間、または1〜2日)にクロールレートを緊急に下げる必要があるなら、クロールリクエストには200ではなく500、503、429 HTTPレスポンスステータスコードを返してください」とあります。

そこを超えると、Googleは約束ではなく可能性として、より危険な領域だと説明しています。「We don’t recommend that you do this for a long period of time (meaning, longer than 1-2 days) as it may have a negative effect on how your site appears in Google products… if Googlebot observes these status codes on the same URL for multiple days, the URL may be dropped from Google’s index.」 (翻訳)「長期間(1〜2日を超える期間)これを行うことは推奨しません。Google製品でのサイトの表示に悪影響を与える可能性があり、Googlebotが同じURLでこれらのステータスコードを複数日にわたり確認すると、URLがGoogleのインデックスから外れる可能性があります。」ステータスコードリファレンスも5xxと429について同じことを述べています。「already indexed URLs are preserved in the index, but eventually dropped.」 (翻訳)「すでにインデックスされたURLはインデックスに保持されますが、最終的には削除されます。」

リスクモデルを正直に言うと、短期的な429はGoogleが緊急利用に推奨する範囲に合います。同じURLへの429が複数日にわたって続くと、Google自身の文言が「may」「eventually dropped」に変わります。これは文書化されたリスクですが、どちらの結果も保証されたものではありません。長期間の503と同じ動きです。

クロールレートは自動的に回復する

安心できる反対側の話として、サイトに付きまとうペナルティフラグはありません。エラーが収まるとGoogleは「the crawl rate will automatically start increasing again.」 (翻訳)「クロールレートは自動的に再び増加し始める」と述べています。申請も再リクエストも不要です。ただし、正確な文言に注意してください。Googleは「starts increasing」と述べており、“instantly returns to your prior rate.” (翻訳)「以前のレートに即座に戻る」とは述べていません。固定の期間や保証された終点のない、文書化された方向性として扱い、SLAとは考えないでください。

Evidence for this claim Google says crawl rate automatically starts increasing after the number of overload responses falls; this describes direction, not an immediate return, fixed recovery time, or guaranteed prior crawl rate. Scope: hostname crawl-load incidents Confidence: high · Verified: Reduce Google crawl rate

これは反対の問題、つまりGoogleに恒久的にクロールを減らしてほしい場合とは対照的です。エラーを配信できないなら、Googleは*「file a special request to report a problem with unusually high crawl rate」* (翻訳)「異常に高いクロールレートの問題を報告する特別なリクエストを送る」よう案内しています。数日かかることがある手動経路で、保証もありません。回復にはそのような面倒はありません。

Bingは429をどう扱うか

Bingbotも同様に動作すると広く報告されています。429/500/503が過負荷を示し、Bingbotが速度を落とすというものです。ただし今回の調査では、Bing自身のヘルプページ(静的テキストを取得できないJS描画SPAでした)で現在の文言を独自に確認できませんでした。この一致の主張は業界の報道として扱い、現行のBing文書で私が検証したものとは扱わないでください。Bingが過去のガイダンスで確認しているのは、Googleが同じ形では提供していない2つの先回り型コントロールです。

  • クロール制御(Bingウェブマスターツール)— 1秒あたりのリクエスト数を時間帯ごとに設定するグリッドです。
  • crawl-delay robots.txtディレクティブ。 現在のBing Webmasterガイダンス では、1〜20秒の値が文書化されています。Bing固有の機能であり、Googlebotを抑制しません。

したがってBingでは、ステータスコードで事後対応する代わりに、crawl-delayまたはCrawl Controlで先回りして速度を制限できます。(Googleは2024年に手動のクロールレートスライダーを廃止し、現在はサーバーのレスポンスに全面的に依存しています。)

注:Bingの現在のCrawl ControlとクロールエラーのヘルプページはJavaScriptで描画されます。上のcrawl-delayの文言は、Bing自身の2009年のブログ記事に基づく、現在のUI画面ではなく、なお尊重されているガイダンスです。上の429との一致の主張と、crawl-delay/Crawl Controlの現在の状態はいずれも現行のBing一次資料に対して要レビューです。現在の正確な文言を引用する前に、Bing Webmaster Toolsで確認してください。

意図的に429を返す場合

意図的に429を返す正当な理由:

  • 緊急のサーバー負荷 — トラフィック急増、失敗した移行、障害など、数時間だけGooglebotに今すぐ速度を落としてほしい場合。
  • APIやHTML以外のエンドポイントをボットの悪用から守る — 検索エンジンのクローラー、サードパーティのSEOクローラー(Ahrefs、Screaming Frog)、スクレーパーはいずれも、悪用を止めるためのレート制限に当たります。

429の用途ではないもの:望まないボットを恒久的にブロックすることです。何かを絶対にクロールさせたくないなら、それは429ではなくrobots.txtのdisallowの仕事です。ページを維持しつつインデックスから外したいならnoindexです。429は「後で」であり、「決して」ではありません。

意図しないレート制限応答 — よくある原因

GSCのページのインデックス登録またはクロール統計レポートにこの応答が出ていて、自分で設定した覚えがない場合、原因は通常このいずれかです。どれが最も多いかを示す普遍的な確かな証拠は知らないため、診断結果ではなく、該当するか除外する候補のリストとして扱います。

  • WAF/ファイアウォールルールが正当なクローラーのIP範囲に誤って発動している。
  • 共有ホスティングやCDNのデフォルトのレート制限が、実際のクロールには厳しすぎる。
  • ボット管理ツールがGooglebotやBingbotを悪質なトラフィックと誤分類している。
  • 強すぎるレート制限ミドルウェアが、API悪用向けの設定で自分のクローラーまで捕捉している。

しきい値を変更したり、実際の検索ボットを除外するルールを書いたりする前に、まず発生源を確立してください。どの層がレスポンスを所有しているか推測しないでください。生のレスポンスヘッダー、正確なリクエストログ行(ダッシュボードの要約ではないもの)、発動したルールまたはレート制限ゾーンの識別子、カウント対象となったクライアントキー(IP、セッション、APIキー)、ルート、CDNのPOP/エッジロケーション、時間帯を取得します。これらの組み合わせで、どの層が429を発行し、何を数えていたかが分かります。その後で初めて、制限を緩めたり例外を追加したりする意味が生じます。クローラーの身元は、ユーザーエージェント文字列だけでなく、リバースDNSとフォワードDNS(Googleの公式手法)で確認してください。偽装された「Googlebot」ユーザーエージェントは一般的です。正確なコマンドはScriptsタブにあります。

プレイブックの短い版

  1. クローラーを遅くするには、Retry-After付きの429または503を使う — 403や404は決して使わない
  2. 数時間、または1〜2日にとどめる — それを超えるとURLが削除される可能性がある。
  3. スロットルはホスト名全体に及び、エラーが止まると自動回復することを覚えておく。
  4. 制限を正しいトラフィックに適用し、ボットを除外する前にクローラーの身元を確認する。

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.