意味
クライアントが一定時間内に多すぎるリクエストを送りました(レート制限)。Retry-After で待つ時間が示されることがあります。
よくある原因
- API のレート制限やクォータを超えた
- バックオフなしの再試行ループ
- 多数のユーザーが 1 つの共有 IP を使っている
対処法
クライアント・閲覧者の場合
Retry-After を守り、ジッター付きの指数バックオフを使い、結果をキャッシュしてリクエストをまとめます。
サイトや API の運営者の場合
Retry-After と RateLimit ヘッダーを返してクライアントが調整できるようにし、IP だけでなくキーやユーザー単位で制限します。
レスポンス例
HTTP/1.1
HTTP/1.1 429 Too Many Requests
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
Retry-After: 30
RateLimit-Policy: 100;w=60
Content-Type: application/problem+json
{
"type": "about:blank",
"title": "Too Many Requests",
"status": 429,
"detail": "Rate limit of 100 requests per minute exceeded."
} 仕様
よくある質問
› 429 の後どれくらい待つべき?
Retry-After があればそれに従い、なければ 1、2、4、8 秒のようにランダムなジッター付きで指数的に待ちます。
› 429 は SEO に悪影響がある?
Googlebot は 429 を見るとクロールを遅くします。短期間なら問題ありませんが、長く続くとインデックスが遅れることがあります。