リンク先ページが存在しない「404 Not Found」エラーですが、検索すればそのエラーページのカスタマイズ方法や秀逸なデザインなどがたくさん出てきます。
しかし、そのデザインは、果たして効果的なのか。ユーザーが目的を達成する助けになっているか、自己満足になっていないか。清水誠さんのアスキーでの連載記事「そのエラーページ、自己満足になっていませんか?」では、そんな問題提起を行い、実際に404ページの効果測定をする方法を紹介しています。
しかし、デザインする余裕がないなどの理由で404ページを作らず、リンク切れはすべてトップページへ転送サイトも少なくありません。このようなサイトでは、この記事になるようなデータを取ることは出来ないのでしょうか?
今回は、ちょっとの工夫で必要最低限のデータをGoogle Analytics(以下GA)で取る方法を紹介したいと思います。
この方法が使うための条件
- .htaccessが変更できる
- phpが使える
- 非同期のGoogle Analytics計測用タグを使っている
- エラー体験率
- 新規訪問エラー率
- リンクされているのに存在しないページ
- 存在しないページにリンクしているページ
■計測のための実装1:トップページに転送で工夫をしよう
.htaccessでまず404ドキュメントを指定する必要があります。
ErrorDocument 404 /404.php
つぎにこの404ページ(404.php)でトップページに転送するのですがここで一工夫。(2011.10.24修正)
<?php
header(“Location:http://WWW.YOURDOMAIN.COM/#404".$_SERVER['REQUEST_URI’]);
?><?php
$request = $_SERVER['REQUEST_URI’];
header(“Location:http://WWW.YOURDOMAIN.COM#404$request“);
exit;
?>
こ れでトップページに転送されます(もちろんWWW.YOURDOMAIN.COMはあなたのWEBサイトのURLに変更してくださいね)。ポイントはサイ トの「#404″.$_SERVER['REQUEST_URI’]」の部分。ポイントは「#404$request」の部分(とその前の行)。これで、アドレスの最後に404エラーが起きているページを「#404/エ ラーページのアドレス」のカタチで付記することができます。
例えば、「WWW.YOURDOMAIN.COM/nonopage /index.html」という存在しないページにアクセスがあると、トップページに転送されるのですが、そのときのアドレスは 「WWW.YOURDOMAIN.COM/#404/nonopage/index.html」となります。
■計測のための実装2:Google Analyticsの計測用タグの変更
ここまでくれば、冒頭で紹介した清水誠さんの記事で紹介されているGoogle Analyticsでの実装方法をちょっと変えるだけで様々なデータがとれるようになります。
次の記述を「_gaq.push(['_trackPageview’);」の前に加えます。
if(window.location.hash && window.location.hash.match(/#404\/.+/)){
_gaq.push(['_setCustomVar’, 1, 'Error’, '404’, 2]);
_gaq.push(['_trackEvent’, 'Error404’, document.location.hash, document.referrer]);
_gaq.push(function(){window.location.hash = ";});
}
これで、アドレスに「#404/」と付いた時のみイベントを発生させることができます。GAのイベントで記録してる内容は、紹介した記事の内容と同じになります。
ちなみに最後の「_gaq.push(function(){window.location.hash = ";});」は、測定後に不要となった「#404/エラーページのアドレス」を消す処理です(#は残っちゃいますが)。「#404/エラーページのアドレス」付きのURLがブックマークされたり、ソーシャルでシェアされると、エラー計測の精度が狂ってしまうので、それを避けるための処理です。
■GAで見てみよう
エラー体験率の見方については、紹介記事にある通りです。
また、エラー体験率があまりに高い場合や特定ページ偏っている場合などは、デザインした404ページを作りナビゲーションしたり、エラー多発の存在しないページについては、作成したり、代替ページにリダイレクトするなどを検討すればいいでしょう。