ソフト404エラーとは 確認方法、原因と対策について

更新日: 公開日:

サーチコンソールで急に現れたソフト404の対応に、お困りの方も多いのではないでしょうか?今回はイレギュラーなソフト404も含め、原因と解消方法をご紹介します。

ソフト404エラーとは

ソフト404エラーとは、実際には存在していないURLに対し、ページがサーバーから返されるエラーを意味します。
よくあるケースとして、Webページ上では「ページが見つかりません」と表示されているものの、ステータスコードは200で返されているケースが挙げられます。
一見すると通常のカスタム404ページのように見えるものの、 ステータスコードが404ではなく、通常のWEBサイト閲覧と同様に200(リクエストは問題なく処理されました)で処理されています。

ソフト404ページの例

ソフト404エラーは解消するべき問題

ページが表示される際に404エラーのように見えていても、ステータスコードが200の場合、検索エンジンは通常のページと同様にクロールします。

しかし、ソフト404エラーが起きているページは、基本的には検索エンジンにインデックスされる必要がないページであり、そういったソフト404エラーのページに対しても継続的にクロールを行うことになるため、有限であるクローラーのリソースをムダに使うことになります。

それにより本来クロールされるべき、コンテンツが存在しているページに対してのクロールが遅れることや、クロールの頻度が少なくなるなどの悪影響が出る可能性があります。

また、本来はコンテンツが存在していた可能性もあるため、基本的には確認し、早い内に対応し404を返すように変更することを推奨します。

ステータスコードの確認方法

ステータスコードは、Google Chromeのデベロッパーツールや、拡張機能で確認することができます。

404の例

これが正しい状態です。ステータスコードが、正しく404エラーで返ってきています。検索エンジンのクローラーは、このステータスコードを受け取ると、「このURLにページが存在しない」ということを理解することが出来ます。

しかし、同じような表示がされていても、このような場合もあります。

ソフト404の例

これがソフト404の例です。「指定したページが見つかりませんでした」とは表示されていますが、実際にはステータスコードが200になっています。この状態では、検索エンジンは「このURLには”お探しのページが存在しません”というページが存在している」という解釈をしてしまいます。

サーチコンソールにおける確認方法

サイト内にソフト404エラーがあるかは、サーチコンソールを使って確認するのが便利です。
インデックスカバレッジより「エラー」「除外」を確認し※、ソフト404エラーがないか確認してください。

サーチコンソールソフト404エラー

サーチコンソールソフト404除外

※XMLサイトマップにて送信するURLにソフト404エラーがある場合は「エラー」に、クロール時に発見されたソフト404エラーは「除外」にて報告されます。

ソフト404の原因と対応

ソフト404エラーの原因

プログラムによって生成されるケース

ソフト404になっているページは、1ページずつ作られたというものではなく、PHPなどのプログラムによって自動で生成されたページであることが多いです。データベースから情報を取得し、動的にページを生成しているプログラムなどで、データベースに情報がない場合に、動的に「見つかりませんでした」というページを生成している場合が考えられます。ソフト404が発生している場合は、一度、プログラムを見直すと良いでしょう。

参考:PHPでのソフト404の回避方法

PHPでは、 header関数 を用いてステータスコード404を返すことができます。
PHPファイルの先頭に、以下の一文を入れます。

header(“HTTP/1.1 404 Not Found”);

このheader関数を用いたPHPでの404ページの例です。

<?php
header(“HTTP/1.1 404 Not Found”);
?>
<html>
<head>
<title>Page Not Found</title>
</head>
<body>
<?php
$error_message='<h1>ページが見つかりませんでした</h1>’;
echo $error_message;
?>
</body>
</html>

ステータスコード404が正しく返ってきています。

※header関数を使い、ステータスコード404を返すように設定しても、その後リダイレクトするように設定をすると、ステータスコード302が返ってくるので要注意です。他のページを表示させたい場合はリダイレクトせずに、 file_get_contents 関数等を使いファイル読み込むことをおすすめします。

PHP以外のプログラミング言語でも、ステータスコード404を返すように設定できるので、ご使用のプログラミング言語のレファレンスなどを参照されることをお勧めします。

上級者向け:その他の原因によってソフト404エラーが起きるケース

ソフト404エラーが返されているものの、ブラウザで見ると問題なく表示されるケースも存在します。これはどういうことでしょうか?

ソフト404エラーの定義としてGoogleは

コンテンツがほとんどまたはまったくないページ、たとえば、コンテンツがまばらに表示されるページや空のページなどがあります。

と記載しています。

https://developers.google.com/search/docs/advanced/crawling/soft-404-errors

これは検索エンジンが何らかの原因でクロール時(正確にはレンダリング時)にリソースを読み込むことができず、そのためページ上でコンテンツがまばらに表示されているために起きる現象です。

リソースを読み込むことができない原因

  • robots.txtによってリソースの読み込みをクローラーがブロックされている。
  • 大量に画像などのリソース、サイズの大きいリソースを読み込む必要がある。
  • ページの表示速度が遅い。

などが挙げられます。
要はクローラーがページを正しく表示させることができず、コンテンツがまばらなページと判断し、ソフト404エラーを起こしているのです。

解消方法

  • 検索エンジンが各種リソースにアクセスできるようにする。
  • 必要のないリソースを削除する。
  • ページの読み込み速度を改善する。

となります。

なお、この場合のソフト404エラーに関しては改善優先度が上がります。
前述の「404ページだが、ステータスコード200で返される」場合は、悪影響は主にクロール効率の部分になり、影響はそこまで大きいものではありません。しかし今回の「本来インデックスされるべきページでソフト404エラーが起きている」状態は、検索結果に表示されないため、セッション数などの重要指標にも影響を及ぼすからです。
特に複数ページで発生している場合、サイト全体で読み込み速度が遅いなど、問題が根深い可能性もあります。

まとめ

ソフト404エラーは、実際には存在していないURLに対し、ページがサーバーから返されるエラーを意味します。
通常はシステムのエラーによってステータスコード404を返すところを、200で返していることで発生しますが、クローラーがページを正しく表示できない場合にも発生します。この場合、サイトへのマイナス影響は大きくなる可能性もあります。
まずは、どのようなページでソフト404エラーが発生しているのかをサーチコンソールより確認し、状況に合わせた対応を行いましょう。

SEO対策の全体像を知りたい方は以下の記事も読んでみてください!
SEOとは?SEO対策を分かりやすく徹底解説!
検索エンジンの仕組み、リスティング広告との違い、技術要件、コンテンツ制作について1つ1つ解説しています。

関連記事

外部リンクには漏れなく”nofollow”とか、いい加減やめませんか

SEOに効果的なhtmlタグとは?必ず知っておきたいhtmlタグ5種類

meta keywords(メタキーワード)過去の使われ方から学ぶ不要になった背景

meta keywords(メタキーワード)過去の使われ方から学ぶ不要になった背景

新着記事

SEO アウトソース

SEOをアウトソースするメリットと注意点とは?

リスティング広告 seo

リスティング広告とSEOはどっちが効果的?その違いを徹底比較

集客 導線

集客導線の考え方とは?入り口と出口に分けて8つの方法を解説!

サイト内検索