ソフト404エラーとは?発生する原因から対処法までを紹介

この記事のポイント
- ソフト404エラーは、中身のないURLに200 OKが返ることで発生する
- 存在しないページへの200応答や、ページの中身が空であるなど、ページの実態とステータスコードの食い違いが主な原因になる
- 検索に不要なページは404・410やnoindexで外し、残したいページは中身を改善することで対処する
ソフト404エラーは、存在しないページやメインコンテンツのないページが200番台のステータスコードを返し、Googleに実質的なエラーページと判断される状態です。通常の404エラーよりも気付きにくいため、見逃してしまうこともよくあります。
ソフト404エラーはサイト全体のSEO順位を直接下げることはありません。しかし、クロールの効率を低下させるため早期の対処が必要です。
今回は、ソフト404エラーの意味や404エラーとの違い、発生する原因・調べ方・対処法について解説するためぜひ参考にしてください。
1.ソフト404エラーとは?
ソフト404エラーとは、コンテンツが存在しないURLへのアクセスに対し、本来返すべき「404」ではなくHTTPステータスコード「200 OK」が返される状態です。ユーザーのブラウザには「ページが存在しません」といったエラーページが表示されるため、見た目は通常の404エラーと変わりません。404エラーとの違いは、表示はエラーページなのにHTTPステータスコードが200である点にあります。
ソフト404エラーには、コンテンツが実在しないのに検索エンジンが「閲覧可能」と認識するパターンと、Webページ自体は存在するのに中身が薄く検索エンジンが「価値のないページ」と誤判定するパターンの2種類があります。中身が薄いと判定される例としては、商品が売り切れて本文がほとんど消えた在庫切れページや、結果が0件の内部検索ページが挙げられます。
1-1.404エラーとの違い
ソフト404エラーと404エラーの違いは、返されるHTTPステータスコードの値と検索エンジンの認識の2点にあります。どちらも「アクセスしたコンテンツが存在しない」状態は共通ですが、ソフト404エラーは「200 OK」を返すのに対し、404エラーは「404 Not Found」を返します。
| 項目 | ソフト404エラー | 404エラー |
|---|---|---|
| 実際のコンテンツ | 存在しない、または空白に近い実質的なエラーページ | 存在しない |
| ブラウザ上の表示 | 404ページ | 404ページ |
| HTTPステータスコード | 200 OK | 404 Not Found |
| 検索エンジンの認識 | コンテンツがあると認識 | コンテンツが存在しないと認識 |
検索エンジンは返ってきたHTTPステータスコードを手がかりにコンテンツの有無を判断するため、HTTPステータスコードの違いが認識の違いに直結します。404エラーでは検索エンジンが「コンテンツが存在しない」と正しく判断する一方、ソフト404エラーでは「200 OK」を理由に「コンテンツが存在する」と誤認し、実体のないURLをクロールし続けます。
1-2.ソフト404エラーがSEOに与える影響
ソフト404エラーがSEOに与える主な影響は、対象ページが検索結果から除外され、検索流入を得られなくなる点です。Googleはアルゴリズムでページの内容を判定し、実質的にエラーページだと認識したURLを検索から除外します。さらに、ソフト404のURLが多数残ると、Googleがサイトを巡回するためのクロール資源(クロールバジェット)が浪費されます。クロール資源の浪費が続くと、サイト全体のクロールやインデックス登録にも悪影響が及ぶ場合があります。
一方で、404エラー自体はサイト全体の検索順位を直接下げません。注意すべきなのは、正常に公開しているページが誤ってソフト404と判定されるケースです。誤検出が起きると、本来は評価され得たページが検索結果から外れ、獲得できたはずの検索流入を失うため、早期の発見と対処が欠かせません。
2.ソフト404エラーはなぜ起きる?主な原因
ソフト404エラーは、ページの実態とサーバーが返すHTTPステータスコードが食い違うときに起きます。
以下では、ソフト404エラーにつながりやすい6つの原因を、それぞれ解説します。
2-1.存在しないページに200 OKを返している
存在しないページや削除済みのページが200 OKを返す状態は、ソフト404のよくある原因です。本来は404 Not Foundや410 Goneを返すべきURLが、サーバー設定の不備で正常応答を返しているときに、ソフト404が発生します。
特にApacheのhtaccessでカスタム404ページを設定する場面では、転送先をhttps://から始まる絶対パスで指定すると、最終的な応答が200に変わり、意図しないソフト404を生む原因になります。
2-2.ページの中身が薄い・空に近い
メインコンテンツが極端に少ないページは、Googleから低品質と見なされてソフト404になります。
Googleはページを評価する際にメインコンテンツの量と独自性を重視するため、内容が乏しいページは実質的な空ページと同じ扱いを受けます。テンプレートの構造だけで本文がほとんどないページや、他ページと内容が重複したページは「中身の薄いページ」に当てはまります。また、掲載する情報が定まらないまま公開した下書き同然のページも、ソフト404の対象になります。
2-3.削除済みのページを関連性の低いページへ一律でリダイレクトしている
削除したページをトップページなど無関係なURLへまとめてリダイレクトすると、Googleはソフト404と判定します。
リダイレクト先が元ページと無関係だと、ページの移動とは認識されず、該当コンテンツが存在しない応答と同じ扱いになるためです。廃止した商品ページを数百件まとめてトップページへ301リダイレクトするケースなどは、ソフト404の発生原因になります。
2-4.空のページカテゴリや0件の検索結果が残っている
商品が0件のカテゴリページや、検索結果が0件のページが200 OKのまま残っていると、ソフト404と判定されます。一覧ページや内部検索結果ページは動的に生成されるため、該当データがなくてもページ自体は表示され、中身のない空ページが大量に生まれます。在庫切れで商品が消えたカテゴリや、ヒット0件のサイト内検索URLを残しているケースでソフト404が起きる原因です。
2-5.JavaScriptの描画失敗でGoogleから空ページに見えている
JavaScriptでメインコンテンツを表示するページは、描画に失敗するとGooglebotには空ページとして認識されるため、ソフト404になります。Googlebotがレンダリングに必要なリソースを読み込めないと、ユーザーに見えている内容がGoogleには表示されず、中身のないページと判断されます。
読み込みに失敗する主な原因は、robots.txtによるリソースのブロック、リソースが大きすぎることによる読み込み遅延、サーバーエラーです。本文の描画をクライアント側のJavaScriptに任せるサイトや、SPAと呼ばれるシングルページアプリケーションで起きやすい問題です。
2-6.エラーページやメンテナンスページを200 OKで返している
画面にエラーやメンテナンスの告知を表示しながら200 OKを返すページは、ソフト404と判定されます。Googleは、正常応答でありながら本文にエラーを知らせる内容が表示されるページを、ユーザーの利便性を損なう状態と見なし、検索から除外します。
メンテナンス告知や「Not Found」「エラーが発生しました」といった文言を目立たせたページでありながら、200 OKを設定しているケースでよく発生します。また、内容が十分にあるページでも、エラーを連想させるテキストを目立つ位置に置くと、本文に内容があっても誤判定を招きます。
3.ソフト404エラーの出たコンテンツの調べ方
ソフト404エラーが出ているコンテンツは、Google Search Consoleの「ページ インデックス登録」レポートで特定できます。Google Search ConsoleはGoogleが無料提供するサイト管理ツールで、インデックスに登録されなかったページを理由ごとに分類して一覧表示します。ソフト404エラーの調査は、「ページ インデックス登録」レポートを開く操作からスタートします。
ソフト404エラーの出たコンテンツを調べる手順
| (1) | Google Search Consoleの左メニューで「インデックス作成」内の「ページ」を選択する |
|---|---|
| (2) | メイン画面下部の「ページがインデックスに登録されなかった理由」の一覧を表示する |
| (3) | 一覧の中に「ソフト404」の行があればクリックする |
| (4) | ソフト404エラーが検出されたWebページのURLが一覧で表示される |
修正の優先度については、流入や売上のあるページを最優先で対応しましょう。
4.ソフト404エラーの対処法6つ
ソフト404エラーの対処法は、対象ページをインデックスさせたいかどうかで方針が分かれます。インデックスが不要なページは検索対象から正しく外し、残したいページは中身や読み込みを改善します。誤った対処はかえって評価を下げるため、原因を切り分けてから着手しましょう。
ここからは、原因別に有効な6つの対処法を説明します。
4-1.検索流入の価値が薄いページならステータスを404・410に変更する
検索流入の価値が低いページや削除済みのページは、HTTPステータスコードを404または410へ変更します。404 Not Foundと410 Goneは、どちらもページが存在しないことを検索エンジンに伝えるステータスコードです。410は、ページが恒久的に消滅したことをより明確に示します。使い分けの目安は以下の通りです。
| コード | 意味 | 使い分けの目安 |
|---|---|---|
| 404 Not Found | ページが見つからない | 削除理由が一時的、または不確実な場合 |
| 410 Gone | ページが恒久的に消滅した | 復活予定がなく完全に削除した場合 |
設定後は、対象URLをXMLサイトマップからも削除しましょう。サイトマップに残したままだと、今度は「送信されたURLが見つかりませんでした(404)」という別のエラーが発生するためです。
4-2.削除したページと内容が近いページがあるなら301リダイレクトを行う
削除したページと内容が近いページがサイトにある場合は、301リダイレクトで該当ページへ転送しましょう。301は恒久的な移動を検索エンジンに伝え、元ページの評価を移動先へ引き継ぐステータスコードです。リダイレクト先は内容が関連するページに限定し、トップページなど無関係なURLへまとめて転送しないようにしてください。
設定後はSearch ConsoleのURL検査ツールで、対象URLが実際に301を返しているかを確認します。
4-3.空のページカテゴリや0件の検索結果はnoindexを使う
空のカテゴリページや0件の検索結果ページのうち、404を返しにくいものはnoindexで対応します。noindexは、ステータスコードを200のまま保ちながら、検索エンジンにインデックス不要であることを伝えるmetaタグです。動的に生成される一覧ページやSPAなど、404の設定が技術的に難しいページで特に有効です。HTMLのhead内に下記のように記述するか、HTTPヘッダーのX-Robots-Tagで指定します。
<meta name=”robots” content=”noindex”>
noindexを設定したページも、XMLサイトマップからは外しておくと管理しやすくなります。
4-4.検索結果に残したいページであればページ内容を追加する
検索結果に残したいのに低品質と判定されたページは、メインコンテンツを追加して質と量を高めましょう。ソフト404は中身が乏しいページで起きるため、独自性のある情報を補い、実質的な価値をGoogleに示すことが解決策になります。
コンテンツの質を高めるためには、他ページと重複した文章の書き換え、一次情報や具体例の追加、見出し構成の整理が効果的です。内容を拡充した後は、URL検査ツールからインデックス登録をリクエストすると、再評価のきっかけになります。
4-5.JavaScriptなどが原因でGooglebotに空ページを見せていないかチェックする
コンテンツがあるのにソフト404と判定される場合は、Googlebotに空ページが見えていないかを調べましょう。Search ConsoleのURL検査ツールで「公開URLのテスト」を実行すると、レンダリング結果のスクリーンショットとHTMLが表示されます。
確認する点は、メインコンテンツが表示されているか、robots.txtでJavaScriptやCSSなどのリソースがブロックされていないか、読み込みに時間がかかりすぎていないかの3つです。リソースが正しく読み込まれるよう修正すれば、Googlebotがコンテンツを認識し、ソフト404の判定が解消されます。
4-6.一時的なメンテナンスで表示できないページはステータスを503に設定する
一時的なメンテナンスやアクセス集中で表示できないページは、ステータスコードを503に設定しましょう。503 Service Unavailableは、ページが一時的に利用できない状態を検索エンジンに正しく伝え、ソフト404やインデックスからの削除を防ぎます。
Googleの公式情報によると、503を返したURLに対して、Googlebotは約2日間クロールを再試行します。ただし、503を2日を超えて返し続けると、Googleは該当URLをインデックスから削除します。ページのメンテナンスは2日以内にとどめましょう。
5.ユーザーの離脱を防ぐためにはオリジナルの404エラーページがおすすめ
404エラーでユーザーの離脱を防ぐには、サイト独自に作るオリジナルの404エラーページが有効です。サーバー標準の404ページは「Not Found」などの無機質な表示が多く、次の行動の手がかりがないため、ユーザーはそのまま離脱しやすくなります。
ホームへのリンクや検索窓、人気記事への導線を備えたオリジナルページなら、目的の情報へ案内でき、サイト内にとどまってもらえる可能性が高まります。以下では、WordPressと.htaccessの2通りの作り方を解説します。
5-1.WordPressで404エラーページを作る方法
WordPressでは、テーマフォルダに「404.php」というテンプレートファイルを設置すると、オリジナルの404エラーページを表示できます。WordPress本体には404ページを設定する機能がないため、テーマファイルを編集して専用テンプレートを用意しましょう。
| 手順 | 操作内容 |
|---|---|
| 1 | テーマフォルダ(style.cssと同じ階層)に「404.php」を新規作成する |
| 2 | get_header()とget_footer()で共通のヘッダーとフッターを読み込む |
| 3 | 見出しと案内文(例:お探しのページは見つかりませんでした)を記述する |
| 4 | home_url()を使ってトップページへ戻るリンクを設置する |
| 5 | get_search_form()でサイト内検索フォームを設置する |
404.phpを設置すると、存在しないURLへのアクセス時にWordPressが自動で404ステータスコードを返すため、ソフト404になりにくい点もメリットです。
5-2..htaccessで404エラーページを作る方法
WordPress以外のサイトでは、.htaccessファイルにErrorDocumentを記述して、オリジナルの404エラーページを指定します。.htaccessはApacheサーバーの動作を制御する設定ファイルで、1行の記述で404発生時に表示するページを切り替えられます。
| 手順 | 操作内容 |
|---|---|
| 1 | オリジナルの404ページ(例:404.html)を作成する |
| 2 | テキストエディタで「ErrorDocument 404 /404.html」と記述し、.htaccessとして保存する |
| 3 | .htaccessをサーバーのルートディレクトリ(ドメイン直下)へアップロードする |
| 4 | 作成した404.htmlを同じ階層へアップロードする |
| 5 | 存在しないURLへアクセスし、オリジナルページが表示されるか確認する |
https://から始まる絶対パスにすると最終応答が200に変わり、ソフト404の原因になるため、指定先は相対パス(/404.html)で記述しましょう。
6.404エラーページを作成するときのポイント
404エラーページを作成するときは、ユーザーを迷わせず、次の行動へ導く工夫が必要です。エラーページは、目的のページにたどり着けなかったユーザーが最後に目にする画面であるため、作り込み次第で、そのまま離脱するか、サイト内を回遊するかが分かれます。何も設定していないと、サーバー標準の無機質な画面が表示され、多くのユーザーはそのまま離れてしまいます。
ここでは、作成時に押さえるべき4つのポイントを、具体例とともに説明します。
6-1.ページが見つからないことを分かりやすく伝える
404エラーページでは、探していたページが見つからないことを、平易な言葉で明確に伝えましょう。「Not Found」や「エラー」だけの無機質な表示では、何が起きたのか分からず、ユーザーは戸惑って離れてしまうためです。
効果的なのは、状況と次の行動をセットで示す文言です。例えば「お探しのページは削除されたか、URLが変更された可能性があります。下のメニューから目的のページをお探しください」のように、原因の説明と再検索への案内を組み合わせると親切です。
専門用語やステータスコードの数字を目立たせると、技術に詳しくないユーザーには伝わりません。誰が読んでも理解できる日常語を選び、軽いお詫びの一言を添えると、画面の印象が和らぎます。
6-2.カテゴリや検索窓を表示して次の行動への導線を作る
404エラーページには、サイト内検索窓やカテゴリ一覧など、次の行動へつながる導線を設置しましょう。ユーザーが自力で目的の情報へたどり着けるように、以下のような要素を設置すると、離脱を防ぎ、サイト内の回遊を促せます。
・サイト内検索窓
キーワードから目的のページを探せるようになるため、内部検索を導入済みのサイトで特に役立ちます。
・人気記事や新着記事へのリンク
閲覧数の多いページや新しいページを案内すれば、ユーザーがほかのページへと興味を持ってくれる可能性があります。
・カテゴリ一覧
関心のあるジャンルの入口を示し、近いテーマから情報を探し直せるようにすることで、離脱を防ぎます。
・無効なリンクの報告フォーム
リンク切れの報告をユーザーから受け取ることで、サイト改善のために活用できます。
可能であれば、ユーザーが探していた内容に近いカテゴリの別ページへ誘導すると、目的の情報へ戻りやすくなります。URLの階層やパラメータから探していた領域を推測できる場合は、関連カテゴリのリンクを優先して表示すると、より親切です。
6-3.通常ページと同じデザインやナビゲーションにする
404エラーページは、通常ページと同じデザインとナビゲーションでそろえましょう。急に見慣れないエラー画面が表示されると、ユーザーは別サイトに来てしまったと錯覚し、混乱して離れてしまいます。
ヘッダーやフッター、グローバルナビゲーション、配色やロゴを通常ページと共通化すると、ユーザーは迷わず別ページへ移動でき、回遊が続きます。
6-4.素早く表示できるように軽いページにする
404エラーページは、素早く表示できるよう軽量に作りましょう。表示に時間がかかると、目的のページへたどり着けなかったユーザーが離脱してしまいます。
軽量化のためには、大きすぎる画像の圧縮、装飾目的の重い画像や動画の削減、不要なスクリプトの読み込み停止などが有効です。
案内文と検索窓、主要なリンクなど、ユーザーの行動に必要な要素に絞って構成すると、表示速度を保てます。読み込みが速いほど、エラーに直面したユーザーも次の導線へスムーズに進めます。
7.Googleに検出されることが多い主要なHTTPステータスコード一覧
Googleに検出されることが多い主要なHTTPステータスコードは、200番台・300番台・400番台・500番台の4つに分かれます。HTTPステータスコードとは、サーバーがクローラーやブラウザのリクエストに応答した結果を、3桁の数字で表したものです。Googleはコードごとにクロールやインデックス登録の扱いを変えています。
ここでは、Googleに検出されることが多い主要なステータスコードのそれぞれの意味と、Googleの処理方法を説明します。
(出典:Google クロール インフラストラクチャ「HTTP ステータス コードが Google のクローラーに及ぼす影響」)
7-1.200番台(Success)
200番台は、リクエストが正常に処理されたことを示すステータスコードです。Googleは200番台を受け取ると、コンテンツのインデックス登録を検討します。
| コード | 意味 | Googleの主な処理 |
|---|---|---|
| 200 | 正常に応答 | コンテンツをインデックス登録パイプラインへ渡す |
| 201 | リソースを作成した | 200と同様に処理を検討する |
| 202 | 受理したが処理は未完了 | コンテンツの受信を一定時間待ってから次の処理へ渡す |
| 204 | 内容なし | コンテンツを受信できず処理されない |
ステータスコード200を返しているのにページが空白だったり、エラー文言を含んでいたりすると、Search Consoleでソフト404エラーとして扱われます。
7-2.300番台(Redirection)
300番台は、リクエストされたURLが別のURLへ移動したことを示すリダイレクト系のステータスコードです。Googleのクローラーは、デフォルトで最大10回までリダイレクトをたどり、最終的な転送先のコンテンツを処理します。途中のリダイレクトURLから受け取った内容は無視され、評価の対象にはなりません。
| コード | 意味 | Googleの主な処理 |
|---|---|---|
| 301 | 恒久的な移動 | 転送先を処理すべき強いシグナルとして扱う |
| 302 | 一時的な移動 | 転送先を処理すべき弱いシグナルとして扱う |
| 303 | 別ページを参照 | 302と同様に扱う |
| 304 | 未更新 | 前回クロール時から内容が変わっていないと判断する |
| 307 | 一時的なリダイレクト | 302と同じ扱いにする |
| 308 | 恒久的なリダイレクト | 301と同じ扱いにする |
301と308は恒久的な移動を、302と307は一時的な移動を表します。Googleの処理が近くても意味が異なるため、移動の性質に合ったコードを選びましょう。
7-3.400番台(Client errors)
400番台は、リクエストする側(クライアント)に原因があるエラーを示すステータスコードです。Googleは400番台を返すURLのコンテンツを使わず、検索インデックスにも登録しません。インデックスに登録されていたURLが400番台を返すようになると、インデックスから削除されます。
| コード | 意味 | Googleの主な処理 |
|---|---|---|
| 400 | 不正なリクエスト | コンテンツが存在しないものとして扱う |
| 401 | 認証が必要 | コンテンツが存在しないものとして扱う |
| 403 | アクセス禁止 | コンテンツが存在しないものとして扱う |
| 404 | ページが見つからない | 新規検出分は処理せず、登録済みは削除する |
| 410 | ページが恒久的に消滅した | 404と同様に存在しないものとして扱う |
| 429 | リクエスト過多 | サーバー過負荷のシグナル |
なお、429はサーバーの過負荷を示すシグナルのため、サーバーエラーとして扱われます。また、401や403をクロール頻度の抑制目的で使うことは、Googleが推奨していません。
7-4.500番台(Server errors)
500番台は、サーバー側に原因があるエラーを示すステータスコードです。Googleは500番台を一時的な問題と判断し、クロールのペースを落とします。すでにインデックスに登録されているURLは当面保持されますが、エラーが続くと最終的に削除されます。
| コード | 意味 | Googleの主な処理 |
|---|---|---|
| 500 | サーバー内部エラー | クロール頻度を落とす(エラーURLの数に比例) |
| 502 | 不正なゲートウェイ | 500と同様に一時的なエラーとして扱う |
| 503 | サービス利用不可 | 一時的に利用できないと判断しクロールを控える |
サーバーが200番台を返すようになると、Googleはクロール頻度を徐々に引き上げます。なお、500番台のエラーが長く続くと該当URLはインデックスから外れるため、サーバーの不具合は早期に解消する必要があります。
8.ソフト404についてのよくある質問と回答(Q&A)
- Q. ソフト404エラーは放置しても問題ありませんか?
-
ソフト404エラーの数が少なければ放置して問題ありません。Googleは、ソフト404があるだけでペナルティを科すことはないと説明しています。ただし、ソフト404が増えるとクロール効率が下がり、重要なページのインデックスが遅れる場合があります。大規模なサイトほど影響が大きいため、件数が多いときは優先的に対処しましょう。
- Q. ソフト404エラーと通常の404エラーの違いは何ですか?
-
ソフト404エラーは、中身が実質存在しないのに200を返している状態、通常の404エラーは404を返し、ページが存在しないことを明示している状態です。Googleは、200を返していても中身がないと判断したページを、ソフト404として扱います。
- Q. ソフト404エラーはなぜ発生するのですか?
-
ページの実態とサーバーが返すステータスコードが食い違うことが原因で、ソフト404エラーは発生します。存在しないページが200を返している、中身が乏しい、Googlebotがコンテンツを読み込めていない、といった状況で発生します。Googleは機械学習でページの内容を評価し、中身がないと判断したURLをソフト404と見なします。
- Q. ソフト404エラーが出たページはすべて削除すべきですか?
-
ソフト404エラーが出たページをすべて削除する必要はありません。検索に残す価値がないページは404・410やnoindexで除外し、検索に残したいページは中身を改善してインデックスを促しましょう。
- Q. ソフト404エラーを防ぐには何を確認すればよいですか?
-
ステータスコードと中身が一致しているかという観点から、以下の4点を確認します。
- 存在しないページが200ではなく404・410を返しているか
- メインコンテンツが十分にあり、独自性が保たれているか
- Googlebotがページを描画でき、リソースがブロックされていないか
- インデックス不要なURLがXMLサイトマップに残っていないか
確認にはSearch ConsoleのURL検査ツールが役立ちます。
- Q. canonical設定で別ページを指定すればソフト404エラーは解決できますか?
-
別の正規ページが存在する重複が原因でソフト404エラーが発生しているなら、canonicalで正規URLを示すことで解決する場合があります。中身が乏しい、または空のページが原因の場合は、canonicalではソフト404エラーが解決しません。
まとめ
ソフト404エラーは、「コンテンツが存在しない」はずのWebページが「コンテンツがある」とクローラーに誤認されることで起こるエラーです。基本的にSEOへの影響はないものの、クロールの効率が落ちたりユーザーの不満が高まったりするため、エラーの放置は推奨されていません。
ソフト404エラーを発見した際は、HTTPステータスコードの変更やリソースの見直しなどを行いましょう。Webページは残しつつインデックスを避けたい場合はnoindexを使うなど、エラー原因に合わせて対処することが大切です。
KEYWORD


















