429 Too Many Requestsとは?原因と対処法を解説
Webサイトを運用していると、「429 Too Many Requests」というエラーが発生することがあります。
「Too Many Requests」とあるように、リクエストが増えていることが原因と考えられますが、そもそもこのエラーにはどのような意味があるのでしょうか。
エラーが発生することで、SEOにどのような影響を及ぼすのかも気になるところです。
この記事では、「429 Too Many Requests」とはどのようなエラーなのか、SEOへの影響や考えられる原因と対処法をご紹介します。
WordPressでエラーが発生した際の対処法についても解説しますので、WordPressをご利用中の方もぜひ最後までご覧ください。
「429 Too Many Requests」エラーとは
「429 Too Many Requests」とは、クライアントからの過剰なリクエストが送信されていることを示すHTTPステータスコードのひとつです。
このエラーが表示されている間は、サーバーがリクエストの受け付けを一時的に制限しているため、Webサイトへのアクセスはできません。
「429 Too Many Requests」がSEOに及ぼす影響
「429 Too Many Requests」は、SEOに影響を及ぼす可能性が高いとされています。
Google のような検索エンジンは、クローラーと呼ばれるロボットを自動巡回させることでWebサイトの情報を収集しています。
クローラーの巡回もリクエストのひとつとなることから、「429 Too Many Requests」が発生していると、クローラーがWebサイトを巡回できないケースが発生する可能性があるのです。
このことについてGoogleは以下のように述べています。
Googlebot は、429 ステータス コードをサーバーが過負荷状態であることを示すシグナルとして扱います。これはサーバーエラーと見なされます。
(中略)
5xx および 429 サーバーエラーは、Google のクローラに対して一時的にクロールのペースを落とすように促します。すでにインデックスに登録されている URL はインデックスに保持されますが、最終的には削除されます。
引用:HTTP ステータス コードや DNS エラーと SEO|Google 検索セントラル
「429 Too Many Requests」を解決しない場合、インデックス登録を削除されるといったケースも想定されるため、早めに対処しなければSEOに甚大な影響を及ぼす可能性があるといってよいでしょう。
「429 Too Many Requests」が発生する原因
ここまでご紹介したとおり、「429 Too Many Requests」は、クライアントから過剰なリクエストが送信されたことが原因で発生します。
しかし、過剰なリクエストがなぜ送信されたのかを解明しなければ解決が難しくなってしまいます。
ここでは、「429 Too Many Requests」エラーが発生した際に考えられる根本的な原因を解説します。
通信トラフィックが増加している
通信トラフィック(ネットワークトラフィック)とは、ネットワーク上におけるデータ通信量のことです。
アクセス集中のように、一定時間に多くのユーザーがWebサイトへ訪問すると通信トラフィックが増加します。
その結果、サーバー側がリクエストを処理しきれなくなると、「429 Too Many Requests」エラーが発生してしまうのです。
ボットやDDoS攻撃による過剰なリクエスト
ボットやDDoS(Distributed Denial of Service)攻撃によって、リクエストが繰り返されることが原因で「429 Too Many Requests」が発生するケースもあります。
DDoS攻撃とは、分散型サービス拒否攻撃とよばれるサイバー攻撃の一種で、複数の端末から同時にWebサイトへアクセスすることにより意図的にサーバー側に負荷をかけ、Webサイト運営を妨げる行為のことです。
この攻撃を受け、通信トラフィックが増加した結果、「429 Too Many Requests」が発生するケースも考えられます。
リソースが大量消費されている
サーバーのリソース(メモリ容量、ストレージ容量、CPU処理速度など)を大量に消費すると、「429 Too Many Requests」が発生する可能性があります。
特に複数のユーザーで1つのサーバーを使う共有サーバーの場合は、リソースも共有することとなります。
このことから、サーバーを共有している一部のWebサイトでリソースが大量消費された際にも、このエラーが表示されることがあります。
設定を間違えている
サーバーに負荷をかけすぎないように、リクエスト制限をかけることができます。
これは、一定時間内のリクエスト数の上限を決定することで、リソースの大量消費といった問題を防止する役割を担っています。
リクエストの上限数を誤って少なく設定しすぎてしまった場合も、「429 Too Many Requests」が発生する原因となることがあります。
「429 Too Many Requests」への対処法
ここまで、「429 Too Many Requests」の概要や原因について解説しました。
「429 Too Many Requests」は、早い段階で対処しなければインデックス登録を削除される可能性もあるため、発生したらすぐに原因を究明して対処することが大切です。
最後に、「429 Too Many Requests」への対処法を解説します。
時間を置く
設定に誤りがあったケースを除き、リクエスト上限回数に達してしまったことが原因で「429 Too Many Requests」が発生している場合、有効な解決方法は一定時間が経過するのを待つことです。
レスポンスヘッダー(応答ヘッダー)を確認すると、「Retry-After: 」という記述の後に、日付や時間が入力されていることがあります。
ここに記載されている期日や時間が次のリクエストまで推奨される待ち時間となるため、目安に確認することをおすすめします。
アクセス集中といった通信トラフィックの増加が原因の場合は、時間を置きましょう。
サーバーのリソースを増やす
サーバーのリソースが不足しており、常に負荷がかかっているような状態の場合は、サーバーのリソースを増やしましょう。
現在よりもリソースの多いサーバーを利用することになるためコストはかかるかもしれませんが、「429 Too Many Requests」を防止することにもつながります。
慢性的にサーバーのリソース不足に陥っている場合は、検討してみるのもよいでしょう。
タグや画像ファイルを最適化する
CSSやJavaScriptを使用している場合、コードを結合したり不要なものを削除したりすることで、全体のファイルサイズを軽量化できます。
また、画像も「画像の遅延読み込み」を設定し、不要な画像を削除するなどして最適化しましょう。
タグや画像ファイルを最適化することでも、サーバー負荷軽減につながります。
WAFを導入する
DDos攻撃といったサイバー攻撃により「429 Too Many Requests」が出ている場合は、WAF(Web Application Firewall)を導入することをおすすめします。
WAFとは、Webアプリケーションへのサイバー攻撃を防ぐことを目的としたファイアウォールで、通信内容を解析したり、悪質な通信をブロックできたりするWebアプリケーション専用のセキュリティツールです。
WAFを導入することで、DDos攻撃に備えられるでしょう。
指数バックオフを実装する
指数バックオフとは、エラー処理方法のひとつで、Googleでは以下のように説明されています。
クライアントはリクエスト間の遅延を増加させながら、失敗したリクエストを定期的に再試行します。
HTTP 5xx および 429 レスポンス コードエラーを返す Memorystore for Redis へのすべてのリクエストに、クライアントは指数バックオフを使用する必要があります。
引用:指数バックオフ|Memorystore for Redis|Google Cloud
Googleも指数バックオフを使用することを推奨していることから、指数バックオフを実装することで「429 Too Many Requests」の発生を減らしましょう。
WordPress向けの対策
WordPressを利用していて「429 Too Many Requests」が発生した場合、以下の対処法を試すことで解消できる可能性があります。
ログインURLを変更する
DDos攻撃対策の一環として、WordPressのログインURLを変更しましょう。
こうすることで、攻撃をしかけるハッカーがログインページを見つけづらくなります。
WordPressの拡張機能であるWPS Hide Loginを使用することで簡単にログインURLを変更できますので、あらかじめ対策しておくことをおすすめします。
Really Simple Securityを無効にし、内部リンクを書き換える
セキュリティ強化のためや、HTTPSリダイレクトを設定するためにWordPress拡張機能であるReally Simple Securityを利用している場合、時々発生するバグが原因で「429 Too Many Requests」が発生することがあります。
その場合は、一度無効にしてエラーが解消されるかを確認しましょう。
また、HTTPSリダイレクトを設定している場合は、内部リンクを書き換える必要があります。
多数の内部リンクを設置しているケースでは、ひとつずつ書き換えるのは手間になるため、Search & Replaceといった拡張機能を使用して一括で書き換えるのがおすすめです。
WordPress拡張機能を一時的に停止する
いくつかのWordPressの拡張機能を使用している場合、これらがWebサイトに複数のリクエストを送信し、いずれかのリクエストがサーバー側で拒否されることで「429 Too Many Requests」が発生している可能性があります。
まずは使用しているWordPressの拡張機能をすべて停止させ、エラーが解消されるかを確認しましょう。
解消されていた場合、いずれかの拡張機能が原因である可能性が高いといえます。
その後は、拡張機能をひとつずつ有効にし、エラーが発生するかどうかを確認して問題のあるものを見つけましょう。
WordPressテーマをデフォルトのものに切り替える
WordPressテーマは、拡張機能が付属しているものが多くあります。
その拡張機能が原因で「429 Too Many Requests」が発生している可能性もあるため、デフォルトのテーマを使用していない場合は、Twenty Twenty-Oneのようなデフォルトのテーマに変更しましょう。
テーマを変更することでエラーが解消された場合、使用していたテーマに付属していた拡張機能が原因である可能性が高いといえます。
テーマの変更方法については、「テーマを変更する」をご覧ください。
ホスティングサービスプロバイダーに問い合わせる
サードパーティーを利用していて「429 Too Many Requests」が表示される場合は、ホスティングサービスプロバイダーへ問い合わせましょう。
ただし、ホスティングサービスプロバイダーが提供しているリソースを圧迫するほどの使用量であれば、プランをアップグレードしたりホスティングサービスプロバイダーの変更も検討したりする必要があります。
まとめ
この記事では、「429 Too Many Requests」というエラーについて詳しく解説しました。
「429 Too Many Requests」は、クライアントからの過剰なリクエストが送信されていることを示すHTTPステータスコードのひとつです。
このエラーが表示されている間は、クローラーもWebサイトを巡回することができなくなってしまうため、SEOに影響を及ぼす可能性が高いといえます。
Googleも、最終的にインデックス登録を削除することを示唆していることから、「429 Too Many Requests」が発生した際には、SEOの観点からも早急に対応する必要があるといえるでしょう。
「429 Too Many Requests」の原因は過剰なリクエストが送信されていることですが、根本的な原因を究明して解消する必要があります。
WAFを導入したり、サーバーのリソースを増やしたりすることで解消できる可能性があるため、「429 Too Many Requests」が表示された際には、この記事でご紹介した対処法を試して早期解決へとつなげましょう。