自社サイトを見ていたら突然「404 Not Found」「ページが見つかりませんでした」と表示され、何が起きたのか分からず不安になった経験はないでしょうか。404エラーはWebサイトを運営していれば必ず遭遇するもので、実は多くの場合そこまで深刻な問題ではありません。ただし「放置しても良い404」と「必ず直すべき404」の見分けがつかないまま対応すると、機会損失につながることもあります。この記事では、404エラーの意味と発生原因、SEOへの影響、Search Consoleでの見つけ方、具体的な対処法、そしてオリジナル404ページの作り方までを整理して解説します。
404エラー(404 Not Found)とは
404エラーとは、Webサーバーにアクセスしたものの、リクエストされたURLに対応するページ(リソース)がサーバー上に見つからなかったことを示すHTTPステータスコードです。正式名称は「404 Not Found」で、読み方は「よんまるよん」または「よんぜろよん」と読まれるのが一般的です。
重要なのは、404が返ってきた時点でサーバー自体には到達できているという点です。サーバーがダウンしていたり、ドメイン名が解決できなかったりする場合は404ではなく別のエラー(500番台やDNSエラー)になります。「404エラーの原因はDNSですか?」という疑問を持つ方もいますが、DNSの問題であればそもそもサーバーに到達できず、404という応答自体が返ってきません。
HTTP仕様を定めたRFC 9110では、404は「オリジンサーバーが対象リソースの現在の表現を見つけられなかった、あるいはその存在を開示する意思がない」状態と定義されています。つまり「本当に無い」場合だけでなく、「あるかどうかを教えたくない」場合にも404を返してよい、という設計になっています。
HTTPステータスコードの基本
404を理解するには、HTTPステータスコード全体の体系を押さえるのが近道です。ステータスコードは3桁の数字で、百の位が意味の大分類を表します。
| 分類 | 意味 | 代表例 |
|---|---|---|
| 100番台 | 情報(処理継続中) | 100 Continue |
| 200番台 | 成功 | 200 OK、204 No Content |
| 300番台 | リダイレクト(転送) | 301 Moved Permanently、302 Found |
| 400番台 | クライアントエラー | 400 Bad Request、403 Forbidden、404 Not Found、410 Gone |
| 500番台 | サーバーエラー | 500 Internal Server Error、503 Service Unavailable |
404は400番台、つまりクライアント側のリクエストに問題があるという分類に属します。存在しないURLを要求したリクエスト側の誤りとして扱われる、という考え方です。
同じ400番台で混同されやすいコードとの違いも整理しておきましょう。
| コード | 意味 | 状況 |
|---|---|---|
| 403 Forbidden | アクセス権がない | ページは存在するが、パーミッションやIP制限などで閲覧を拒否されている |
| 404 Not Found | 見つからない | 指定URLに対応するページが存在しない(一時的か恒久的かは示さない) |
| 410 Gone | 完全に削除済み | ページを恒久的に削除し、今後も復活しないことを明示する |
「403エラーと404エラーの違い」は、ざっくり言えば「入れない」か「無い」かです。403はコンテンツ自体は存在するが権限で弾かれている状態、404はそもそも対象が見つからない状態を指します。
410については、MDNも「リソースが恒久的に削除された場合は404ではなく410を返すべき」と説明しています。404は一時的か永続的かを区別しないため、二度と復活させないページには410のほうが意図が正確に伝わります。検索エンジンのインデックスからの削除も、410のほうがやや早い傾向があるとされています。ただし実務上は404でも最終的にインデックスから外れるため、410は「サービス終了」「大量ページの一括廃止」など明確な意図がある場合に使うと考えておけば十分です。
なぜ「404」という数字なのか
「404はCERN(欧州原子核研究機構)の404号室に由来し、ファイルが見つからないと『404号室から応答なし』と言い合っていた」という話を聞いたことがあるかもしれません。これは有名なエピソードですが、都市伝説として否定されている説です。CERN側の関係者から、該当する部屋が存在しなかったという趣旨の否定がなされています。
より妥当な説明は、単純な採番の順序です。クライアントエラーを表す400番台に、400 Bad Request、401 Unauthorized、402 Payment Required、403 Forbiddenと順に割り当てていった結果、「見つからない」を意味するコードが5番目の404になった、というものです。ロマンのある由来ではありませんが、百の位が「クライアントエラー」、下2桁が具体的なエラー内容を表す、という体系を理解しておくほうが実務では役立ちます。
404エラーが起こる主な原因
404エラーが「急に」表示されるようになると焦りますが、原因はいくつかのパターンに整理できます。
URLの入力間違い・タイプミス
もっとも単純で、もっとも多いのがこれです。ユーザーがアドレスバーに直接URLを打ち込んだ際のスペルミス、末尾のスラッシュの有無、全角と半角の混在、コピペ時に余分な文字が混ざるといったケースが該当します。
見落としやすいのが大文字・小文字の区別です。多くのLinuxサーバーではURLのパス部分は大文字小文字を区別するため、/Service/ と /service/ は別のURLとして扱われ、片方が404になります。また、メールマガジンやPDF資料に載せたURLが途中で改行され、リンクが途切れて404になるトラブルも頻発します。
ページが削除・非公開になっている
キャンペーン終了、商品の販売終了、古い記事の整理などでページを削除すれば、当然そのURLは404になります。「404エラーページはURLが原因ですか?」という質問がよくありますが、URL側の誤りだけでなく、コンテンツ側が消えているケースも同じくらい多いということです。
WordPressで記事のステータスを「公開」から「下書き」や「非公開」に戻した場合も、そのURLは訪問者から見れば404(または権限によっては別の応答)になります。意図的な削除であれば問題ありませんが、外部サイトからリンクされていたページや、検索経由で流入があったページを何の手当てもなく消すのは避けたいところです。
URLの変更・リニューアル時のリダイレクト漏れ
サイトリニューアル後に404が大量発生するのは典型的なパターンです。ディレクトリ構成の変更、CMSの入れ替え、パーマリンク構造の変更、HTTPSへの移行、www有無の統一などでURLが変わったにもかかわらず、旧URLから新URLへの301リダイレクトを設定していない、あるいは設定漏れがあると、旧URLへのアクセスがすべて404になります。
このケースは被害が大きくなりがちです。検索結果に残っている旧URL、他社サイトからの被リンク、SNSでシェアされたURL、ユーザーのブックマークがすべて404に着地するため、リニューアル直後にアクセスが急減する原因になります。
サーバー・ドメイン設定の不備
サーバー移転直後にファイルが正しく転送されていない、ドキュメントルートの設定がずれている、.htaccessの記述ミスでリライトルールが壊れている、といった環境側の問題でも404は発生します。
WordPressで「トップページは表示できるのに、個別記事や固定ページだけが404になる」場合は、ほぼこのパターンです。WordPressはきれいなURLを実現するためにサーバーのリライト機能(Apacheのmod_rewriteなど)を使っており、この仕組みが働かないとトップページ以外が軒並み404になります。
404エラーとSEOへの影響
「404エラーを放置するとどうなる?」「404エラーはSEOに影響しますか?」は、この分野で最も多い疑問です。結論から整理します。
404エラー自体はサイト評価に直接悪影響を与えない
Googleは公式に、404エラーはサイトのインデックス登録や検索順位に影響しないという趣旨の見解を繰り返し示しています。Google Search Centralのブログでも早い時期から「404はサイトを傷つけない」と説明されており、Search Relations チームのJohn Mueller氏も近年、404は品質シグナルでもランキングシグナルでもないという趣旨の発言をしています。
404はWebにおいてごく自然に発生するものです。ページを消せば404になるのが正しい挙動であり、Googleもそれを前提にクロールしています。したがって、Search Consoleに「見つかりませんでした(404)」が並んでいるだけでパニックになる必要はありません。
ただし、ここには重要な但し書きがあります。「404というステータスコードそのものは順位を下げない」のであって、「404が発生する原因となった判断」が無害とは限らない、という点です。評価が集まっていたページを何の対策もなく消せば、そのページが持っていた被リンクの価値も検索流入も失われます。ダメージを与えるのは404という数字ではなく、中身を失ったことです。
放置してはいけないケース(内部リンク切れ、大量発生)
一方で、次のような404は放置すべきではありません。
| ケース | 何が問題か | 対応方針 |
|---|---|---|
| サイト内の内部リンクが404になっている | ユーザーが行き止まりに突き当たる。クローラーの巡回効率も落ちる | リンク先URLを修正、または適切なページへ張り替える |
| 流入・被リンクがあったページが404 | 検索流入と外部評価をそのまま失う | 内容が近い代替ページへ301リダイレクト |
| リニューアル後に旧URLが大量404 | 主要導線がまとめて機能しなくなる | 旧→新のURL対応表を作り、一括でリダイレクト設定 |
| ナビゲーションやCTAのリンク切れ | コンバージョン導線が途切れる | 最優先で修正 |
| 外部サイトの誤リンクによる404 | 影響は限定的 | 流入が多ければ受け皿を用意、少なければ放置可 |
判断軸はシンプルで、「そのURLに人が来ているか」「サイト内から自分でリンクしているか」の2点です。誰も訪れず、内部リンクもされていない404は基本的に放置して構いません。逆に、内部リンク切れは自社の管理不足そのものなので必ず直します。
ソフト404との違いと注意点
404まわりで本当に注意すべきなのがソフト404です。ソフト404とは、実質的にコンテンツが存在しない、あるいは「ページが見つかりません」という内容を表示しているのに、サーバーが200 OK(正常)を返してしまっている状態を指します。
| 種類 | 表示内容 | 返すステータスコード | 検索エンジンの解釈 |
|---|---|---|---|
| 正しい404 | 「ページが見つかりません」 | 404 | 存在しないページとして扱う |
| ソフト404 | 「ページが見つかりません」等の実質空ページ | 200 | 正常なページとして扱おうとして混乱する |
ソフト404が問題なのは、検索エンジンに「中身のないページが正常に存在している」と誤解させてしまう点です。Google Search Consoleで「送信されたURLはソフト404エラーのようです」と表示された場合は、次のいずれかの対応を取ります。
- インデックスさせたいページの場合:コンテンツが薄すぎる、主要素がJavaScriptで描画されクローラーに見えていない、リソースがrobots.txtでブロックされている等の理由でGoogleが「実質空」と判断している可能性がある。中身を充実させ、URL検査ツールの「公開URLのテスト」でレンダリング結果を確認する
- 本当に存在しないページの場合:正しく404(または410)を返すよう設定する
- 移転済みの場合:新しいURLへ301リダイレクトする
自作の404ページを用意したときに、見た目は404なのにステータスコードは200を返しているという設定ミスは非常によく起こります。オリジナル404ページを作ったら、必ずステータスコードを確認してください。
自社サイトの404エラーを見つける方法
Google Search Consoleでの確認方法
自社サイトの404を把握する基本ツールがGoogle Search Consoleです。手順は次のとおりです。
- Search Consoleにログインし、対象プロパティを選択する
- 左メニューの「インデックス作成」→「ページ」(ページインデックス登録レポート)を開く
- 「ページがインデックスに登録されなかった理由」の一覧から「見つかりませんでした(404)」をクリックする
- 該当URLの一覧と検出日時が表示されるので、心当たりのあるURLがないか確認する
- 個別URLの「URLを検査」から、参照元やクロール状況を確認する
一覧を見るときは、上から順に潰そうとせず、「そのURLは自社が意図して公開していたものか」でふるいにかけます。存在した記憶のないURL(スパム的なクロールや外部の誤リンク)は放置して問題ありません。
Search Console以外では、次の方法も併用できます。
| 手段 | 分かること | 特徴 |
|---|---|---|
| Search Console(ページインデックス登録レポート) | Googleが検出した404 URL | 無料。検索エンジン視点での実態が分かる |
| Screaming Frog SEO Spider等のクロールツール | サイト内リンク切れ、リンク元ページ | 無料版は500URLまでクロール可能。内部リンク切れの発見に強い |
| サーバーのアクセスログ | 実際に404が返された回数とリファラー | 実トラフィックの多い404を特定できる |
| アクセス解析ツール | 404ページの閲覧数 | 404ページに識別用の計測を仕込む必要がある |
内部リンク切れの洗い出しにはクロールツール、実害の大きい404の特定にはアクセスログ、という使い分けが効率的です。
404エラーへの対処法
URLの確認・修正
まず疑うべきは単純なミスです。
- URLのスペル、スラッシュの有無、大文字小文字を確認する
- ブラウザのキャッシュとCookieをクリアして再読み込みする(表示だけが古い可能性)
- 別のブラウザ、シークレットウィンドウ、スマートフォン回線からアクセスして再現するか確認する
- CDNやサーバーのキャッシュ、WordPressのキャッシュ系プラグインのキャッシュを削除する
- FTPや管理画面で、該当ファイル・記事が実際に存在しているか確認する
「自分だけ404になる」「特定端末だけ404になる」場合はキャッシュ由来である可能性が高く、キャッシュ削除で解消するケースが多くあります。
なお、すでに消えてしまったページの中身をどうしても確認したい場合は、Internet Archiveの「Wayback Machine」などのアーカイブサービスで過去のスナップショットを探す方法があります(すべてのページが保存されているわけではありません)。
301リダイレクトの設定
移転・URL変更が原因の404は、301リダイレクトで解決します。 301は「恒久的な移転」を意味し、旧URLが得ていた評価を新URLへ引き継げるとされています。
Apache環境で.htaccessに記述する場合の基本形は次のとおりです。
# 個別ページの転送
Redirect 301 /old-page.html https://example.com/new-page/
# ディレクトリ単位・正規表現での転送
RedirectMatch 301 ^/old-dir/(.*)$ https://example.com/new-dir/$1
設定時の注意点をまとめます。
- 編集前に必ず.htaccessのバックアップを取る。記述ミスでサイト全体が500エラーになることがある
- 転送元は自ドメイン内のパス、転送先は絶対URLで書くのが安全
- リダイレクトが連鎖(旧→中間→新)しないよう、最終URLへ直接向ける
- 「とりあえず全部トップページへ」は避ける。内容が対応しない転送はソフト404と判断されることがある
- 対応する新ページが本当に存在しない場合は、無理にリダイレクトせず404(または410)を返す
- リダイレクトは短期間で外さず、最低でも1年程度は維持する
サーバーがNginxの場合は.htaccessが使えないため、サーバー設定ファイルでの記述が必要です。WordPressであれば「Redirection」などのプラグインで管理画面から設定する方法もあります。
WordPressでの対処法
「WordPressで突然404エラーになる」場合、リスクの低い順に次を試すのが定石です。
- パーマリンク設定の再保存:管理画面「設定」→「パーマリンク設定」を開き、設定を変更せずに「変更を保存」をクリックする。これだけでリライトルールが再生成され、解消することが非常に多い
- プラグインの一時無効化:リダイレクト系・キャッシュ系・SEO系プラグインを一つずつ無効化し、原因を切り分ける
- テーマの切り替え:デフォルトテーマに一時変更し、テーマ側の問題かを確認する
- .htaccessの確認:WordPress標準のリライト記述が残っているか確認し、必要なら書き戻す。書き込み権限がないと自動生成されない
- サーバー設定の確認:mod_rewriteが有効か、AllowOverrideがAllになっているか(.htaccessによる上書きが許可されているか)を確認する
- 投稿ステータス・スラッグの確認:記事が下書きに戻っていないか、スラッグが他と重複していないか確認する
WordPress標準の.htaccess記述は次の形です。壊れている場合はこれを基準に復旧します。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
パーマリンク構造を変更した直後に全記事が404になった場合も、まずはパーマリンク設定の再保存を試し、それでも直らなければ.htaccessとサーバー設定を確認する流れになります。
オリジナル404エラーページの作り方
作るメリット
404の発生をゼロにすることはできません。だからこそ、404に到達したユーザーをどう扱うかが差になります。
- 離脱を防げる:素っ気ないサーバー標準のエラー画面は「サイトが壊れている」印象を与え、そのまま離脱される。サイトのデザインを保った404ページなら回遊につなげられる
- ブランドの印象を守れる:デザインの統一感があるだけで「きちんと運営されているサイト」という印象を維持できる
- 次の行動へ誘導できる:トップページ、サイト内検索、人気コンテンツへの導線を置けば、目的を達成してもらえる可能性が残る
- 問題の把握につながる:404ページに計測を仕込めば、どのURLで404が起きているかを継続的に把握できる
デザイン・設計のポイント
オリジナル404ページで押さえるべき要素を整理します。
| 要素 | 具体策 |
|---|---|
| 状況説明 | 「お探しのページは見つかりませんでした」と平易な日本語で伝える。専門用語だけで済ませない |
| 共通レイアウト | ヘッダー・フッター・グローバルナビをサイト本体と揃え、迷子感を減らす |
| 次の導線 | トップページへのリンク、サイト内検索窓、カテゴリ一覧、人気記事や主要ページへのリンク |
| 原因のヒント | URLの入力ミス、ページの移動・削除など、考えられる理由を簡潔に添える |
| トーン | 過度に謝罪的にせず、イラストやコピーでブランドらしさを出す企業も多い |
| ステータスコード | 必ず404を返す。200を返すとソフト404になる |
| noindex | 404を正しく返していれば別途noindexを付ける必要はない |
やってはいけないのは、404ページをトップページへ自動リダイレクトすることです。ユーザーは何が起きたのか分からず混乱し、検索エンジン側からもソフト404と判断されやすくなります。
設定方法(WordPress/.htaccess/HTML)
WordPressの場合
使用中のテーマ(できれば子テーマ)のディレクトリに 404.php を作成します。WordPressは存在しないURLへのアクセスがあると、テンプレート階層に従って 404.php を探し、なければ index.php を使います。
<?php get_header(); ?>
<main>
<h1>お探しのページは見つかりませんでした</h1>
<p>URLが変更されたか、削除された可能性があります。</p>
<?php get_search_form(); ?>
<p><a href="<?php echo esc_url( home_url('/') ); ?>">トップページへ戻る</a></p>
</main>
<?php get_footer(); ?>
ブロックテーマの場合はサイトエディターの「テンプレート」から404テンプレートを編集できます。コードを触りたくない場合は、404ページ用のプラグインを使い、任意の固定ページを404表示に割り当てる方法もあります。
静的HTMLサイト・.htaccessの場合
Apacheでは、.htaccess に ErrorDocument を記述して任意のファイルを404画面として指定します。
ErrorDocument 404 /404.html
指定するパスはサイトルートからの絶対パスにします。相対パスや外部URLを指定すると、意図しないステータスコードが返る場合があるため注意してください。WordPressをサブディレクトリに設置している場合は、ErrorDocument 404 /サブディレクトリ名/index.php?error=404 のようにディレクトリ名を含めて指定します。
設定後の確認
作成したら、存在しないURL(例:https://example.com/test-404-xxxx)にアクセスし、次の2点を必ず確認します。
- 意図したデザインの404ページが表示されるか
- 返却されるHTTPステータスコードが404になっているか(ブラウザの開発者ツールのNetworkタブ、またはステータスコード確認ツールで検証)
見た目だけ整えてステータスコードが200のままだと、せっかくの対応がソフト404を生む原因になります。ここは必ずセットで確認してください。
まとめ
404エラー(404 Not Found)は、サーバーには到達できたものの、指定されたURLに対応するページが見つからない状態を示すHTTPステータスコードです。400番台の「クライアントエラー」に分類され、アクセス権の問題である403、恒久的な削除を示す410とは意味が異なります。
主な発生原因は、URLの入力ミス、ページの削除・非公開、リニューアル時のリダイレクト漏れ、サーバーや.htaccessの設定不備の4つに整理できます。SEOの観点では、Googleは404そのものが順位やインデックスに影響しないと明言しており、404が並んでいるだけで慌てる必要はありません。問題になるのは、内部リンク切れ、流入や被リンクのあったページの消失、リニューアル後の大量404、そして200を返してしまうソフト404です。
対処の流れは、Search Consoleの「ページインデックス登録レポート」で404 URLを把握し、URLの誤りやキャッシュを確認したうえで、移転したページには301リダイレクト、本当に無くなったページには正しい404(または410)を返す、という順序になります。WordPressで突然404が出た場合は、まずパーマリンク設定を再保存し、次にプラグイン・テーマ・.htaccess・サーバー設定の順で切り分けます。
そのうえで、発生自体は避けられない404に備えてオリジナルの404ページを用意しておくと、離脱を減らし、ユーザーを次の行動へ導けます。作成時は、サイトと統一されたデザイン・分かりやすい説明・検索窓やトップページへの導線を備えること、そして必ずHTTPステータスコード404を返すことを確認してください。
