Google Search Consoleを利用していると、「『インデックス カバレッジ』の問題が新たに検出されました」というメールが届くことがあります。

今回は「送信されたURLはソフト404エラーのようです」というエラーの原因と改善方法について解説していきます。

インデックスカバレッジについては、こちらで詳しく説明していますので読んでみてくださいね。

ソフト404エラーとは?

ソフト404エラーについては、Google公式のヘルプページに下記のような説明があります。

ソフト 404 とは
ソフト 404 とは、ページが存在しないことをユーザーに伝えるページを表示するだけでなく、200 レベル(成功)のコードも返す URL です。場合によっては、コンテンツがほとんどまたはまったくないページ(コンテンツがまばらに表示されるページや空白のページ)もこれに該当します。

このエラーが推奨されない理由
404 や 410(未検出)または 301(移動した)といったコードではなく、成功コードを返すことは避けてください。成功コードは、その URL に実際のページが存在することを検索エンジンに知らせます。その結果、該当ページが検索結果に表示され、検索エンジンは実際のページをクロールする手間を避けて、実体のない URL を引き続きクロールしようとします。

https://developers.google.com/search/docs/advanced/crawling/soft-404-errors?hl=ja

簡単にいうと、そのURLに実際にはコンテンツが存在しないのに、存在している事になっているということです。

ちょっと何言ってるかわからないんですけど…という方にもう少し詳しく説明すると、ウェブサイトにはロボット向けに、表示しようとしているURLがどのような状況にあるかを数字で伝える『ステータスコード』というものがあり、下記のような感じになっています。

  • 200 -> 無問題!正常に表示されるよ!
  • 301 -> そのURLは別のURLに引っ越したよ!
  • 404 -> そのURLは見つからない!エラーだよ!

という感じになっていて、ソフト404が通常の404エラーと違う部分は、200のステータスコード(正常表示)を返してしまう点です。
なんだかあべこべですね。

ちなみに、ステータスコードについては、こちらでも詳しく解説していますので、もっと詳しく知りたい方はぜひ読んでみてください。

送信されたURLはソフト404エラーのようです の原因

このあべこべ状況が検索エンジンのようなロボットを混乱させ、ソフト404の原因になります。

検索エンジンが該当URLをクロールすることができるにもかかわらず、正しいURLなのに中身が表示できないなど、存在しないURLなのかはっきりしない場合に発生します。

ソフト404エラー
一時的なサーバー負荷などにより、サイトが重くなってしまいソフト404が発生することもあるので、短期間のソフト404であれば問題がありません。
長期間続いた場合、インデックスされなくなってしまうケースもあるので、ソフト404が発生したページは、素早く原因を把握し、可能であれば改善まで行なった方がいいでしょう。

では具体的な事例をご紹介します。

404ページの設定のミス

CMSなどのシステムで構築される、動的にページを生成するタイプのサイトでは、設定ミスでソフト404エラーが起こる場合があります。
サイトの見た目上は『存在しないページです』というページが表示されていても、プログラムの設定ミスや設定漏れなどでステータスコード200(正常表示)を返してしまうことがあるのです。つまり、それぞれのURLで返すべき正しいステータスコードを伝えられていない状況ということです。

読み込めないリソースが存在する

ソフト404エラーの発生原因のもう一つの理由として、読み込めないリソースが存在するということがあります。
例えば下記のような状況ですね。

  • 読み込むことができないほど多くのリソースを参照している
  • サーバーが遅く、読み込みが完了できない
  • リソースが大きすぎて、読み込みが完了できない

Search Consoleヘルプによる説明の中でこのようなことも書いてありました。

例えば、記事中の画像サイズが非常に大きいことで、このページをGoogleのクローラーが巡回したときに、実際にはコンテンツが存在しているけど画像サイズが大きくて読み込みに時間がかかり過ぎてしまい読み込みが完了せず、その結果「コンテンツが存在しない」と認識されてしまった。ということが考えられます。

ソフト404エラーの改善方法

では、ソフト404の改善方法についてご説明します。
上記で説明した原因を改善することになりますので、下記の2点が改善のために必要となります。

  • 正しいステータスコードが返るようにする
  • 全てのリソースが正常に読み込めるようにする

それぞれ解説します。

サーバーの設定で正しいステータスコードが返るようにする

サーバーサイドのお話になるので、少し難しいお話になるかもしれませんが、ウェブサーバーにApacheが使われていて、.htaccessが使える場合にはこの方法で改善が可能です。

.htaccessに404ページのHTMLの場所を記述することで、リクエストされたURLが見つからない時は、サーバーが確実に404ページを表示し、404のステータスコードを返すようになります。

.htaccessに下記のコードを記述し、記述の通りに、404ページ用のhtmlファイルと一緒にサーバーにアップロードします。

.htaccess
ErrorDocument 404 /404.html

これで、存在しないURLにアクセスしたときに、404.html(404エラーページ)を表示して、HTTPステータスコードで404を返す(GoogleにNot Found「未検出」「見つかりません」と伝える)ことができるので、ソフト404エラーが無くなります。

注意点として、下記のように絶対パスを記述するとリダイレクトされてしまい404を返さなくなってしまいます。

誤った記述
ErrorDocument 404 http://***.com/404error.htmlCode language: JavaScript (javascript)

.htaccessのErrorDocumentを使って、任意の404エラーページを表示させたい場合は、相対パスを使わなければいけないというルールなんですね。
誤った記述例のように絶対パスを記述するとリダイレクトされてしまい、404を返さないので注意してください。

PHPの設定で正しいステータスコードが返るようにする

動的なサイトなどで、PHPを使って構築しているサイトの場合、404ページに記述を追加することで、PHPの設定でも正しく404ステータスを伝えることが可能です。

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

404ページのHTMLに追加するPHP
<?php header(“HTTP/1.1 404 Not Found”); ?>Code language: HTML, XML (xml)

PHPの記述について詳しくはこちらのサイト様をご参照ください

これらのステータスコードの設定はシステムや、サーバーの設定を修正する必要がありますので、ちょっと難しいかも…と思う方はサーバー管理会社や制作会社に相談してみましょう。

もちろん、弊社で対応が可能です。

読み込みが遅いリソースの最適化

  • 該当ページの画像ファイルを確認して、サイズが大きいものは最適なサイズに調整する
  • 該当ページで読み込みに時間がかかっている、もしくは読み込めないリソースを確認して、改善する

まとめ

「ソフト404エラー」について解説してきました。
最後に重要な点をまとめてもう一度まとめておきましょう。

  • ソフト404はページコンテンツが存在しないのに、ステータスコードが200などになっている状態
  • 長期間続くと該当ページはインデックスされなくなってしまうので、早期に原因把握を推奨
  • Search Consoleでソフト404エラーを調べられる

一般的に、ソフト404は短期的に発生するケースが多く、そこまで重要視されないエラーですので、対処する優先度は低くなりやすいですが、思わぬエラーから発生しているケースもあり、重要なページだった場合致命傷にもなりかねません。ケースバイケースというと曖昧なんですが、状況だけは早めに正確に把握しておくようにしましょう。

わからない点はお気軽にご相談ください

警告メールが届くと、不安に思う方もいらっしゃるかもしれませんが、この記事が多少なりともお役に立てば幸いです。
記事を読んで不明な点等がありましたらお気軽にTwitter(@kaznak_com)などでご質問ください。

ではまた。