「429 Too Many Requests」は通常、「特定のIPアドレスからのHTTPリクエストが過剰に発生したときに返されるエラー」で、エックスサーバーの細かい仕様までは把握していませんが、「リクエスト数のカウント方法」はおそらく、「サーバー契約のなかで発生したリクエストすべて(=今回問題になっているドメイン名以外にもサイトを運営している場合、そちらのアクセスもカウントされる)」だと思います(基本的にこういった制限はサーバー契約単位なので)。
また、PHPプログラムのなかでcurlやfile_get_contentsを実行すると、アクセス元のIPアドレスはたしか、「契約しているサーバー自身のIPアドレス」になります。
同じ契約サーバーの中でWordPressサイトを運営している場合、WordPressにどなたかがアクセスしたときにもcurlだかで「wp-cron.php」が実行され、これも「契約しているサーバー自身のIPアドレスからのHTTPリクエスト」にあたりますが、このへんのアクセスが429エラーの原因になっている可能性があるかもしれません。
これが原因の場合、wp-cron.phpを「cronからPHPプログラムを直接指定しての実行」などに移し、curlなどによる「契約サーバー自身のIPアドレスからのHTTPリクエスト」を減らすことで、同じIPアドレスからのリクエスト数に余裕ができ、「429 Too Many Requests」の発生を防げるかもしれません。
契約サーバー内のサイトのアクセス状況(特にwp-cron.phpへのアクセスなどの、契約サーバー自身IPアドレスから発生しているアクセス)が7月3日の前後で特に変わっていないということであれば…明確な回答が得られるかはわかりませんが、公式のサポートに問い合わせてみるしかなさそうでしょうか。
エックスサーバーのことではありませんが、ここ1年ぐらい、「AIからの情報収集のための過剰なアクセスでサーバーコストが…」といったニュース記事、ブログ記事などをそれなりの頻度で見かけます。もしかしたらエックスサーバーでも、7月3日ごろに、そういった過剰なアクセスを防ぐために、429 Too Many Requestsが発生するまでのHTTPリクエストの閾値を変更した、といったことがあるかもしれません(あくまでよたばなしです。ぱっと思いついた推測を書いているのみであり、エックスサーバーが実際にそうしたのかはもちろん知りません)。
ご回答ありがとうございました。
「リクエスト数のカウントがドメイン内ではなくサーバー契約内の他のドメイン」と「AIの情報収集」とすると激しく心当たりがあります。
今までは平気だったのに、急に7月3日からなので閾値の変更もありそうな感じがします。
いくつかの原因のイメージが特定できただけでもかなり収穫がありました!
詳しい情報をありがとうございました!
”「契約サーバー自身のIPアドレスからのHTTPリクエスト」を減らす”というところを頑張ってみようかと思います。