HTTPステータスコード解説——200から503まで
ブラウザがウェブサーバーに何かをリクエストするたびに、サーバーはHTMLや画像やJSONを返す前に3桁の数値で答えます。それがHTTPステータスコードであり、サーバーが何が起きたかを短く伝える方法です:ページはここにある、移動した、あなたは入れない、またはこちら側で何かが壊れた。ほとんどの場合、ページが正常に読み込まれると、これらのコードを目にすることはありません。しかしサイトが誤動作したとき、ステータスコードは最初に読む価値のある手がかりです。
数値はランダムではありません。最初の桁がすべてのレスポンスを5つのファミリーのいずれかに分類するため、見慣れないコードでも先頭の数字だけで何が問題かおおよそわかります。5つのファミリーを覚えれば、ほとんどのレスポンスを一目で読み取れます。

5つのクラス
1xx 情報。 サーバーはリクエストを受け取り、まだ処理中です。日常のブラウジングではまれで、通常はブラウザとサーバーの間で黙って処理されます。100 Continueが典型例で、クライアントに大きなリクエストボディの残りを送信しても構わないと伝えます。
2xx 成功。 リクエストは成功しました。200 OKは終日見たいコードで、リソースが見つかって返送中であることを意味します。201 Createdは何か新しいものを作るフォームやAPI呼び出しを送信した後に表示され、204 No Contentはアクションが成功したが表示するものがないことを意味します。
3xx リダイレクト。 リクエストしたものは別の場所にあり、ブラウザは通常自動的にそちらへ移動します。リダイレクトは古いリンクを生かし続け、検索ランキングにとって非常に重要です。
4xx クライアントエラー。 リクエストに何か問題がありました——悪いURL・不足しているログイン・存在しないリソース。サーバーは正常です。送られてきたものを受け入れられないだけです。
5xx サーバーエラー。 リクエストは正常でしたが、サーバーが処理中につまずきました。これらはサイトのインフラを指しており、あなたのせいではありません。
実際によく調べられる具体的なコード
200 OKは単純な成功です。ページまたはデータが期待通りに読み込まれました。
301 Moved Permanentlyはブラウザと検索エンジンに、ページが新しい永続的な場所に移動したことを伝えます。これはSEOフレンドリーなリダイレクトで、古いURLから新しいURLへランキングシグナルを伝達します。URLを恒久的に変更するときはこれを使います。
302 Foundは一時的なリダイレクトです。元のURLがまだ本物のURLなので、検索エンジンは目的地ではなく元のURLをインデックスし続けます。季節限定のランディングページにユーザーをルーティングするなど、移動が本当に短期的なときだけ302を使いましょう。
304 Not Modifiedは高速ブラウジングの静かなヒーローです。ブラウザのキャッシュにすでにある内容がまだ最新であることを伝えるため、サーバーはファイルの再送信をスキップします。転送データが減り、ページが速くなります。
400 Bad Requestはサーバーがリクエストを理解すらできなかったことを意味します。不正な構文や無効なパラメーターが原因であることが多いです。
401 Unauthorizedは大まかに言って「あなたが誰かわかりません、認証してください」という意味です。有効な認証情報がありません。
403 Forbiddenは異なります:サーバーはあなたが誰かわかっていても拒否します。権限がなく、再ログインしても解決しません。
404 Not Foundは最も有名なコードです。サーバーは生きていてあなたに応答しましたが、そのアドレスには何もありません。通常はリンクのタイプミス、またはリダイレクトなしで削除または移動されたページが原因です。
429 Too Many Requestsはレート制限されたことを意味します。短すぎる時間に多すぎるリクエストを送り、サーバーがペースを落とすよう求めています。APIが常にこれを使います。
500 Internal Server Errorは汎用の「何かが壊れた」レスポンスです。サーバーが予期しない状態にぶつかってあきらめましたが、何が起きたかは言いません。サーバーのログを確認してください。
502 Bad Gatewayは、ゲートウェイまたはプロキシとして機能しているサーバーが、背後のアップストリームサーバーから無効な返信を受け取ったときに表示されます。バックエンドアプリがクラッシュまたは到達不能になっているサインであることが多いです。
503 Service Unavailableはサーバーが一時的に過負荷またはメンテナンスのためにダウンしていることを意味します。500と違い、問題が短期的でサイトがまもなく復帰することを示唆します。

SEOとデバッグにおけるステータスコードの意味
検索ランキングにとって、301と302の区別が人々がよくはまるポイントです。永続的な移動には常に301を使い、新しいページが古いページの権威を引き継げるようにします。間違った場所での302は、検索エンジンが元のURLをインデックスし続け、シグナルを分割してしまう可能性があります。一方、大量の404はクロールバジェットを無駄にしてビジターを苛立たせるため、壊れたリンクをそのまま放置するより修正またはリダイレクトする価値があります。
デバッグでは、ファミリーがどこを見るべきかを教えてくれます。4xxはリクエストを指すため、URL・ヘッダー・認証情報を確認します。5xxはサーバーを指すため、アプリケーションログ・アップストリームサービス・直前のデプロイが問題ないか確認します。502と503の波はコードのバグよりもバックエンドがダウンまたは過負荷になっていることを意味することが多いです。サイトが返す正確なステータスはデベロッパーツールで確認でき、5xxが接続問題に見える場合は素早いDNSルックアップでドメインが正しいアドレスに解決されているか確認できます。
よくある質問
404エラーはサイトにとって悪いことですか?
少数の404は普通で無害です。問題が始まるのは、人気のあるページが404を返したり、内部の壊れたリンクが蓄積してクロールバジェットを無駄にしたりビジターを苛立たせたりするときです。移動したページはリダイレクトし、壊れたリンクは修正しましょう。
301リダイレクトと302リダイレクトの違いは何ですか?
301は永続的でランキングシグナルを新しいURLに伝達するため、ページが恒久的に移動するときはこれを使います。302は一時的で元のURLをインデックスに保つため、短期的な移動にのみ使います。
401と403の違いは何ですか?
401は認証されていないことを意味するため、ログインすれば修正できる可能性があります。403はサーバーがあなたを認識しているが権限がないためアクセスを拒否していることを意味するため、再ログインしても解決しません。
500エラーとは何ですか、どう修正しますか?
500 Internal Server Errorはサーバーがリクエストを処理中に予期しない障害にぶつかったことを意味します。メッセージは意図的に汎用的なため、修正は通常サーバーログを読んで本当の原因を見つけることから始まります。
なぜ429ステータスコードが返ってくるのですか?
429 Too Many Requestsはリクエストを速く送りすぎてレート制限されたことを意味します。ペースを落とし、サーバーが返すRetry-Afterヘッダーを尊重し、スクリプトとAPIクライアントにバックオフを追加してください。
503 Service Unavailableとは何を意味しますか?
503はサーバーが一時的にリクエストを処理できないことを意味し、通常は過負荷またはスケジュールされたメンテナンスが原因です。短期的な問題を示すため、サイトはまもなく自然に回復するはずです。
