ステータスコードを知る

「301リダイレクト」「404エラー」などという言葉を聞いたことがある方もいらっしゃると思います。
また、WEBページを開いた時に「404」「500」などの数字が表示され、見たいページが見れなかったという経験がある方も多いのではないでしょうか。

ページが表示されない時などに目にする3桁の数字。
それらの3桁の数字をステータスコードと呼び、ステータスコードはサーバーからの返答のようなものです。

今回はステータスコードについて、種類や意味を解説していきます。

ステータスコードとは

私たちがWEBサイトを閲覧する時には、ブラウザからWEBサーバーに「このページが見たい!」とリクエストをしているのですが、
このリクエストに対するレスポンスの内容を表しているものが3桁の数字です。
3桁の数字はHTMLを表示する前にブラウザが受信しています。
それによりブラウザではWEBサーバーから受け取った内容で正しい処理がされています。

具体的にどのような処理が行われているか「301リダイレクト」を例に解説します。
まず、301リダイレクトは、古いURLから新しいURLに転送されることです。

ステータスコード301を受信したブラウザは、
「301を受信したのでこの先の指定ページはURLが変更されている。なので新しいURLに転送をする」という処理を行います。

この時に正しくステータスコードを送っていないと、
URLは変更されているのにブラウザは301を受信していないので、URLが変更されずそのまま古いURLにアクセスすることになります。
その場合、ページが表示されず、ユーザーの離脱などにもつながってしまいます。

ですので、正しいステータスコードを設定することが大切であり、その結果正しい処理が行われてブラウザにページが表示されるのです。

ステータスコードのカテゴリー

ステータスコードは、100番台~500番台までの間で大まかにカテゴリーが分かれていて、それぞれのカテゴリーには意味があり、役割も異なります。

100番台

「リクエスト情報処理を継続中」

処理を継続中なので、少し処理に時間がかかっている、WEBサーバがもう少し情報が欲しい、ということを意味します。

200番台

「リクエスト処理成功(正常に処理)」

200番台は正しくリクエストを処理したことを意味し、普段私たちがページを閲覧している状態は200番台を受信しています。

300番台

「リダイレクト処理」

300番台はリクエストを処理を完了するために追加の処理が必要とされています。

400番台

「リクエスト失敗(クライアントエラー)」

400番台はブラウザからのリクエストにエラーがあり、正しく処理できていない状態です。

500番台

「サーバエラー」

500番台はサーバがリクエストの処理に失敗して、エラーになる状態です。

よく使われるステータスコードとその意味

ステータスコードは、大きなカテゴリーからさらに詳細に分かれており、幾つもあります。
その中でも今回は代表的なものを解説していきます。

200

200は、リクエストが正常に処理されたことを意味します。
ブラウザでページが正しく表示されている場合、ほとんどが200のステータスコードを返している状態です。

301

301は、リクエストされたURLが変更されているので新しいURLに移動されている時に返されるステータスコードです。
また、301は恒久的・永続的にページを転送します。
これはサイトをリニューアルした時やドメインを変更した時などに使用する重要な設定です。

302

302は、リクエストされたURLが一時的に変更された時に返されるステータスコードです。
一時的に別のURLに転送されるのが302であり、前述の301は恒久的に転送されます。
繰り返しになりますが、302はあくまで一時的な転送をする設定なので、
後に元に戻す予定があれば良いのですが、
今後永続的にURLを変更するという場合であれば301を設定すると良いでしょう。

401

401は、リクエストに応えるためには認証が必要ですがその認証に失敗した時に返されるステータスコードです。
例えば、Basic認証などを使う時に使用され、ID・パスワードが間違っていて表示されない場合です。

403

403は、ユーザーにアクセス権がないことを意味しています。
リクエスト先のページを閲覧するアクセス権がなく拒否されている場合に返されます。

404

404は、リクエスト先が見当たらない、もしくは既に削除されているなど存在しない場合に返されるステータスコードです。
「404NotFound」「ページが見つかりませんでした」などのエラーページを見かけることもあると思います。
ページが存在しない・URLのスペルミス・リダイレクト設定ができていない時などに表示されます。

500

500は、サーバ内部のエラーで、サーバがリクエストの処理に失敗したことを意味します。
サーバのプログラム設定ミス、使用しているサーバへの負荷などが原因で、返されるステータスコードです。

503

503は、一時的にアクセスが集中してサーバが処理できずに利用不可になっている状態や
メンテナンスなどで使用できないことを意味します。

注意したい「ソフト404」


通常の404エラーとは違う、ソフト404エラーと呼ばれるものがあります。
404では、ページが存在しないことを意味するエラーが返されますが、
ソフト404では、エラーを意味するステータスコードではなく、正常な処理が行われたことを意味する200が返されている状態です。

表示されるエラーページは、通常の404と同じページが表示されるので、
一見通常の404と同じように思ってしまいますが、意味が異なります。

ソフト404がどういう状態かというと、
本来はコンテンツが存在しないにもかかわらず、何らかの原因でページが存在すると認識してしまっているので意図しないコンテンツが存在している状態です。
ソフト404は、プログラムによって自動生成されたページの場合が多いです。

クローラーは、ステータスコードを元にコンテンツの存在を認識しますが、
実際には存在しないコンテンツをステータスコード上はコンテンツがあると返ってきているのでクローラーは処理に困ってしまいます。
「インデックスしないページのはずなのに、サーバはステータスコード200と言っている。どういうことだろうか?」となるのです。

では、なぜソフト404に注意する必要があるのか、ということについてです。

ソフト404は、私たちユーザーには大きな支障はありませんが(ページは表示されませんが)、クローラーにとって大きな支障が出てしまいます。
コンテンツが存在しないページであっても、クローラーはサーバからステータスコード200を受信しているので通常通りサイト内をクロールします。

その結果、本来クロールされるべきページのクロールが遅れてしまったり、クローラーのクロール頻度が低下してしまうことになります。
クロールが遅れる・頻度が下がることによって、ページがなかなかインデックスされないという事態にもなります。

そして、気になるのが「ソフト404によるSEOへの影響」だと思います。
実はソフト404によって、ペナルティを受けたり、サイトのSEO評価が大きく下がってしまうことはないとされています。

しかし、前述の通りクローラーに与える影響はあります。
なので、直接的にサイト順位が落ちることはなくても、
クローラーの効率が下がることにより新しく追加したページのインデックスが遅くなるなど、間接的にSEOへの影響が出てくる可能性があります。

まとめ

今回は代表的なステータスコードについて解説しました。
それぞれのステータスコードが持つ意味を把握しておくことはサイトを運営する上で大切なことです。

ページが表示されないなどのエラーはユーザーの離脱を招くものでもあるので、
まずは代表的なステータスコードは理解しておくようにしましょう。