予想外の「ソフト404エラー」でGoogleから警告!?
それは管理している、とあるサイトをウェブマスターツールでチェックしていた時に気づきました。
「ん? 存在しないURLに対して『ソフト404エラー』が発生している…?」
知らない人のために説明すると、ソフト404エラーとは、本来「404 Not Found」を相手に返すために404というステータスコードを返さないといけないのに、そうなっていないことでGoogleのクローラーやその他ブラウザに勘違いされてしまうエラーのことです。
以前も指摘しましたが、ソフト404エラーはSEOに悪い影響を及ぼすエラーです。
ステータスコードで302が返されていた!
404じゃないとしたら、何が返されているんだ?と思って調べてみると、なんと302(一時的な移動)が返されています。
どこでそんなミスを?
そう思って調べるとApacheの設定で以下のような記述を行なっていました。
ErrorDocument 404 http://www.example.com/alert/404.html
※都合上、ドメイン名は例として別のものを当てはめています。
この記述のどこが間違いかというと、太字の部分。
このようにhttp://まで含めて指定してしまうと、サーバーは「エラー用のページがリモートサーバー上のページ」という判断をしてしまい、リダイレクトとして扱ってしまうというのです。
これを回避してちゃんと404を返すようにするには次のようにDocumentRootからのローカル絶対パスで指定するようにします。
ErrorDocument 404 /alert/404.html
でもこれって、気づかずに運営しているWEBサイトオーナーも沢山いるだろうなぁ。。
2012-07-25