404 Not Found
404 Not Found
ブラウザなどのクライアントがサーバーに対してリクエストを送った際、指定されたURLに該当するページやファイルが見つからない場合に返されるHTTPステータスコードのことです。
🐾 猫で例えると?
写真ではカーテンの向こうに猫たちが見えます。では、同じ場所をのぞいても一匹もいなかったら、と想像してみましょう。「探しているものは、この場所にはない」と返すのが404のイメージです。HTTPでも、要求された対象が見つからないことを応答で知らせます。猫が別室へ移った理由まで、その返事だけで分かるわけではありません。
💻 IT現場における「404 Not Found」とは?
404は「4xx:クライアントエラー」の分類ですが、利用者の操作が悪いと断定する番号ではありません。サイト側のリンク切れや公開設定の誤りでも発生します。また、404だけでは一時的な不在か恒久的な削除かを区別できません。
原因として、URLの打ち間違い、ページの削除、移転後の転送漏れなどがあります。削除済みで代わりのないURLが404を返すのは正常です。大切なのは、存在するはずのページやサイト内の案内リンクが意図せず404になっていないかを確認することです。
⚠️ 404 Not Foundの仕組みと注意点
ブラウザがWebサイトを表示しようとする際、裏側では「HTTPリクエスト」と「HTTPレスポンス」のやり取りが行われています。404レスポンスが返されるまでの流れは以下の通りです。
- ユーザーが特定のURLをクリック、またはアドレスバーに入力する。
- ブラウザがサーバーに「このページをください」とリクエストを送る。
- サーバーが自らのファイルシステムやデータベースを検索する。
- 該当するデータが見つからなかった場合、サーバーはステータスコード「404」を返却する。
カスタム404ページの重要性
サーバー標準の無機質なエラー画面が表示されると、ユーザーは「サイトが壊れた」と勘違いして離脱してしまいます。そのため、モダンなWeb開発ではブランドに合わせた「カスタム404ページ」を用意するのが一般的です。猫の画像や、サイト内検索、トップページへのリンクを配置することで、ユーザーを正しく誘導することができます。
// Expressアプリで、通常のルート定義より後に置く
app.use((req, res) => {
res.status(404).send('お探しのページは見つかりませんでした。');
}); これは初期化済みのExpressアプリへ追加する断片です。見た目の404画面を表示しても、HTTPステータスが200のままだと「ソフト404」と扱われる場合があります。ブラウザーの開発者ツールのNetworkで、実際の応答コードも確認しましょう。
🛠️ 404 Not Foundを賢く管理するためのポイント
エラーは無いに越したことはありませんが、発生した際にどう対処するかがWebエンジニアの腕の見せ所です。
- 定期的なリンク切れチェック: 内部リンクが404になっていないか、クローリングツールを使って監視しましょう。
- 移転先がある場合に転送する:同じ内容の新URLがあるなら301などで転送します。無関係なトップページへ一律に飛ばすと、利用者が目的の情報へたどり着けなくなります。
- Google Search Consoleの確認: 検索エンジンが発見した「見つからないURL」を定期的にチェックし、意図しないエラーを修正します。
猫が見当たらないときに探す場所を変えるように、404画面でも次の行き先を案内します。関連ページやトップへのリンクを用意し、URLの誤りやサイト内のリンク切れを確認しましょう。移転先が決まっているページは、そのページへの転送を検討します。