「429 Too Many Requests」エラーは、ユーザー(プラグインやDDoSなど)が一定時間内に送信したリクエストの量が多すぎるために発生します。言い換えれば、「リクエスト送信の停止」をお願いするサーバーからのメッセージです。
このエラーをWordPressサイトで解決するには、次のいずれかのトラブルシューティングを実行してください。
WordPressデフォルトのログインURLを変更する
HTTPSの内部リンクがエラーの原因になっていないか確認する
WordPressプラグインを一度すべて無効にする
WordPressテーマをデフォルトのものに切り替える
ホスティング会社に問い合わせる
「429 Too Many Requests」エラーとは
「429 Too Many Requests」エラー(HTTP 429エラー)は、ユーザーが短時間に大量のリクエストを送信した場合に発生するエラーです。ステータスコード429は、レート制限スキームでの使用を意図しています。
「429 Too Many Requests」エラーの原因
サーバーによって、ユーザーエージェントが特定のページに一定期間に頻繁にアクセスを試みていることを検出すると、レート制限機能がトリガーされることがあります。最も一般的な例としては、ユーザー(またはハッカー)がサイトに繰り返しログインしようとした場合が挙げられます。
サーバーは、ログインの認証情報ではなく、Cookieでユーザーを識別する場合もあります。リクエストはまた、サーバー上または複数のサーバー上でリクエストごとにカウントされることもあるため、このエラーが表示されるシナリオは複数あります。エラーメッセージにも以下のようなバリエーションがあります。
429 Too Many Requests
429 Error
HTTP 429
Error 429 (Too Many Requests)
また、エラーメッセージには、429ステータスコードが発生した原因、または再度ログインできるまでの待機時間などの追加情報も表示されることがあります。
以下に例を示します
。
HTTP/1.1 429 Too Many Requests
Content-type: text/html
Retry-After: 3600
<title>Too Many Requests</title>
</head>
<h1>Too Many Requests</h1>
<p>I only allow 50 requests per hour to this website per logged in user. Try again soon. </p>
</body>
</html>
エラーメッセージは様々ですが、すべてユーザーまたはコードがサーバーに過剰なリクエストを送信していていることを意味します。このエラーは時に自然に解決することもありますが、プラグインや
サービス拒否(DDoS)攻撃
などが原因で発生している場合は、早急にトラブルシューティングを行いたいところです。
429エラーは、ログインページに影響を及ぼす可能性が高いため、サイトの管理画面にアクセスできなくなることがあります。そのため、解決作業が少し複雑になりますが、だからこそ解決策を知っておくと便利です。
「429 Too Many Requests」エラーを解決するには(5つの方法)
なお、
KinstaのWordPress専用マネージドホスティング
では、WordPressを知り尽くしたプロのエンジニアによるサポートを受けることができ、429エラーの解決も例に漏れません。Kinstaのお客様は、ぜひお気軽にカスタマーサポートをご利用ください。
それでは以下、WordPressサイトで「429 Too Many Requests」エラーが発生する主な原因を5つご紹介し、それぞれの解決策を取り上げます。
1. WordPressのデフォルトログインURLを変更する
429エラーの主な原因のひとつは、ブルートフォース攻撃。
WordPressのログインページ
をサイバー攻撃から保護するには、URLをデフォルトのURLから変更して隠すのが手っ取り早い対策です。
WordPressデフォルトのログインページは「yourwebsite.com
/wp-admin
」になっています。覚えやすくて便利な一方で、誰でもログインページにアクセスできてしまうことを意味します。これは覚えやすいに違いありませんが、ウェブ上の誰もがアクセスできる場所を知っているため、まったく安全ではありません。
デフォルトのURLを変更するには、無料の
WPS Hide Login
プラグインが便利です。
WPS Hide Loginプラグイン
WordPress管理画面でこの
プラグインをインストールして有効化
したら、「設定」>「WPS Hide Login」タブに移動します。
ログインURLの変更
この画面で簡単にログインURLを変更することができます。「login」や「wp-login」などの推測しやすい名前は避け、誰も予測できないような他にないURLにすると効果的です。
また、古いログインURLにアクセスするユーザーを別ページにリダイレクトすることも可能です。デフォルトの設定では、「/wp-admin」にアクセスしようとすると、
404エラーページ
が表示されるようになっています。URLの設定を終えたら、変更を保存してください。
2. Really Simple SSLプラグインを無効にし、内部リンクを置き換える
セキュリティに妥協が許されない今日、サイトへの
SSL(セキュアソケッツレイヤー)証明書
の導入は欠かせません。同様に、サイト全体で
HTTPSを使用
することも重要です。HTTPSは、HTTPプロトコルよりも格段に安全であり、
検索エンジン最適化(SEO)
にもつながります。
HTTPSリダイレクトを設定するには、
.htaccess
リダイレクトを設定するかプラグインを使用します。プラグインであれば、
Really Simple SSL
がお勧めです。
Really Simple SSLプラグイン
このプラグインでは、たった数回のクリックでサイト全体にHTTPSリダイレクトを設定することができます。ただし、時折バグが発生することもあり、状況によっては429エラーが発生します。
プラグイン自体には何も問題はありませんが、
HTTPSリダイレクトを設定
するベストな方法というわけではありません。というのも、HTTPSを設定しても、内部リンクの処理が残ります。サイトには内部リンクが数多くあることが多く、プラグインを無効にしてから、その内部リンクすべてをHTTPSバージョンに置き換えなければなりません。
したがって、まずはこのReally Simple SSLを無効化してみます。WordPress管理画面にアクセスできる場合は、「プラグイン」画面でこのプラグインの「停止」をクリックするだけでOKです。
Really Simple SSL プラグインを停止する
429エラーにより
管理画面にアクセスできない
場合には、
FTPクライアント
を使用してプラグインを手動で停止します。
Really Simple SSLを停止したら、429エラーが解消されます。管理画面にもアクセスできるようになり、プラグインを再設定して、
Search and Replace
プラグインを使用して、内部リンクを一括で置き換えましょう。
Search and Replaceプラグイン
プラグインを有効にし、「ツール」>「Search and Replace」に移動します。wp_postmetaテーブルを選択して、「Search」フィールドと「Replace」フィールドにそれぞれ次のパラメータを入力してください。
Search: http://yourwebsiteurl.com
Replace: https://yourwebsiteurl.com
次に、「dry run」をクリックすると、
データベース
内でHTTPSに置き換えられるURL(HTTP)の数がわかります。その後、実行するとすべてのリンクが置き換えられます。
なお、Really Simple SSLの停止後は、.htaccessファイルを使用して
サイト全体のHTTPSリダイレクト
も設定することをお忘れなく。これにより、429エラーの再発を防ぐことができます。
3. すべてのWordPressプラグインの一時停止
外部のリクエストが多すぎると、Really Simple SSL以外のプラグインもエラーの原因になることがあります。先の解決策でもエラーが修正されない場合は、すべてのプラグインを停止してみるのも効果的です。
例として、今回は管理画面にアクセスできない状況を想定します(アクセスできる場合は、「プラグイン」画面ですべてのプラグインを一括停止)。この場合は、
Filezilla
などのクライアントを使用して、FTPでサイトにアクセスし、public_html/wp-content/ディレクトリに移動します。
複数格納されているフォルダの中から、pluginsフォルダを開きます。
pluginsフォルダ
pluginsフォルダを右クリックして、任意の名前(「plugins.deactivated」など)に変更すると、プラグインが無効になります。ただし、サイトに再度アクセスする際、空のpluginsフォルダを別途作成し、WordPressが正常に動作するようにしてください。
サイトにアクセスして、429エラーが消えている場合は、停止したプラグインのいずれかが原因であることがわかります。続いて、原因となっているプラグインを特定していきます。
先ほど作成した空のpluginsフォルダを削除して、以前のフォルダを元の名前(plugins)に戻す
pluginsフォルダにアクセスする
pluginsフォルダと同様の手順で各プラグインのフォルダのいずれかを別の名前に変更する(するとそのプラグインが停止する)
サイトにアクセスし、429エラーが消えるかを確認する
エラーが消えない場合は、先ほどのフォルダ名を元に戻す
無効にすることでエラーが消えるプラグインを見つけるまで3と4の手順を繰り返す
少し手間はかかりますが、このように利用しているプラグインを1つずつ確認することで、問題のあるプラグインを特定することができます。429エラーの原因となるプラグインを見つけたら、完全に削除してしまいましょう。
4. WordPressテーマをデフォルトのものに切り替える
429エラーの原因がプラグインでないことがわかったら、次にテーマを疑いましょう。現在使用しているテーマを無効にすると、自動的にWordPressデフォルトのテンプレートに切り替わります。
テーマを無効にする方法は、プラグインの手順とほぼ同じです。信頼できるFTPクライアントを起動して、public_html/wp-content/themes</emフォルダを開きます。現在使用しているテーマのフォルダを見つけて、名前を変更しましょう。
それからサイトにアクセスし、エラーが解消されている場合は、テーマが原因であることがわかります。また、当然ながらサイトの外観にも変化がありますが、使用していたテーマとそのカスタム設定は消えていないのでご安心を。
テーマのフォルダを元の名前(public_html/wp-content/themes</em)に戻して、再度有効にすれば元の外観に戻ります。テーマが429エラーの原因になっている場合は、テーマ開発者に報告するか、
別のテーマに変更
し、該当の
テーマを完全に削除
することを検討してください。
5. それでもエラーを解決できない場合は、ホスティング会社に問い合わせる
429エラーの原因は、サイトではなくサーバーにある可能性もあります。この場合、サイト運営者側にできることはありません。
お使いのホスティングサービスによっては、特定のサードパーティサービスやプラットフォームからのリクエストをブロックしている可能性があります。これには、サイトに多数のリクエストを行う検索エンジンやクローラーなどのアプリ(
Google Search Console
など)が挙げられます。
ホスティング会社に問い合わせて
、リクエストを許可するように依頼することで、エラーを解消できることがあります。また、ホスティング会社の制限が原因でなくても、通常解決策について助言を受けることもできます。
WordPressサイトでエラーが発生すると、頭を抱えてしまうもの。しかし、エラーコードが表示されている場合は、そのコードから解決策を導き出すことができます。「429 Too Many Requests」エラーの場合は、リクエストが多すぎてサーバーに過負荷がかかっていることを意味するため、原因を効率的に特定することができます。
429エラーに遭遇したら、次の5つの解決策を講じてみてください。
WordPressデフォルトのログインURLを変更する
Really Simple SSLプラグインを停止する
すべてのWordPressプラグインを一時的に無効にする
WordPressテーマをデフォルトのものに切り替える
それでもエラーが解決しない場合は、
ホスティング会社に問い合わせる
WordPressの「429 Too Many Requests」エラーの解決方法についてご質問がありましたら、以下のコメント欄でお知らせください。
アプリケーション
、
データベース
、
WordPressサイト
のすべてを一箇所で。Kinstaの高性能クラウドプラットフォームでは、次のような便利な性能や機能の数々をご用意しています。
MyKinstaでの簡単な設定と管理
24時間年中無休のWordPressエンジニアによるサポート
最高レベルのGoogle Cloud Platformハードウェアとネットワーク(Kubernetesにより優れた拡張性を実現)
速度と堅牢性を両立するエンタープライズレベルのCloudflare統合
最大37箇所のデータセンター、260のPoPを武器に世界規模でオーディエンスに訴求
アプリケーションホスティング
、
データベースホスティング
を無料利用枠を使いお試しいただけます。
プラン一覧
をご覧いただくか、お客様のご要望について
営業までお気軽にお問い合わせください
。