ソフト404ってなんですか?
エラーページの作成の際
「.htaccess」 の記述で以下の用に進めてるサイトを、良く見かけます。
ErrorDocument 404 http://○○○○○.com/404.html
これって、「ソフト404」になるみたい!
てか、「ソフト404」って何よ! と言う話ですよね
「ソフト404」とは、
「ページが見つかりません」などのエラーを返しているように、一見、見えている
だけど、実際は、正常に処理された200のステータスコードを返してることです。
どう言うことか?
エラーメッセージを作成したものを、WEBサイトにおいて
存在しないページに、アクセスされた時に表示させることです。
要するに、アクセスしたユーザーには、
「ページは存在しないよ」と、説明されてるんだけど、
検索エンジンのクローラーには、
「ちゃんと存在してるページですよ」と200を返してることです。
それって、なんかまずいの?
Googleからは、「ソフト404」は、使うなという指示があるようです。
クローキング(不正なSEOとして検索エンジンをだましてる好意)の対象では無いみたいですが、
クロールして、インデックスしようとする時間を消費させて、
正常に存在するページ取得に悪影響をあたえるため「ソフト404」は、使うなという指示してるようです。
Googleに逆らってもしょうがないので
きちんと通常の404(ハード404)になるように
検索エンジンに対しても「存在しないページ」と伝えることが望ましいです。
で、
ErrorDocument 404 http://○○○○○.com/404.html
の場合だけど、これは、ステータスコードが302になって、要するに転送されて、
最終的には、ステータスコードが200になります。
ですので、このやり方は、「ソフト404」に、なっちゃいます。
正しいやり方は、下記のように、通常の404(ハード404)になります。
ErrorDocument 404 /404.html
カテゴリ | カテゴリの意味 |
---|---|
100番台 | インフォメーション(案内) |
200番台 | 正常に処理 リクエストを正しく処理したことを示す |
300番台 | リダイレクト(移転通知) |
400番台 | クライアント側のエラー |
500番台 | サーバ側エラー(処理失敗) |
「ソフト404」と言う事は、絶対パスで作られることになり、
通常の404(ハード404)は、相対パスになります。
相対パスで作られると、画像やリンクを読み込めないので、
head内に、<base href="URL"> と記述する必要があります。
head内に、追加すれば回避できます。
<base href="URL"> URLの箇所には、ご自身のドメイン名を記述して下さい。