この記事の要点:
- 404エラーは、URLにページが無いことをサーバーが「404 Not Found」で知らせる状態です。ソフト404は、「ページがありません」のような内容なのに、成功を表す200を返している状態です。
- Googleは、404や410を返すURLをインデックスに登録せず、登録済みなら外します。一部のURLが404でも、サイトのほかのページの順位には影響しないと説明しています。
- 直すべきなのは、残したいページが404になっている場合と、ソフト404です。代わりのページがあれば301リダイレクト、無ければ404か410を返します。
- ソフト404の主な原因は、存在しないページに200を返す、中身がほとんど無い、無関係なページへの一律の転送、JavaScriptの読み込み失敗の4つです。
- 確認はSearch Consoleの「ページのインデックス登録」とURL検査で行い、直した後は「修正を検証」で再確認を依頼します。
404エラーとソフト404とは:ページが無いことの正しい伝え方と誤った伝え方
404エラーとは、アクセスしたURLにページが存在しないことを、サーバーが「404 Not Found」というHTTPステータスコード(ページの状態を表す3桁の番号)で知らせる状態です。記事の削除、URLの変更、リンクの打ち間違いなどで起こります。
ソフト404とは、画面には「お探しのページは見つかりません」のような内容が表示されているのに、サーバーが成功を表す「200」を返している状態です。Googleは、ページが無いことを利用者に伝えながら200を返すURLをソフト404と説明しています。中身がほとんど無いページも、Googleがソフト404と判断することがあります。
つまり、404は「ページが無いことを正しく伝えている状態」、ソフト404は「ページが無いのに、あるかのように伝えている状態」です。SEOで問題になりやすいのは、多くの場合ソフト404のほうです。
404・410・ソフト404の違いと、Google検索での扱い
| 種類 | サーバーが返す番号 | 意味 | Google検索での扱い |
|---|---|---|---|
| 404 | 404 | ページが見つからない | インデックスに登録しない。登録済みのURLは、時間をかけて外す |
| 410 | 410 | ページは削除され、もう無い | Googleは404と同じように扱うと説明している |
| ソフト404 | 200(成功) | 番号は成功なのに、中身はエラーや空に近い | エラーページと判断すると、インデックスに登録しない。クロールは続くことがある |
| 301 | 301 | ページは別のURLへ恒久的に移った | 転送先のURLを評価の対象にする |
| 503 | 503 | 一時的に利用できない | サーバーの問題として扱い、クロールを一時的に減らす |
Googleのクローラーについての説明では、429を除く4xxの番号はどれも同じように扱われ、クロールの頻度には影響しないとされています。404と410のどちらを返しても、Google検索での扱いに大きな差はありません。
一方、ソフト404はクロールの対象に残り続けることがあり、Googleはクロールの割り当て(クロールバジェット)の無駄になると説明しています。ページ数の多いサイトほど、ソフト404を放置しないことが大切です。
404はSEOに悪いのか:直すべき404とそのままでよい404
Googleは、一部のURLが404を返していても、サイト内のほかのページの検索順位には影響しないと説明しています。Search Consoleのヘルプでも、代わりのページ無しに削除したページなら、404は必ずしも問題ではないとしています。不要になったページが404になるのは、ウェブではよくあることです。成約した物件のように取引が終わったページは、業種の広告の決まりも関係します。不動産の例は「不動産のSEO」で説明しています。
ただし、次のような404は、読者にも検索にも損失になるため対応します。
| 状況 | 対応が必要か | 対応 |
|---|---|---|
| 削除した記事で、代わりのページが無い | 不要 | 404か410のままにする |
| URLを変えた、記事を統合した | 必要 | 新しいURLへ301リダイレクトする |
| 検索で読まれていたページが、意図せず404になった | 必要(急ぐ) | ページを戻すか、設定の誤りを直す |
| サイト内のリンクが404のURLを指している | 必要 | リンク先を正しいURLに直すか、リンクを外す |
| 外部サイトから多くリンクされていたページが404 | 検討する | 内容の近いページがあれば301リダイレクト |
| 存在したことのないURL(打ち間違い、自動で作られたURLなど) | 不要 | 404のままでよい |
ソフト404が起きる主な原因
ソフト404は、サーバーの設定、ページの中身、読み込みの失敗など、いくつかの原因で起こります。主なものは次のとおりです。
存在しないページやエラー画面に200を返している
サイトの仕組みによっては、存在しないURLにアクセスしても、「ページが見つかりません」という画面を200で返すことがあります。メンテナンス中の画面や、エラーが起きたときの画面を200で返している場合も同じです。
中身がほとんど無い
本文がほとんど無いページ、結果が0件のサイト内検索のページ、商品が1つも無いカテゴリーページなどは、Googleからエラーページと区別しにくく、ソフト404と判断されることがあります。
無関係なページへ一律に転送している
削除したページをすべてトップページへ転送すると、Googleは転送先を元のページの代わりとは見なさず、ソフト404として扱うことがあります。訪れた人も、目的の情報にたどり着けません。
Googleから見て内容が読み込めていない
実際にはページがあるのに、ソフト404と判断されることもあります。Search Consoleのヘルプでは、Googlebotにとってページが正しく読み込めなかった、重要なファイルを取得できなかった、表示中に目立つエラーメッセージが出た、などを原因として挙げています。JavaScriptで本文を表示するサイトで起こりやすい原因です。
Search Consoleでの確かめ方
- 「ページのインデックス登録」レポートを開き、登録されなかった理由の一覧から「見つかりませんでした(404)」と「ソフト 404」を開きます。
- 一覧のURLのうち、残したかったページが含まれていないかを確かめます。意図して削除したページなら、404の一覧に載っていても問題ありません。
- 気になるURLは「URL検査」を使い、Googleが受け取ったステータスコードと、表示された内容(スクリーンショットやHTML)を確かめます。
- 本文が空に見える、エラーが表示されている場合は、読み込めなかったファイルが無いかを確かめます。
- 直した後は、レポートの「修正を検証」で再確認を依頼します。結果が出るまで時間がかかることがあります。
ステータスコードは、ブラウザの開発者ツールの「ネットワーク」タブや、次のようなコマンドでも確かめられます。画面に「404」と表示されていても、番号が200のことがあるため、番号そのものを確かめます。
curl -I https://example.com/old-page/
# 1行目に「HTTP/2 404」などと表示される
404のURLがどこから見つかったかを確かめる
404の一覧に、見覚えのないURLが載っていることがあります。URL検査の結果にある「ページの検出」の項目では、そのURLが見つかったサイトマップや参照元のページを確かめられる場合があります。
- 参照元が自社のページなら、そのページのリンクを直します。
- 参照元がサイトマップなら、サイトマップからそのURLを外します。
- 参照元が外部のサイトで、内容の近いページがあるなら、301リダイレクトを検討します。
- 参照元が分からない、打ち間違いのようなURLなら、404のままで構いません。
サイト内のリンク切れを見つける方法
サイト内のリンク切れは、サイトを巡回するクローラーの道具で全ページのリンクをたどり、404などのエラーを返すリンク先と、そのリンクを置いているページを一覧にすると見つけられます。Search Consoleの404の一覧は、Googleが見つけたURLを示すもので、サイト内のどのリンクが切れているかを網羅するものではありません。
| 方法 | 分かること | 注意点 |
|---|---|---|
| Screaming Frog SEO Spider(無料版は1回の巡回が500 URLまで) | 4xxを返すURLと、そこへリンクしているページ(リンク元)の一覧 | ページ数が多いサイトは、範囲を分けて巡回するか有料版を検討する |
| Search Consoleの「ページのインデックス登録」とURL検査 | Googleが見つけた404のURLと、見つかったサイトマップや参照元のページ | 参照元が示されない場合もある。Googleが見つけていないリンク切れは載らない |
リンク切れが見つかったら、リンク先を今のURLに直すか、リンクを外します。
原因別の直し方
ソフト404と404は、ページを残したいかどうか、代わりのページがあるかどうかで直し方が決まります。
| 状況 | 直し方 |
|---|---|
| ページが存在しない、代わりも無い | サーバーが404か410を返すようにする |
| 内容の近い代わりのページがある | そのページへ301リダイレクトする(トップページへの一律の転送はしない) |
| 残したいページだが、中身が薄い | 読者の問いに答える内容を足す |
| 結果0件の検索ページ、空のカテゴリーなど、検索結果に出す必要が無いページ | 404を返すか、noindexを付ける |
| 実際にはページがあるのに、Googleから空に見える | URL検査で表示を確かめ、読み込めないファイルやJavaScriptのエラーを直す |
| メンテナンスで一時的に表示できない | 200ではなく503を返す。長く続けない |
503については、Googleの「Googlebot のクロール頻度を下げる」で、500・503・429を返すのは数時間から1〜2日ほどの短い期間にとどめ、1〜2日を超えて長く続けないよう案内されています。同じURLで何日も続くと、そのURLがインデックスから外れることがあります。メンテナンスは短時間で終えます。
JavaScriptで画面を切り替えるサイト(シングルページアプリケーション)では、意味のあるステータスコードを返しにくい場合があります。Googleは、404を返すURLへJavaScriptで転送する方法と、エラー画面にnoindexを付ける方法を示しています。ただし、noindexが付いたページでは表示の処理が省かれることがあるため、JavaScriptでnoindexを外す作りは期待どおりに動かないことがあります。
訪れた人が迷わない404ページの作り方
404のときに表示するページ(カスタム404ページ)は、自由に作れます。ステータスコードは404を返したまま、訪れた人が次に進めるページにします。
- 「お探しのページは見つかりませんでした」と、分かりやすく伝える
- トップページ、主なカテゴリー、サイト内検索へのリンクを置く
- サイトのデザインやメニューをそろえ、同じサイトの中だと分かるようにする
- 画像や読み込みの多い部品を増やしすぎず、軽く表示できるようにする
- 画面の表示だけでなく、実際のステータスコードが404か確かめる
WordPressの場合
WordPressでは、存在しないURLへのアクセスに、テーマの404用テンプレート(多くは 404.php)が使われ、ステータスコードは404になります。404ページの文面やリンクは、このテンプレートで調整します。プラグインで404を一律に別のページへ転送する設定にしていないかも確かめます。
Apacheで自作のページを使う場合
Apacheでは、.htaccessで404のときに表示するページを指定できます。
ErrorDocument 404 /404.html
このとき、http://から始まる完全なURLを指定すると転送として扱われ、404ではなく転送の番号が返ることがあります。サイト内のパスで指定し、設定後に番号を確かめます。
404とソフト404を増やさないための運用
記事を削除・統合するときの手順
404の多くは、記事を整理したときに生まれます。記事を消す・まとめるときは、次の順で進めると、意図しない404やソフト404を防げます。
- 対象の記事の状況を確かめる:Search Consoleで、その記事が検索で表示・クリックされているか、外部からリンクされているかを確かめます。
- 行き先を決める:内容の近い記事にまとめるなら、その記事を転送先にします。代わりが無ければ、404か410にします。
- 統合先の記事に内容を移す:残したい情報があれば、統合先の記事に書き足します。転送するだけでは、元の記事の情報は引き継がれません。
- 転送やステータスコードを設定する:301リダイレクト、または404・410を設定し、番号を確かめます。
- サイト内のリンクとサイトマップを直す:削除した記事を指すリンクを、新しいURLに書き換えます。
- 数週間後に確かめる:Search Consoleで、転送先が登録されているか、404の一覧に残したいページが無いかを見ます。
日ごろ気をつけること
- 記事のURL(スラッグ)は、公開後にむやみに変えない。変えるときは301リダイレクトを同時に設定する
- 記事を削除・統合するときは、そのページへのサイト内リンクも直す
- XMLサイトマップに、404や転送のURLが残っていないか確かめる(XMLサイトマップとは)
- 記事の無い一覧や、範囲外のページ番号が200で表示されないようにする
- サイトの改修やプラグインの変更の後に、主なページのステータスコードを確かめる
当サイト(seoagent.jp)では、記事がまだ無い一覧ページや範囲外のページ番号が、検索の対象になりうる状態でした。そこで、記事の無い一覧はnoindexにしてサイトマップから外し、範囲外のページ番号は404、親カテゴリーは一覧ページへ301で転送するようにしました。反映のたびに、404・301・noindexが意図どおりかを確かめています。
よくある質問
Search Consoleの404の件数が増えました。急いで直すべきですか?
件数だけでは判断しません。一覧のURLを見て、残したかったページが含まれているか、サイト内のリンクから404のURLを指していないかを確かめます。意図して削除したページだけなら、対応は不要です。
404のURLをすべてトップページへ転送すればよいですか?
おすすめしません。内容の関係が無い転送は、Googleがソフト404として扱うことがあり、訪れた人も目的の情報を見つけられません。内容の近いページがあるときだけ転送し、無ければ404か410を返します。
404と410はどちらを使えばよいですか?
Googleは410を404と同じように扱うと説明しているため、検索の面ではどちらでも構いません。削除したことをはっきり伝えたい場合に410を使う、といった使い分けで十分です。
404のURLは、いつ検索結果から消えますか?
Googleは、登録済みのURLが404などを返すと、時間をかけてインデックスから外すと説明しています。すぐに消す必要がある場合は、Search Consoleの削除ツールで一時的に非表示にできます。申請の手順と取り消し方は「削除ツールの使い方」にまとめています。
ソフト404と判断されたページを残したい場合はどうしますか?
URL検査で、Googleから見た表示内容を確かめます。本文が表示されていなければ読み込みの問題を、表示されていれば内容が薄くないかを見直します。直した後に「修正を検証」で再確認を依頼します。
SEOAGENTでできること
SEOAGENTでは、Search Consoleと連携して記事ごとのクリックや表示回数を確認し、記事同士の内部リンクを提案・見直しできます。404ページの作成、ステータスコードの設定、リダイレクトの設定は、WordPressやサーバー側で行います。
404エラーとソフト404と関わるテクニカルSEOの記事は「テクニカルSEOの記事一覧」にまとめています。


