削除されたアドレスの場合はステータスコード404を返す

2007-4-1 11:21
このエントリーをはてなブックマークに追加

わかりやすい404エラーページについて考えてみるという記事が話題になりました。たしかに存在しないページ・削除されたページにアクセスされた場合に、何もしないで “404 Not Found” などと返してしまうのは、せっかく見に来た人を逃してしますので不親切です。

とはいえ、404 のページに広告やリンクがたくさん貼り付けられていてゴチャゴチャしているのもどうかと思います。存在しなかったページにアクセスしたら自動的にトップページにリダイレクトされてしまうのも不愉快ですね。あと、もう一つ困るのが存在しないページなのにステータスコード 404 を返さないこと。

なぜステータスコードが重要なのか

404 Blog Not Found:誤った404エラーページをつくるただ1つの方法で指摘されているように、

なにかのきっかけで訪れるのは、人間とは限りません。 (略) 「彼ら」にとって「ページが存在しない」とはいったいどういうことでしょう? (略) そのURIにアクセスした時に、Status 404がきちんと返ってくることです。 誤った404エラーページをつくるただ1つの方法、それはStatus 404を返さないことなのです。

これにより検索エンジンのロボットは、404 が返されたページをインデックスしないようになり、検索エンジンの質が上がります。これはそのサイト運営者にとっても利用者にトップもプラスになることです。

某大手ポータルの無料ホームページスペースは最悪で、ステータスコード 200 を返した上にトップページにリダイレクトします。

通常のページでも 404 を返すのがよい場合

ステータスコード 404 を返した方がよいのは、存在しないページや削除されたページだけのことではありません。たとえば動的なページなどで、ページ自体は存在するが、そのページに掲載すべき商品が見つからなかった場合など、200 ではなく 404 を返すのが検索ロボットに対して親切です。

有名なのはヤフーオークションで「該当する商品がなかった」場合、アマゾンで該当する商品がない場合などです。

URL 短縮サービスの 5jp.net でも、一定期間後に削除された URL、スパムで削除された URL のジャンプページのステータスコードは 404 を返すようにしています。以前は 200 のままでしたのでまだ検索エンジンにゴミがたくさん残っていますが、今後は少なくなってくるはずです。これにより 5jp.net ドメイン全体のページの質が上がるわけです。サイト運営者にも利用者にもメリットがあるというのはこういう事です。

404 のステータスコードを返すには

PHP では難しいことではありません。該当の検索結果が無い場合、削除されていた場合、次のコードを入れるだけです。

    header("HTTP/1.0 404 Not Found", true, 404);

ステータスコードを確認するには

Live HTTP Headers :: Firefox Add-ons

探せばいろいろなサービスやツールがありますが、私がお薦めするのは Firefox のアドオンである Live HTTP Headers です。英語ですがシンプルなので使い方に迷うことはないと思います。

コメントはまだありません

No comments yet.

Sorry, the comment form is closed at this time.

32 queries. HTML convert time: 0.075 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2017 @ futuremix.org ログイン