無愛想な404エラーメッセージの改善

  • by Jakob Nielsen
  • 1998年6月14日

リンク切れに関するコラムへの補足記事

存在しないURLに対するリクエストを受け取った時、デフォルトでは、ほとんどのウェブサーバがシンプルな「404 Not Found」というエラーメッセージを返すようになっている。このメッセージは、エラーメッセージの基本ガイドライン3か条に違反するものである。あらゆるエラーメッセージは、

  • 平明な言葉で書くこと。すなわち、非技術系のユーザにも理解しやすく、しかもミスをユーザのせいにしないものである
  • 何が悪いのか正確に特定する(ということは、一般的だったり、あいまいだったりしてはならないということである)
  • 問題解決のためにユーザが取りうるステップについて建設的な指示をすること

「URL not found」というエラーメッセージに関して言うと、なぜそのURLが見つからなかったかについて説明があった方がいいだろう。ファイルアクセスに関して、そのサイトでもっともよくあるミスをリストにしておくとなおよい。例えば、その際とでは、全ページのURL末尾を.htmlで統一しているのに、URLのリクエストが.htmで終わっている(あるいは、全ページが.htmで終わっているのに、.htmlを使っている)場合が多い、といったものだ。どんなサイトでも、命名基準に一貫性を持たせることをお薦めする。この基準は、専用のエラーメッセージページにも掲載しておくといいだろう。

さらによいのは、サーバにスペルチェックさせて、建設的なエラーメッセージを出すことだ。間違ったURLを解析して、該当しそうなURLがないか調べるわけだ。Apacheはこの機能をサポートしているが、必要なコード(mod_speling)は、残念ながらデフォルトではコンパイルされない。エラーの扱いを改善しようと思うなら、ウェブマスターは、サーバを再コンパイルする必要があるわけだ。

Tobias Ratschillerの報告によれば、あるホテルのホームページで、間違ったURLに対してスペルチェックをかける機能を追加した結果、404エラーの数が少なくとも40%低下したそうだ。

あなたが利用しているウェブサーバに、404エラーページをカスタマイズする機能があるなら、以下をお薦めしておく。

  1. あなたのサイト専用の404エラーページをデザインする – 助けにはならないが、標準的なエラーメッセージよりはましだ
  2. まずはシンプルに、やや謝罪口調で、リクエストされたURLがサイト内に存在しないと伝えることから始めよう
  3. URL指定でもっともよくあるミスのリストを追加する(ログファイルを調査してどんなエラーが多いか調べればこのリストを書けるだろう)
  4. 可能なら、リクエストされたURLに対してスペルチェックをかけ、近いものをリストにする(ハイパーリンクにしておけば、クリックひとつでユーザは直接希望するページに移動できる)
  5. 最後に、エラーページには、サイト用検索エンジンに直結した検索フィールドを設けておくべきだ: 現在のURLを推量できなくても、欲しい情報を見つけるための検索はできるだろう

Tobias Ratschiller (tobias@dnet.it)に感謝する。彼はイタリアのニューメディアコンサルタントであり、404の扱い方を改善することで、リンク切れ問題が軽減されることを示唆してくれた。

1999年4月追記: Internet Explorer 5.0には、512バイト以下のページは何であれ、内容の乏しいサーバエラーメッセージと仮定して、自前のテキストに入れ替えてしまう機能が組み込まれているようだ。IE5のエラーメッセージは、確かに標準的エラーメッセージより有用だ。しかし、カスタマイズしたエラーメッセージ以上に有用ということはめったにない。これならサイトの希望するページにたどり着く上で、建設的なヒントを提供できるからだ。テキストは短い方がいいという持論を持つ私ではあるが、IE5に表示させるためには、カスタマイズした404メッセージは512文字以上にしておく必要があるだろう。