この話題は以前「404 Blog Not Found:200 Blog Not Found」でも触れたのだけど、まだわかっていない人々があとを断たないのでもう一度。

わかりやすい404エラーページについて考えてみる | caramel*vanilla
アクセスされたページを削除してしまったのなら仕方ありませんが、URLが変わっただけならなんとか探し当てていただきたいもの。 せっかくなにかのきっかけで訪れてくれた方をガッカリさせたままでは申し訳ありません。

なにかのきっかけで訪れるのは、人間とは限りません。

特に検索エンジンは「非人間の訪問者」としては非常に重要な訪問者です。

「彼ら」にとって「ページが存在しない」とはいったいどういうことでしょう?

ページがわかりやすいこと?

違います。そのURIにアクセスした時に、Status 404がきちんと返ってくることです。

誤った404エラーページをつくるただ1つの方法、それはStatus 404を返さないことなのです。

ところが、未だにエラーなのにStatus 200を返すURIがあふれています。

akaさんの翻訳版を参考にして自分用にちょっと変えて使っています。
こんな感じ↓

% HEAD -S http://caramel-tea.com/404.php
HEAD http://caramel-tea.com/404.php --> 200 OK
Cache-Control: no-cache, must-revalidate, max-age=0
Connection: close
Date: Thu, 29 Mar 2007 14:06:10 GMT
Pragma: no-cache
Server: Apache
Content-Type: text/html; charset=UTF-8
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Last-Modified: Thu, 29 Mar 2007 14:06:10 GMT
Client-Date: Thu, 29 Mar 2007 14:06:08 GMT
Client-Peer: 210.172.108.233:80
Client-Response-Num: 1
Status: 404
X-Pingback: http://caramel-tea.com/xmlrpc.php

ダメダメです。検索エンジンたちにとって、このページは存在するページです。当然キャッシュもされ、検索にも引っかかります。

もしそういう実装、すなわち「URIの不存在は、ページの内容ではなくステータスで判定する」なっていなかったらどうなるでしょう?もし「URIの不存在はページの内容で判定する」だったら、本blogは大変困ったことになってしまいます。なにしろ本blogは、404を日本語でぐぐった場合のトップに来るのです。もしこれらのページまで本当の404エラーと誤解されたら私も読者の皆さんも困ってしまいます。見ての通りその品質はとにかく、内容そのものがないのとは違うのですから。

404ページの内容に凝る前に、きちんとStatus 404を返しているかどうかをきちんと確認するようにしてください。それはロボットという訪問者のためだけによいことではなく、翻ってあなたのためにもなるのですから。

Dan the King of 404

See Also: