2022年05月25日更新
429 Too Many Requestsエラーの原因と解決方法
Webサイトやブログなどを作成している際などに見かける事があるエラーに429 Too Many Requestsがあります。429 Too Many Requestsのエラーが出る原因と、出た場合の解決方法を解説していきます。
目次
429 Too Many Requestsエラーの原因と解決方法
Webサイトを表示した際、様々なエラーが表示されることがあり、管理者の人もそれらのエラーに対した様々な対処をおこなっていることと思います。
よく見かけるようなエラーからなかなか見かけないエラーなど様々あるかと思いますが、見かける頻度は少ないものだとどういったものかわからないという人が多いでしょう。
429 Too Many Requestsエラーとは
Webサイトの利用時や確認時などに表示されるエラーの1つに「429 Too Many Requests」というものがあります。まずは429 Too Many Requestsとは一体どういったエラーなのか、ということの説明からしていきます。
HTTPレスポンスステータスコードのひとつ
429 Too Many Requestsとは、HTTPレスポンスステータスコードのひとつです。HTTPレスポンスステータスコードとはWebサイトの状態を示すサーバーからのレスポンスを意味するコードのことを言います。
このHTTPレスポンスステータスコードには大きく分けて5つの分類があります。HTTPレスポンスステータスコードの分類内容は次の表のとおりです。
番号 | HTTPレスポンスステータスコードの内容 |
---|---|
100番台 | 情報を示すもの。リクエストに対し、処理が継続されていることを示す。 |
200番台 | 成功を示すもの。リクエストを正しく受理したことを示す。 |
300番台 | リダイレクションを示すもの。リクエストを達成するため追加の処理が必要であることを返信していることを示す。 |
400番台 | クライアントエラーを示すもの。リクエストが正しく処理できていないことを示す。 |
500番台 | サーバーエラーを示すもの。文字通りサーバーに問題が生じていてエラーが起きていることを示す。 |
429 Too Many RequestsのエラーはHTTPレスポンスステータスコードの中の400番台に当たるためクライアントエラーの分類になります。
どんな状況で表示される?
HTTPレスポンスステータスコードのエラーが表示される状況は様々ですが、429 Too Many Requestsの場合どのような状況で出るのかというのは気になりますよね。
簡単に言うと、429 Too Many Requestsのエラーは特定の時間内にユーザーがサイトに何度もアクセス(リクエストを送信)しようとしている際に表示されるものです。
一定時間内に受け付けられるリクエストの制限値を超えるとサーバーのほうでサイトの表示を止めてしまうため、このHTTPレスポンスステータスコードが表示されるのです。
429 Too Many Requestsエラーが表示される原因
ざっくりとHTTPレスポンスステータスコードの429 Too Many Requestsが表示される状況を説明しましたが、ここからは429 Too Many Requestsが表示される原因としては何が考えられるのかについての説明に移ります。
ユーザーが指定された時間内に送信したリクエストが多すぎる/レート制限
一般的に429 Too Many Requestsのエラーが表示される原因は、サイトを訪れたユーザーが、指定した時間内に送信したリクエストが多すぎてレート制限を受けたことである、という場合が多いです。
429 Too Many Requestsの「Too Many Requests」の意味は「リクエストの回数が多すぎる」というようなものです。その直訳の通り、リクエスト過多になっていることが原因の内容とも言えますね。
分かりやすい例をあげると、不正ログインなどをするため何度もログインのリクエストを送信した際に429 Too Many Requestsのエラーが出る、というようなものです。
何度もリクエストを受けると、その分サーバー側に負荷がかかるために表示されるエラーと解釈してもらって構いません。
編集中のトラブルによる影響によって表示
なお、サイトに訪れたユーザー側からのリクエスト以外の原因もあります。編集中にトラブルが起きたという経験がある人もいるかと思いますが、その編集中のトラブルの影響によって429 Too Many Requestsのエラーが表示される可能性があります。
何らかのトラブルが原因でそのページを何度も確認する、というようなこともするかと思いますので、それらが影響しているのでしょう。
この場合の原因は管理者側の方にあるわけですが、その作業自体が原因ということばかりでなく、編集中のトラブルそのものも影響している可能性もあると考えましょう。
URLのキャッシュによる影響によって表示
また、これは429 Too Many Requestsになっていたことを前提とした内容ともなりますが、リンクの情報を取得してブログカードとして表示したときに429 Too Many Requestsのエラーが表示されることがあります。
その場合、429 Too Many Requestsの状態のサイト情報をキャッシュとして取得したことでブログカードなどにも429 Too Many Requestsのエラーが表示されることがあるようです。
これはページ情報を読み取った際のHTTPレスポンスステータスコードが429 Too Many Requestsだったことが影響しているために表示されるものです。
サイトそのものではなくブログカードなどのサイトの情報として429 Too Many Requestsが表示されることもあると覚えておくと良いでしょう。
解決方法
さて、リクエスト過多により429 Too Many Requestsのエラーが表示された場合、どのように解決するのか、そのやり方の説明に移ります。
基本的にはCookieやキャッシュを削除
前述したブログなどのカードで429 Too Many Requestsが表示されてしまう場合、そのカードを取得するために必要となるCookieやキャッシュの削除をおこなうことで改善できます。
サイト閲覧者側の場合、429 Too Many Requestsのエラーが表示された場合は時間を置いてサイドリクエストを送って問題なくなるまで待つ必要があります。少し時間を置いてから再アクセスしてみてください。
なお、閲覧者側もCookieやキャッシュの削除をすることで429 Too Many Requestsのエラーを解決する方法となる場合があります。
拡張機能などが邪魔している可能性もあるため、拡張機能もオフにしてみて429 Too Many Requestsのエラーが出ない状態になって解決するかどうか確認してみましょう。
WordPressの429 Too many Requestsエラーを修正する方法
さて、サイト管理者側でWordPressかつCocoon利用時にブログカード上で429 Too Many Requestsのエラーが出てしまった場合の解決方法/修正方法を説明します。
Cocoonはサムネイル・タイトル・記事の本文を抜粋したものがブログカードとして表示される機能がデフォルトで用意されていますが、前述したように何らかのトラブルでそのブログカードで429 Too Many Requestsが表示されることがあります。
その際429 Too Many Requestsのエラーを修正する場合、Cocoonの設定の「ブログカード」で「キャッシュの更新モードを有効にする」にチェックを入れましょう。
429 Too Many Requestsのエラーが出るページを表示して、ブログカードが問題なくなったことを確認してください。
429 Too Many Requestsのエラーが表示されなくなったことが確認できたら、Cocoonの設定の「ブログカード」「キャッシュの更新モードを有効にする」のチェックを外しておきましょう。
なお、WordPressでログインページに攻撃されることが429 Too Many Requestsのエラー原因となっている場合、デフォルトのログインURLページを「WPS Hide Login」というプラグインを利用して変更してみてください。
ログインページであることを推測できる内容を避けることでより効果が高まります。なお、この設定をした場合、デフォルトのログインページである「wp-admin」のページは404エラーが出るようになります。
また、HTTPSをサイト全体で利用するために「Really Simple SSL」というプラグインを利用している人もいるでしょうが、バグが発生して、それが429 Too Many Requestsエラーの原因となっていることもあります。
そのため、原因となっている可能性のあるプラグインである「Really Simple SSL」を停止しましょう。
その後、新しくプラグイン「Search and Replace」を導入し、「Search and Replace」を利用してHTTPからHTTPSへ置換します。.htaccessファイルでサイト全体のHTTPSリダイレクトを設定すれば解決する可能性があるため試してみましょう。
それでも429 Too Many Requestsのエラーが出るようであれば、一度すべてのプラグインを停止してみましょう。1つずつ有効にして、429 Too Many Requestsの原因を特定することで解決できる可能性があります。
WordPressのプラグイン用のフォルダの名前を変更し、空のプラグイン用フォルダを作成します。それでWordPressが正常に利用できればプラグインが原因と考えられます。
作成した空のプラグイン用のフォルダを削除し、変更したプラグインフォルダの名前をもとに戻してから、プラグインのディレクトリへアクセスしましょう。
WordPressのプラグインフォルダの中のいずれかの名前を変更すればそのプラグインが停止されますので、それで原因となっているプラグインを特定してください。
原因がプラグインでなかった場合はWordPressのテーマに原因がある可能性があるため、デフォルトのWordPressのテーマに切り替えてみましょう。テーマの切り替え方はフォルダが異なるだけでプラグインの場合と同じです。
手動で現在適用しているテーマを無効にすることでデフォルトのテーマに自動的に切り替わりますので、これで429 Too Many Requestsのエラーが表示されなくなれば解決したことになります。
なお、解決してもテーマ自体に何らかの不備がある状態というのはよろしくありませんので、そのテーマの開発者に連絡しておくとよいでしょう。
それでも解決できないようであれば、サーバーに原因があって429 Too Many Requestsのエラーが表示されている、ということがあります。そのため、レンタルサーバーを利用している場合はサーバーの管理者に問い合わせてみましょう。
サーバーによってはGoogle Search Consoleなどのリクエストをブロックしている場合もありますので、もしそれが原因だった場合そういったサイトとなどからのリクエストを許可してもらえないか聞いてみましょう。
原因がそういったものでなかったとしても問い合わせたことで解決方法が分かる可能性もあります。
API使用時に429 Too Many Requestsエラーが出た場合の対処法
また、API使用時に429 Too Many Requestsのエラーが出ることもあります。これはAPIを実行するスクリプトなどを確認して、一定の単位時間あたりのリクエスト数の制限を見直し/変更してみてください。
自身でリクエスト数を設定したつもりがなくても、デフォルトでリクエスト制限をかけるようになっていることもありますので、一度コードなどを確認・修正してみてください。
429 Too Many Requestsの原因となっているコードの削除をして制限をなくすというのも、それで問題が生じないということであればありです。
最後に
429 Too Many Requestsのエラーは、リクエストの制限値を超えたことで表示されるエラーです。基本的に時間経過やキャッシュ・Cookieの削除が解決方法となりますが、場合によってはそれ以外の方法で解決できるようにする必要がある場合もあります。
閲覧者側・管理者側で対処方法はそれぞれ異なりますが、429 Too Many Requestsがサーバーに大きな負荷を与えることは間違いありません。
説明した対処方法を参考にしながら、429 Too Many Requestsのエラーを解消できるようにしてみてください。