404 not found(404エラー)とは?発生する原因は?解決と必要性を考えます。

404eroorイメージ

ホームページを閲覧していて、「404 not found」や「404エラー」いう文字が表されたことはありませんか?
このページが表示されると、コンテンツや文章が空っぽになっていて戸惑うこともあります。
404 not foundは、存在しないページがリクエストされ、サーバーから「そんなページはありません」とエラーが返されるときに表示されるコードです。
かなりメジャーなコードなので、Webサイトを運営しているのであれば発生する原因と対処方法は理解しておくべきです。

そこで、今回は404 not foundがもたらす意味・原因・解決法などについて徹底解説します。

目次

404 not found(404エラー)の概要

404 not foundとは

ホームページ閲覧中に、「404 error」「404 not found」、または404の数字が表示されずに「Not found」と表示されるケースが多々あります。
このような現象がネット上で発生することを404 not found、または404エラーといった呼び方をします。
このような文字が表示された場合、もともとはネット上に存在していないページにリクエストが来たことを意味します。その場合、サーバーはブラウザに対して404の3ケタの番号のエラーコードを表示する仕組みです。

ただし、実際に404 not foundが表示された場合でも、画面上には404の3ケタ番号が表示されないケースもあります。
そのような場合は、「お探しのページが見つかりません」といった文章が表示されることがあります。

404はHTTPステータスコード

404 not foundについてさらに専門的に解釈すると、HTTPステータスコードの一種として区分されます。
HTTPステータスコードについて、HTTPとステータスコードの2つに分解して、それぞれの定義について下記の通り説明しましょう。
HTTPとは英語で「Hypertext Transfer Protocol」(ハイパーテキスト・トランスファー・プロトコル)の頭文字をとった呼び方。
URLの頭には必ずこの「http」の4つの文字が小文字で表示されていますが、近年はセキュリティが万全な「https」から始まるurlも増えています。

ステータスコードのことをHTTPステータスコードとも言い、3ケタの番号で表記します。
ネット上でもっともよく見かける3ケタの番号と言えば404ですが、実は404以外にも多数の3ケタ表示のステータスコードが存在します。

詳しくはこのページのHTTPステータスコードについて

403エラーと404 not foundの違い

404と1番違いの403エラーとは、どのような違いがあるのでしょうか。
ホームページにアクセスすると「403 forbidden」(forbidden=禁止)という文字が表示されることがまれにあります。
これは、404のようにアドレス間違いではなく、ホームページ自体が閲覧できない状態、もしくは閲覧禁止の状態です。
アクセスしたページ自体はあるものの、サイト運営者側の意図で閲覧を制限したことが原因で起こることが多いです。
または、運営者側のミスが原因で403エラーが出るケースもあります。
404のエラーページが表示された場合は自己解決が可能ですが、403の場合は運営者側の問題なので、サイト訪問者が自己解決することは不可です。

なぜ404 not found(404エラー)が発生するのか 原因を探る

もともとページが存在しない

404 not foundが発生する最大の原因は、リクエストされたページがもともと存在しないことにあります。
ホームページを閲覧するのにurlをすべて手打ちで入力するケースは今では少なくなりましたが、スペル間違いが原因で404 not foundが出ることはよくありがちです。

存在していたページが削除された

リクエストされたページはもともとは存在していたものの、削除されてしまったことが原因でページが表示できなくなり、404 not foundが出ることもあります。
しかし、もともとは存在していたページが削除された場合は、ステータスコードの表示は410のほうが適切です。

410は正式には「410 Gone」と表示され、「もともとは存在していたページですが、すでに削除・消滅しました」という意味を表します。これに対して、404は厳密には「削除・消滅」ではなく、最初からそのページはなかったこと」を意味します。

リンク先アドレス設定の間違い

サイト内でリンク先のアドレスを間違えたことが原因で、404 not found表示が出るケースもあります。リンク先のアドレスがもともと存在しないページである場合、404 not found表示が出たら速やかに正しいリンク先アドレスに訂正しましょう。

404 not found(404エラー)の必要性について

もたらす効果

ホームページを閲覧中に突然404 not foundが表示された場合、「404 not found」の意味が理解できていない人なら、きっとびっくりすることでしょう。
しかし、404のもともとの意味をきちんと理解している人であれば、閲覧中にどんな現象が起こったのか、その原因についてある程度は探ることができます。
urlの入力間違いであれば原因は自分にありますが、リンク先アドレス間違いの場合はサイト運営側に原因があります。原因をある程度追求できるという点では、404 not foundのもたらす効果は大きいと言えるでしょう。
404 not found表示によって、その運営サイトから発信されるメッセージをキャッチできます。

表示するメッセージは?

404 not foundが表示された場合、ウエブサイト上で何が起こったのか、明確にしておく必要があります。
404の意味が理解できていない人にとっては、「なんで3ケタの数字が出てくるのか」「コンテンツが表示されない」と戸惑うこともあるからです。
404という一見得体の知れないページが登場したことで、そのサイトから離脱してしまう人も出てくる可能性もあります。
しかし、404 not foundを一目見て、どんな現象なのかわかるように文章で明記しておけばわかりやすいです。

404 not foundでもっとも多いのが、「URLが変更された可能性」があることを示す文章です。
または「ページが削除された可能性」があることを表す文章を明記しても良いですが、先にお伝えしたように404よりは410のほうが妥当です。
404 not foundにいくつかの原因について複数掲載しておくと、サイト訪問者にとってはわかりやすくて安心感があります。

確認事項と解決策を記しておく

404 not found上に、原因のみを表記するだけでは物足りなさがあります。
さらに確認事項と解決策を記しておくと、サイトとしての信頼性がより高まります。
確認事項・解決策の一例として、「アドレスの入力が間違っていないかご確認下さい」「リンク先アドレスが間違っている場合など不具合を発見したらお手数ですがメールにてお問い合わせ下さい」などの文章を入れておくと良いでしょう。

デフォルトよりもカスタマイズがおすすめ

契約先のサーバーでは、あらかじめ404 not foundのフォーマットが用意されています。
デフォルト状態のものをもちろんそのまま使っても全然OKです。
しかし、サイト訪問者の視点に立って考えてみると、404 not foundを一目見るだけで、エラーの原因と解決策がわかるようにしておいた方が好感度と信頼度がより高まります。

契約先のレンタルサーバーのウエブサイトで、404 not foundの作成方法について詳しく説明しているところもあるので、参考にしておくと良いてしょう。

404 not found(404エラー)ページの作り方

ここで説明する方法は通常の静的Webサイトの場合でWordPressでの作り方とは違いますのでご注意ください。

404ファイルを作成する

404.htmlというファイルを作成します。
404.htmlの404は特に何でも構いませんがわかりやすいファイル名にしています。
デザイン的には他のページに合わせてヘッダー・フッターを同じにします。

404エラーページは、入力したURLが間違っていた場合などに表示される特殊なページです。
コンテンツが含まれているわけではないので、Googleなどの検索エンジンにインデックスされないように、

というメタタグを <head>と </head>の間に挿入しておきます。

表示する文字列は、

のような感じでよろしいかと思います。以下の画像のようになります。

404サンプル

「.htaccess」ファイルを準備する

上記で作成した404.htmlページを表示するには「.htaccess」というファイルでサーバーの設定を変える必要があります。

「.htaccess」ファイルに次の1行を記述することで、作成した404エラーページが表示されます。
ただし、レンタルサーバーによってはこの「.htaccess」ファイルが利用できない場合もありますので注意が必要です。

「404.html」と「.htaccess」ファイルをサーバーにアップロードする

作成した404 not found(404.html)と「.htaccess」ファイルをサーバーにアップロードします。
「.htaccess」ファイルは、404 not foundはドキュメントルートにアップロードします。

正常に404エラーページが表示されるか確認するには、存在しないURLを入力して、404 not foundが表示されるかになります。
作成した404エラーページが表示されれば、設定は完了です。

HTTPステータスコードについて

404というコードはHTTPステータスコードということは前述ですが、実は404以外にも多数の3ケタ表示のステータスコードが存在します。100番台から500番台までに区分されており、それぞれの数字には意味があります
以下「クライアント」というワードが出てきますが、これはユーザーが使っているパソコンやスマホなどの端末側のことを指します。

100~  (情報)

リクエストは受け取られ、処理は継続されているんだけれども、情報をもっと必要としたり、処理中であるという状態。

100 継続
クライアントはリクエストを継続できる状態で、サーバがリクエストの最初の部分を受け取り、まだ拒否していないことを示しています。

101 プロトコル切替
サーバはリクエストを理解し、遂行のためにプロトコルの切り替えを要求しています。
サーバーがhttp2.0だからクライアントにhttp2.0に切り替えてと要求している状態です。

102 処理中
処理が継続されて行われていることを示します。(WebDAVの拡張ステータスコード)

103 早期のヒント
このステータスコードは最終的なコンテンツを確定する前に、予想されるヘッダを先に伝えます。
たとえば、HTTP2で新しくできたLinkヘッダ(CSSやJSなどのファイルを読み込みむlink)を先にクライアントに渡しすことでクライアント側の処理を高速化します。

200~  (成功)

サーバーへのリクエストは受け取られ、理解され、正常に反応された状態。

200 OK
リクエストは正しく処理され、レスポンスとともに要求に応じた情報が返される状態。
私たちがホームページを問題なく表示された場合は、ほぼこのステータスコードを返しています。

201 作成
リクエストは完了し、新たに作成されたリソースのURIが返される状態。
POSTやPUTメソッドを使われた際に返します。

202 受理
リクエストは受理されたが、処理は完了していない状態

203 信頼できない情報
オリジナルのデータではなく、ローカルやプロキシ等からの情報であることを示しています。

204 内容なし
リクエストを受理したが、返すべきレスポンスエンティティが存在しない状態。
例: POSTメソッドでフォームの内容を送信したが、ウェブブラウザの画面を更新しない場合に返されます。

205 内容のリセット
リクエストを受理し、ユーザエージェントの画面をリセットする場合に返されます。
例: POSTメソッドでフォームの内容を送信した後、ウェブブラウザの画面を初期状態に戻す場合に返されます。

206 部分的内容
部分的GETリクエストを受理したときに、返されます。
例: ダウンロードツール等で分割ダウンロードを行った場合や、レジュームを行った場合に返されます。

300~  (リダイレクション)

リクエストを完了させるために、追加的な処理が必要な状態。

300 Multiple Choices
リクエストに対して複数のレスポンスがあることを示します。ユーザーエージェントやユーザーは、それらからひとつを選択します。
パソコン画面とスマートフォン画面でWebアプリケーションが別れている場合に利用したりします。

301 Moved Permanently
リクエストしたリソースのURLが恒久的に移動されているときに返されます。Location:ヘッダに移動先のURLが与えられます。
ホームページが移転した場合などに用いたり、ホームページ移転の特殊な場合として、HTTPからHTTPSへの移転も該当します。
そのほか、ファイルではなくディレクトリに対応するURLの末尾に/を書かずにアクセスした場合に返されます。

302 Found
リクエストしたリソースが一時的に移動されているときに返されます。Location:ヘッダに移動先のURLが与えられます。
元々はMoved Temporarily(一時的に移動した)で、本来はリクエストしたリソースが一時的にそのURLに存在せず、別のURLにある場合に使用するステータスコードでありました。
しかし、例えば掲示板やWikiなどで投稿後にウェブブラウザに対して他のURLに転送させたいときにもこのコードが使用されるようになったため、302はFoundになり、新たに303・307が作成されました。

303 See Other
リクエストに対するレスポンスが他のURLに存在するときに返されまする。Location:ヘッダに移動先のURLが与えられます。
Location:ヘッダで指示されるリソースに対してGETでリクエストしなければなりません
リクエストしたリソースは確かにそのURLにあるが、他のリソースをもってレスポンスとするような場合に使用します。
302の説明で挙げたような、掲示板やWikiなどで投稿後にウェブブラウザに対して他のURLに転送させたいときに使われるべきコードとして導入されました。

304 Not Modified
リクエストしたリソースは更新されていないことを示します。
例として、 If-Modified-Since:ヘッダを使用したリクエストを行い、そのヘッダに示された時間以降に更新がなかった場合に返されます。

400~  (クライアントエラー)

クライアント(ユーザー)からのアクセス・リクエストに誤り(エラー)がある状態。

400 Bad Request
定義されていないメソッドを使うなど、サーバーがリクエストを理解できない場合に返されます。

401 Unauthorized
Basic認証などなので未認証の場合に返されます。

402 Payment Required
デジタル決済システムで使用するために作成されたコードで、現在は実装されておらず、将来のために予約されています。

403 Forbidden
リソースにアクセスすることを拒否された。リクエストはしたが処理できない状態です。
アクセス権がない場合や、ホストがアクセス禁止処分を受けた場合などに返されます。
401 とは異なり、クライアントの識別子がサーバーに知られています。

404 Not Found
ページが見つからなかった場合に返されます。

405 Method Not Allowed
サーバーがリクエストメソッドを理解しているものの、許可されていないメソッドを使用した状態のときに返されます。
例: POSTメソッドの使用が許されていない場所で、POSTメソッドを使用した場合に返されます。

500~  (サーバーエラー)

サーバがアクセス・リクエストの処理に失敗した状態。

500 Internal Server Error
サーバ内部エラー。サーバ内部にエラーが発生した場合に返されます。「何らかのサーバ内部エラー」という漠然とした意味で原因究明が難航するエラーです。
たとえば、CGI実行時、プログラムに文法エラーがあったり、設定に誤りがあった場合などに返されます。

501 Not Implemented
使用できないメソッドを使用した場合に返されます。

502 Bad Gateway
ゲートウェイ・プロキシサーバは不正な要求を受け取り、これを拒否した状態。つまりサーバー側で何らかのエラーが発生し、一時的にコンテンツが表示できない状態のことを意味します。

503 Service Unavailable
サービスが一時的に過負荷やメンテナンスで使用不可能である場合に返されます。
一時的にサーバにアクセスできない状態で、アクセス転送量が多い、一時的にウェブアクセスが集中している、CGIプログラムが誤作動を起こしているなどが原因として考えられます。

504 Gateway Timeout
ゲートウェイ・プロキシサーバはURIから推測されるサーバーが時間内にレスポンスを得られない場合に返されます。

404ソフトエラーとは?

404ソフトエラーというものがあり、純粋な404 not foundとは異なります。
では404ソフトエラーとはなんなのでしょうか?Googleの検索セントラルでは、

URL にアクセスしたときに、ページが存在しないことと 200 (success) のステータス コードをユーザーに伝えるページを返す URL のことを指します。

と記載されています。200 (success) というのは前述の200のステータスコードなのにページは存在しませんと意図的に明示しているページです。

404 not foundはステータスコードがきちんと404というコードを発行しており、404ソフトエラーは200という正常な状態を発行しているためGoogleボットは正常な404じゃないぞ?って困惑しているような状態なのです。Googleはおそらくページは存在しないんだな、とある程度は判断してくれるのでソフト404 not foundとわかるのですが、それでも好ましいことではありません。
404ソフトエラーはSEO的には不適切な状態で推奨されませんのできちんと404 not foundを表示させる状態を作ることが重要です。。

「送信されたURLはソフト404 not foundのようです」が表示される

Googleサーチコンソールにおいて「送信されたURLはソフト404 not foundのようです」と通知されたことがありませんか?
この通知はサーチコンソールのサイトマップを送信したURL一覧に該当のページが送られている可能性ああります。
もしこの通知がきて、そのURLが本当に不要なページであれば、サイトマップのURLを削除して送信しなおし、そのページを削除します。
そしてガバレッジ上で修正を送信しておけばしばらくすれば通知がきえるはずです。

404 not found(404エラー)に関するQ&A

faq

SEOへの影響は?

【Q】404 not foundが表示された場合、SEOで悪い影響を及ぼすのでは?

【A】404 not foundが表示されること自体は、別に悪い影響は考えられません。
ただし、404 not foundが表示された後、あまりにもサイト訪問者の離脱率が高い場合は、SEO対策に影響する可能性は「なし」とは言い難い部分もあります。
サイト訪問者にストレスを与えないように配慮することが、結局はアクセシビリティとユーザビリティの良さにつながります。

404 not foundでしっかりとした中身のある内容にしておけば、サイト訪問者にも安心感があり、SEO的にも良い評価を受ける可能性も考えられます。

WordPressに404 not foundがなかったら?

【Q】もし、WordPressに404 not foundがなかったら、どうなるのでしょうか?

【A】通常、WordPressには404 not foundとして404.phpというファイルがあらかじめ標準搭載されています。
仮にこの404.phpが存在しない場合、テンプレ階層の優先順位が最下位である「index.php」(トップページ)を表示させようとします。
しかし、トップページが表示されずにコンテンツの中身がない空の状態、テンプレのみが表示されるケースもあります。
サイト訪問者にとって不自然な表示になってしまうと、アクセシビリティが悪くなる可能性もあるので、やはり404 not foundは必要です。

WordPressの場合、使用するテーマによっては、404 not foundの表示内容やテンプレには違いがありますので、念のため要確認です。

404 not found表示を防ぐには?

【Q】404 not foundの表示をできるだけ避けるための対策は?
【A】サイト訪問者がurlの入力間違えで404 not foundが表示されるのは、仕方ありません。この表示をできるだけ防ぐには、リンク先のアドレス表示を間違えないことが肝心です。リンク先のページ数が多い場合は、入念に確認しておく必要があります。

404 not found(404エラー)の参考事例

KAGOYA

カゴヤ

レンタルサーバーでおなじみのカゴヤ(KAGOYA)の404 not foundです。
404の数字と簡単な文章のみ表示されていますが、ページ右上にはトグル型のメニューボタンが設置されているので、アクセシビリティは良いです。

さくらのレンタルサーバー

さくらのレンタルサーバー

さくらのレンタルサーバーでは、404 not found表示の下に、ページ削除または存在しない可能性を示唆するメッセージが表示されています。
サイトマップへのリンク先アドレスが貼られており、メインナビとフッターにもコンテンツが表示されていて見やすく工夫されています。

レンタルサーバーのCPI

cpi

KDDIグループのレンタルサーバーCPIでは、404が表示された原因について複数記載されています。サイト訪問者の視点に立ち、お問い合わせフォームにスムーズにリンクできます。

エックスサーバー

エックスサーバー エックスサーバーの404ページには、ヘッダーが固定されており右上にトグル型のメニューボタン、フッターにはサイトマップが表示されています。
「サイトマップより目的のページを」の文章でサイト訪問者を誘導し、サイト内の他のページにストレスなくアクセスできます。

ネット通販 base

base

「無料でネット通販開設」で人気のBASEでは、404の数字とシンプルな文章が画像のみで表示されています。ヘッダーにはメニューはありませんが、フッターに全コンテンツが掲載されているので、サイト閲覧もスムーズです。

大阪のWEB会社 ファーストネットジャパン

firstnetjapan

シンプルな文章を記載しており、ページ変更の可能性を示唆する内容、「トップページへ戻る」のリンクを貼っています。

まとめ

この記事では、404 not found表示の原因と必要性を中心に話を進めてきました。
404 not foundが表示されると、思わず「なにこれっ」と言いたくなることもあります。
しかし、このページが表示された背景には、必ず原因がいくつか考えられます。
仮にこのページが表示されたからといって、サイト訪問者にとって別に悪いことは何もありません。

逆に、サイト運営側の視点に立つと、404 not foundは極めて重要な役割を果たしていることに気付くべきです。頻繁に404 not foundが表示される場合は、リンク先アドレスが間違っている可能性が高いので、くまなくチェックしておくことが肝心です。

サイト制作に余裕があれば、初期設定の素っ気もない404 not foundを楽しいイラストを入れたり、ユニークなコメントを入れたり、カスタマイズしてみるのも面白いです。
また、404 not found内にサイトマップを配置しておくと、お探し中のページが見つかりやすくなり、アクセシビリティがアップします。
結論ですが、サイト制作側にもサイト訪問者にとっても404 not foundは非常に重要です。
この記事全体を通して、404 not foundの必要性について理解を深めるきっかけになれば幸いです。

 

SEO対策をご検討中ですか?

ホームページから売上が上がっていますか?集客ができていますか?

ホームページ制作大阪ドットコムでは、1998年の創業から培ってきた知見・経験を基に、良質かつユーザー第一のホームページを制作して参りました。
その長い経験の中でWEBマーケティングの知見も豊富に持ち、SEO対策を基本とし、SNS運用・リスティング広告運用などを得意としています。

SEO対策について詳しく見る