ハード404とソフト404って何?

ずいぶん前に見よう見まねでカスタマイズした404エラーページ。
.htaccessを使えば簡単に導入できると思ってたら、甘かった。

カスタマイズの際に参考にしたサイトでは

ErrorDocument 404 http://kamurogi.com/404.html

こんな感じで絶対パスでの記述だったけど、これだといわゆる「ソフト404」になるみたい。
早速、僕のサイトで存在しない適当なURL(例えばhttp://kamurogi.com/hoge/とか)を調べてみると、HTTPステータスコードで302が返された。

ちなみにHTTPステータスコードは以下のツールを導入すれば簡単に調べることができます。

update
LiveHTTPHeadersなどのブラウザ拡張機能にマルウェアの疑いがあるようです。
※下記、拡張機能とWebサイトへのリンクは削除しています。

  • Firefox LiveHTTPHeaders
  • IE ieHTTPHeaders

上記のツールを使えない環境でもView HTTP Request and Response HeaderというサイトでURLを指定するだけで確認できます。

ソフト404とは?

GoogleのHTTP ステータス コード – ウェブマスター ツール ヘルプによると

  • 200 (成功)
  • 302 (一時的移動)
  • 404 (ページが見つかりません)

となっています。

絶対パスの指定でも404エラーのカスタマイズページに移動するので、人間が見た場合(というか見た目)は問題ないように表示されるけど、ロボット(例えば検索エンジン)が404と認識しないとダメ。

で修正の仕方は

ErrorDocument 404 /404.html

のようにドキュメントのパスを指定すればOK

フォルダーを挟みたい場合は、

ErrorDocument 404 /フォルダー名/404.html

とすれば良い。この時、フォルダー名やファイル名の前に「⁄(スラッシュ)」を忘れないように。

これでHTTPステータスコードで404(ハード404)が返さます。

参考にさせていただいたサイト
存在しないページは、301?、ハード404?、ソフト404? » 海外SEO情報ブログ・メルマガ
ErrorDocumentを絶対URLで書くのはやめようよ : ひろ式めもちょう