ウェブマスターツールより「ソフト404エラーが増えています」と「重要メッセージ」が来ました。
ソフト404エラーとは
通常、サーバーにリクエストしたページやファイルがない場合、サーバーからステータスコード404が返されエラーとなります。このエラーのことを404エラーと言います。
【サーバーから返されるステータスコード】
200:OK(正常)
301:Moved Permanently(恒久的に移動)
302:Found(一時的に移動)
400:Bad Request(無効なリクエスト)
403:Forbidden(禁止:ファイルはあるが処理がNG)
404:Not Found(見つかりません:ファイルがない)
500:Internal Server Error(サーバの内部エラー)
ブラウザなどからリクエストがあると、サーバーはこのようなステータスコードを返します。この中でページやファイルが無くて、サーバーが404を返すエラーを404エラーと言いますが、ページやファイルが無いのに404以外の、例えば200(正常)を返すエラーがソフト404エラーです。
ソフト404エラーの確認
Google ウェブマスターツールの左メニュー。「クロール」>「クロールエラー」のページで、ソフト404エラーが検出されているURLがリストアップされています。これらのURLのステータスコードを調べます。
ステータスコードチェッカー
URLを上のページに入力して送信すると、サーバーからレスポンスが表示されます。そのなかのステータスコードを確認します。ページやファイルが存在しないのに、200などとなっていると問題です。
ソフト404エラーの原因
ウェブソクはWordPressを使っているのですが、WordPressにはページやファイルがなく、404エラーが発生した際に表示されるページがあります。WordPressのテンプレートファイルで言うところの、404.phpがそれにあたります。
今までは、ページやファイルがない場合、訪問者の利便性を考えて、即座にトップページへリダイレクトされるように、テンプレートファイル404.phpに以下を追加していました。
<?php
header("location: https://news.7zz.jp");
exit;
?>
この404ページからトップページへ、即座にリダイレクトしていたのが、今回のソフト404エラーの原因のようです。
ソフト404エラーの影響
使い勝手の面から言えば、404ページをトップページにリダイレクトしていても、なにも問題はありません。
ただ検索エンジン側からすると、ファイルがないのに、ステータスコード200(正常)となるため、何度も存在しないページをクロールすることになって、ロスが発生するようです。
Googleのヘルプには、次のように書かれています。
(ソフト404エラーになることで)その URL にページが存在することが検索エンジンに明示されます。その結果、URL がクロールされ、コンテンツがインデックスに登録される場合があります。存在しないページに対して Googlebot の時間が消費されるため、所有している固有の URL の検出が遅れたり、アクセスの頻度が少なくなったりする可能性があります。また、サイトのクロール範囲にも影響する可能性があります
ソフト404エラー – ウェブマスターツール
つまり存在しないページやファイルが検索エンジンに登録されてしまうので、検索エンジンにとって影響が大きいわけですね。
直接ブログの運用には問題ないのですが、エラーとして検出される以上スッキリしませんし、なんとか是正してみたいと思います。
ソフト404エラーの対策
Googleのヘルプには、ソフト404エラー対策も書かれています。
存在しないページへのリクエストに応答する際には、404(見つかりません)または 410(存在しない)を常に返すことをおすすめします。404 レスポンス コードが返されるときに、独自の 404 ページがサイトで表示されるように設定すると、ユーザーの利便性を高めることができます。
ソフト404エラー – ウェブマスターツール
要はページやファイルが存在しなかったら、サーバーから404のコードを返して、独自404ページを設置すると使い勝手が良いですよ!ってことみたいです。
WordPressの場合、ページやファイルがない場合には、そのまま404ページ(404.php)を表示させればokです。
念のため404.phpに、以下のステータスコード用の記述も追加してみました。これで強制的に404になります。
<?php
header("HTTP/1.1 404 Not Found");
?>
さらに、.htaccessにも、下記を追記します。これでWordPress側で404ページを表示できなかった場合、.htaccessで404ページを表示します。
ErrorDocument 404 /index.php?error=404
WordPressをフォルダにインストールしている場合は、下記になります。
ErrorDocument 404 /【インストールフォルダ】/index.php?error=404
ソフト404エラーの対策の効果
WordPressの404ページからリダイレクトを外してみたら、効果がありました。9月末頃にソフト404エラーの検出が、かなり激しくなっていましたが、対策直後から激減しました。
まだ多少GoogleのインデックスにURLが残っているようで、検出されてしまいますが、その内無くなるのではないかと思っています。
「ソフト404エラー」ってすでにわかっているのですから、もうクロールしなければいいのにって思うのですが、まだそんなに検出精度が高くないってことなのでしょうか?
少なくともウェブソクに関しては、もう存在しないページやファイルばかり挙げられてたので、クロールしなくても問題無さそうです。この機能は近いうちに自動で処理されるようになるかもしれませんねー。
コメント