概念

404Not Found

要求されたURLのリソースが見つからないことを示すHTTPステータスです。削除・移転・入力ミスを切り分け、代替ページがあるかどうかで404と301の対応を選びます。

30秒で理解

404 Not Foundは、サーバーがリクエストされたリソースを見つけられないときに返すHTTPステータスです。URLの入力ミス、ページの削除、リダイレクトなしの移転などで発生します。

404そのものが「永久に消えた」と断定するコードではありません。今は見つからないだけなのか、代替ページへ移したのかを、サイト側で判断します。

住所を尋ねたら、その住所には該当する部屋がなかった状態です。建物自体が移転したなら新住所を案内し、行き先がなければ「この住所にはもうありません」と伝えます。

どういう仕組みか

ブラウザーやクローラーがURLをリクエストすると、サーバーはステータスコードと本文を返します。404では、要求されたURLに対応するページやファイルを返せないことを伝えます。

状態返す応答使う場面
対応するページがない404 Not FoundURLの入力ミス、削除済みで代替ページがない
代替ページへ移した301旧URLと内容が対応する新URLがある
もう戻らず削除した410 Goneリソースが恒久的に消えたことを明示したい
エラー画面を表示するのに成功扱い200soft 404。存在しないページを200で返す実装上の問題

カスタム404ページを用意しても、見た目のページへ転送するだけでは不十分です。存在しないURLへのレスポンスが実際に404になっているかを確認します。

どこで見えるか

404は、ブラウザーの画面だけでなく、HTTPレスポンス、サーバーログ、Search Consoleで確認します。画面に「見つかりません」と表示されても、ステータスが200ならsoft 404の可能性があります。

知りたいこと開く場所・操作見る項目
実際のステータスターミナルで curl -I https://example.com/存在しないパスHTTP/... 404 になっているか
転送先の有無ターミナルで curl -IL https://example.com/旧パス301のLocationと最終応答
Googleが把握した問題Search Console →「ページ」404、soft 404の理由と対象URL
1本のURLの取得結果Search Console →「URL検査」ライブテスト、クロール、インデックス登録の状態
発生元サーバーログ、アクセス解析リクエストされたURL、参照元、発生時刻

Search Consoleに出る404には、外部サイトの古いリンクや、誰かが適当に入力したURLも含まれます。件数だけでなく、そのURLに訪問者や重要な参照元があるかをログで照合します。

よくある誤解

404が1件でもあると、サイト全体の検索順位が下がるという意味ではありません。まず、そのURLが本当に不要なのか、移転先があるのかを確認します。

存在しないURLをすべてトップページへ送る設定は避けてください。内容の対応しないURLを無関係なページへ転送すると、ユーザーが迷い、Googleからsoft 404とみなされる場合があります。

また、404を隠すために、すべてのURLへ200を返す方法も解決になりません。存在しないページなら404または410、明確な移転先があるなら301というように、URLの状態と応答をそろえます。

これを踏まえて何をするか

404を見つけたら、次の順番で1URLずつ判定します。最初に開く場所は、Search Consoleの「ページ」またはサーバーログです。

順番開く場所操作判定後の対応
1Search Console →「ページ」またはサーバーログ404の対象URLと、流入元・アクセスの有無を確認する実際に使われているURLから調べる
2ブラウザーとターミナルURLを開き、curl -Iでステータスを確認する画面とHTTP応答が一致しなければ配信設定を直す
3CMSのURL一覧・サイトマップ・公開履歴ページが削除されたのか、URLだけ変わったのかを確認する内容が残っていれば新URLを特定する
4リダイレクト設定代替ページがあるなら旧URLから対応する新URLへ301を登録するcurl -ILで最終URLと応答を再確認する
5対象ページのリンク一覧代替ページがないなら、サイト内リンクとサイトマップから旧URLを外す404または410を返す状態を維持する
6Search Console →「URL検査」修正した旧URLと新URLをそれぞれ検査する301、404、200のどれが返るかを記録する

移転先を決められない404を、推測でトップページへ送らないでください。対応する内容がないなら、カスタム404画面にホームや検索などの行き先を置きつつ、HTTP応答は404のままにします。

最初の1件を調べるなら、Search Consoleの「ページ」で対象URLを開き、次にターミナルで curl -I を実行してください。表示内容とステータスコードが一致しているかが、最初の判定になります。

一次情報

普遍的な内容なので、定期の見直し対象にしていません。