30秒で理解
404 Not Foundは、サーバーがリクエストされたリソースを見つけられないときに返すHTTPステータスです。URLの入力ミス、ページの削除、リダイレクトなしの移転などで発生します。
404そのものが「永久に消えた」と断定するコードではありません。今は見つからないだけなのか、代替ページへ移したのかを、サイト側で判断します。
住所を尋ねたら、その住所には該当する部屋がなかった状態です。建物自体が移転したなら新住所を案内し、行き先がなければ「この住所にはもうありません」と伝えます。
どういう仕組みか
ブラウザーやクローラーがURLをリクエストすると、サーバーはステータスコードと本文を返します。404では、要求されたURLに対応するページやファイルを返せないことを伝えます。
| 状態 | 返す応答 | 使う場面 |
|---|---|---|
| 対応するページがない | 404 Not Found | URLの入力ミス、削除済みで代替ページがない |
| 代替ページへ移した | 301 | 旧URLと内容が対応する新URLがある |
| もう戻らず削除した | 410 Gone | リソースが恒久的に消えたことを明示したい |
| エラー画面を表示するのに成功扱い | 200 | soft 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の「ページ」またはサーバーログです。
| 順番 | 開く場所 | 操作 | 判定後の対応 |
|---|---|---|---|
| 1 | Search Console →「ページ」またはサーバーログ | 404の対象URLと、流入元・アクセスの有無を確認する | 実際に使われているURLから調べる |
| 2 | ブラウザーとターミナル | URLを開き、curl -Iでステータスを確認する | 画面とHTTP応答が一致しなければ配信設定を直す |
| 3 | CMSのURL一覧・サイトマップ・公開履歴 | ページが削除されたのか、URLだけ変わったのかを確認する | 内容が残っていれば新URLを特定する |
| 4 | リダイレクト設定 | 代替ページがあるなら旧URLから対応する新URLへ301を登録する | curl -ILで最終URLと応答を再確認する |
| 5 | 対象ページのリンク一覧 | 代替ページがないなら、サイト内リンクとサイトマップから旧URLを外す | 404または410を返す状態を維持する |
| 6 | Search Console →「URL検査」 | 修正した旧URLと新URLをそれぞれ検査する | 301、404、200のどれが返るかを記録する |
移転先を決められない404を、推測でトップページへ送らないでください。対応する内容がないなら、カスタム404画面にホームや検索などの行き先を置きつつ、HTTP応答は404のままにします。
最初の1件を調べるなら、Search Consoleの「ページ」で対象URLを開き、次にターミナルで curl -I を実行してください。表示内容とステータスコードが一致しているかが、最初の判定になります。