ステータスコードの一覧

ホームページのステータスコードは、HTTPレスポンスのヘッダー情報で確認することができます。

このステータスコードは、IETF(Internet Engineering Task Force)のRFC文書で定義されています。現在のところ、RFC 9110がインターネット標準(STD97)の状態になっていますが、15. Status Codesの箇所にその一覧が掲載されています。

HTMLやCSSなどのWeb標準ということでいえば、W3Cが非常に大きな影響力を持っていますが、ステータスコードはHTTPプロトコルのインターネット技術の分野になるため、IETFが標準化の作業をしています。

このステータスコードは、ブラウザなどのクライアントが送信するHTTPリクエストに対して、サーバーが応答するコードになりますが、概ね、結果が〇の場合は「2xx」、△の場合は「3xx」、×の場合は「4xx(クライアント側の事由)」、もしくは「5xx(サーバー側の事由)」となります。

  • 2xx 成功: 〇
  • 3xx リダイレクト: △
  • 4xx エラー(クライアント側): ×
  • 5xx エラー(サーバー側): ×

このうち、問題があるエラーコードは「4xx」と「5xx」になりますが、これらのコードが返ってくると検索エンジンのインデックス登録にも影響があるため、注意すべきステータスコードとなります。

加えて、「3xx」についても、こちらはエラーコードではありませんが、検索エンジンのSEO対策に重要となってくるため、チェックしておくことをおすすめします。

エラーコード「4xx」:クライアント側の事由

404 Not Found

ホームページのファイルが見つからなかった場合、サーバーは「404 Not Found」のステータスコードを返します。

当サイトのアクセスログを確認してみますと、ファビコンやapple-touch-icon関連でファイルが見つからなく、404のステータスコードが返ってくることが多いです。

アクセスログでの「404」の例

当サイトでは、ファビコンをimageフォルダに入れていますが、一般的にはルートディレクトリに入れることが多いため、「404 Not Found」が返ってきています。

ただし、ステータスコードはサーバーが返すレスポンスコードのため、そもそもブラウザなどのクライアントが送信するHTTPリクエストがサーバーに届いていない場合には「404」は返ってきません。この場合はドメインネームとIPアドレスの紐づけができず、「Could not resolve host」などと表示されます。

この場合、ブラウザでは以下のように表示されますが、ステータスコードは「404」ではなく「失敗」と表示されます。

「このサイトにアクセスできません」の表示

この状態は、ドメイン自体が存在しないか、それともドメインの取得はしているものの、単にDNS設定をしていないだけなのかは分かりませんが、何も見つからないことを意味します。

同じようにファイルが見つからない場合でも、ステータスコードで「404 Not Found」の応答があった場合、ドメイン自体は見つかったことを意味します。このような場合、ドメインのトップにアクセスするとサイト自体は表示されることが多いです。

400 Bad Request

そのほか、クライアントが不完全で誤ったリクエストを送信した場合などは「400 Bad Request」が表示されます。ユーザーエージェントなどが空になっていたり、よく分からないURLをリクエストしていることが多いと感じています。

アクセスログでの「400」と「403」の例

例えば、ヘッダーに必要な情報を記載せず、不完全な形でリクエストすれば、「あなたのブラウザはサーバーが理解できないリクエストを送信しました。」と表示され、「400 Bad Request」が返ってきます。

curlでの「400 Bad Request」の例

403 Forbidden

加えて、WordPress関連のリクエストは不正ログイン対策でレンタルサーバー側で禁止されていることも多く、このような場合は禁止のステータスコード「403 Forbidden」が返ってきます。

あるいは、サイト運営者が.htaccessにて、IPアドレスやユーザーエージェント名で拒否している場合も「403 Forbidden」が返ってきます。

curlでの「403 Forbidden」の例

410 Gone

そのほか、サイト運営者がページを削除したことを意図的に通知している場合には「410 Gone」が表示されます。

curlでの「410 Gone」の例

4xxのステータスコードは他にも以下のようなものがありますが、見かけるのは「404 Not Found」がほとんどかと思います。

4xxのコード一覧

  • 400 Bad Request
  • 401 Unauthorized
  • 402 Payment Required
  • 403 Forbidden
  • 404 Not Found
  • 405 Method Not Allowed
  • 406 Not Acceptable
  • 407 Proxy Authentication Required
  • 408 Request Timeout
  • 409 Conflict
  • 410 Gone
  • 411 Length Required
  • 412 Precondition Failed
  • 413 Content Too Large
  • 414 URI Too Long
  • 415 Unsupported Media Type
  • 416 Range Not Satisfiable
  • 417 Expectation Failed
  • 418 (Unused)
  • 421 Misdirected Request
  • 422 Unprocessable Content
  • 426 Upgrade Required

そのほか、現在、標準化が提案されているコードもあります。これら「4xx」系のステータスコードを返すURLについては、Googleなどの検索エンジンのインデックスから削除されてしまうため、チェックするようにしましょう。

エラーコード「5xx」:サーバー側の事由

サーバー側に問題がある場合、以下のような「5xx」系のエラーコードが返ってきます。

高機能なレンタルサーバーを利用している場合、あまり見かけることはありませんが、メモリやCPUなどのハードウェアのスペックが不足していたり、アクセスの集中などで負荷が高くなり、処理しきれない場合などに表示されることがあります。

5xxのコード一覧

  • 500 Internal Server Error
  • 501 Not Implemented
  • 502 Bad Gateway
  • 503 Service Unavailable
  • 504 Gateway Timeout
  • 505 HTTP Version Not Supported

メンテナンス中の場合は「503 Service Unavailable」など、アクセス集中でサーバーが落ちた場合は「500 Internal Server Error」などとなりますが、状況によって異なるため、特定のエラーコードが該当するわけではありません。

また、エラーコード「5xx」が返ってくる場合、リダイレクトが無限ループになっているなど、サイト運営者側が原因となっているケースもあります。

サイトのトラフィックが増大してきた場合、サーバーのハードウェアのスペックが乏しいと頻繁にサイトが落ちてしまうため、アクセス数に応じて高機能なレンタルサーバーに移転することをおすすめします。

ステータスコード「3xx」:リダイレクト関連

301 Moved Permanently

サイトやページの転送設定をする際、一般的にはサーバーの.htaccessにて「301 Moved Permanently」のリダイレクト設定をすることをおすすめします。HTTPからHTTPSへの常時SSL設定、あるいはwwwありなしの統一をする際にも、ステータスコードの「301」が返ってくることを確認するとよいでしょう。

例えば、当ホームページでは、「HTTPページ」にアクセスすると「HTTPSページ」に転送していますが、301リダイレクトにて設定しています。

curlでの「301 Moved Permanently」の例

302 Found

「302 Found」については、一時的な転送の意味になりますが、301の方が明確に転送したことを検索エンジンに伝えることができます。Googleでは「301」を強いシグナル、「302」を弱いシグナルとして、リダイレクト先のURLが正規版であると判断します。

304 Not Modified

また、「304 Not Modified」は、ページが更新されていないことを意味するコードです。

クライアントが既にキャッシュを保有しており、その情報に変更がされていなければ、そのキャッシュを活用できるため、サーバーは最小限の情報を送信するだけでよくなります。

3xxのコード一覧

  • 300 Multiple Choices
  • 301 Moved Permanently
  • 302 Found
  • 303 See Other
  • 304 Not Modified
  • 305 Use Proxy
  • 306 (Unused)
  • 307 Temporary Redirect
  • 308 Permanent Redirect

アクセスログ上では、「301 Moved Permanently」と「304 Not Modified」をよく見かける傾向にありますが、その他のコードはあまり見かけることがないかもしれません。

ステータスコード「2xx」:リクエストが成功

リクエストが成功して正常に処理された場合は「200 OK」が返ってきます。

2xxのコード一覧

  • 200 OK
  • 201 Created
  • 202 Accepted
  • 203 Non-Authoritative Information
  • 204 No Content
  • 205 Reset Content
  • 206 Partial Content

この「200 OK」についてですが、ステータスコードが「200」で返ってきても、実際にはコンテンツのないページが表示される場合には「ソフト404エラー」になってしまうことがあります。

Search Console「ソフト404エラー」の通知

例えば、カスタム404ページを作成する際、.htaccessにて以下のように設定します。

ErrorDocument 404 /404.htmlコピーボタンコピーチェックボタン

この時、URLを絶対URLで指定して以下のように設定してしまうと、ソフト404になってしまいます。

ErrorDocument 404 https://www.homepage-tukurikata.com/404.htmlコピーボタンコピーチェックボタン

この場合、example.htmlなどの存在しないページにアクセスした際、通常ですと「404」が返ってきますが、この場合にはカスタム404ページに転送されたのち、「200」が返ってきます。

ソフト404の例

ブラウザでの表示は「404」であるのに、ステータスコード上は「200」が返ってきて矛盾した状態になっています。metaタグでリダイレクト設定をする際もそうですが、正常に404が返ってくるかはステータスコードで確認するようにしましょう。