Googleからの訪問者
一般的なホームページへのアクセスの大半は検索エンジン経由です。 検索エンジンを使うと、キーワードで検索を行い結果として表示されるホームページへ移動できます。 ということは、検索エンジンを経由して訪問するユーザは何らかのキーワードを元にホームページにたどり着いているということになります。 そのキーワードを知ることにより、ユーザが何を求めてホームページにやって来たかが予測できます。 また、特定のキーワードでのユーザが多い場合には、内容や配置をそのキーワードに合わせて検索エンジンでの上位を狙うSEO(Search Engine Optimization)を行ったりも出来ます。
ここでは、世界で最もユーザ数が多いと言われているGoogleを利用してホームページにたどり着いた人がどのようなキーワードで検索を行ったかを知る方法を説明したいと思います。 世界ではGoogleユーザが最も多いと言われていますが、日本はYahoo!ユーザが最も多いと言われています。 個人的にはGoogleを利用するユーザの方がYahoo!を利用するユーザよりもコンピュータに詳しいと思っています。 というのも、Googleから本ホームページへ到達してくるユーザの方がYahoo!から到達してくるユーザに比べて内容を絞った検索を行っているからです。 例えば、Yahooでの検索キーワードは大抵一つですが、Google経由では2つ以上が多いです。
Googleの方が検索エンジンへ登録される頻度が多く、また更新も早いと思われます。 そのため、ホームページ立ち上げ当初などはGoogle経由のユーザが大半を占めると思われます。 より良いWebサイトを構築するには、Google経由で訪問してくるユーザが何を求めて来ているかを把握することは大変重要であると思われます。
refererを利用する
アクセスログには、ホームページにたどり着いたリンク元を表すrefererというフィールドがあります。 Googleを経由したユーザのrefererは検索情報を残しています。 例えば、本ホームページへGoogle経由で来たユーザは以下のreferer情報を残していきました。
http://www.google.co.jp/search?q=geek&hl=ja&lr=lang_ja
上記リファラー情報のうち、「q=geek」の部分が検索キーワードになります。 色々なキーワードで検索を行うユーザがいると思いますが、観察を行うとページ毎に検索キーワードが偏ります。 その偏りを見ていくと、どのような情報を求めてくる人が多いかの予測ができます。 その予測を元にホームページを拡張して行くと、効率よくホームページのアクセス数を向上させられるかもしれません。
Google検索キーワード取得perlスクリプト
以下に、Googleからの訪問者が利用した検索キーワードをアクセスログから取得するperlスクリプト例を示します。
#!/usr/bin/perl
# /usr/bin/perlの部分は必要に応じて変えてください
open(FILE, "access_log.txt") || die $! . "\n";
while (<FILE>) {
/^(.*) (.*) (.*) \[(.*)\] "(.*)" (.*) (.*) "(.*)" "(.*)"/;
# refererの情報を取得します
$refer = $8;
# 「http://www.google」から始まるリファラー情報だけを表示します
# www.googleで留めているのはwww.google.co.jpと
# www.google.com両方に対応するためです
if ($refer =~ /^http:\/\/www\.google\./) {
print $refer;
print "\r\n";
}
}
close(FILE);
exit;
上記perlスクリプトは最も単純なものです。 ここでは、とりあえずはリファラー情報からサーチエンジンの検索キーワードを抽出するという概念を理解していただければと思います。 実際に使うには、日本語対応やどのページの閲覧結果かなどの情報と一緒に解析を行う必要があると思われます。