Yahoo!からの訪問者

一般的なホームページへのアクセスの大半は検索エンジン経由です。 検索エンジンを使うと、キーワードで検索を行い結果として表示されるホームページへ移動できます。 ということは、検索エンジンを経由して訪問するユーザは何らかのキーワードを元にホームページにたどり着いているということになります。 そのキーワードを知ることにより、ユーザが何を求めてホームページにやって来たかが予測できます。 また、特定のキーワードでのユーザが多い場合には、内容や配置をそのキーワードに合わせて検索エンジンでの上位を狙うSEO(Search Engine Optimization)を行ったりも出来ます。 ここでは、日本で最もユーザ数が多いと言われているYahoo!を利用してホームページにたどり着いた人がどのようなキーワードで検索を行ったかを知る方法を説明したいと思います。

refererを利用する

アクセスログには、ホームページにたどり着いたリンク元を表すrefererというフィールドがあります。 Yahoo!を経由したユーザのrefererは検索情報を残しています。 例えば、本ホームページへYahoo!経由で来たユーザは以下のreferer情報を残していきました。


http://search.yahoo.co.jp/bin/search?p=geek&fr=top&src=top

上記リファラー情報のうち、「p=geek」の部分が検索キーワードになります。 色々なキーワードで検索を行うユーザがいると思いますが、観察を行うとページ毎に検索キーワードが偏ります。 その偏りを見ていくと、どのような情報を求めてくる人が多いかの予測ができます。 その予測を元にホームページを拡張して行くと、効率よくホームページのアクセス数を向上させられるかもしれません。

Yahoo!検索キーワード取得perlスクリプト

以下に、Yahoo!からの訪問者が利用した検索キーワードをアクセスログから取得するperlスクリプト例を示します。


#!/usr/bin/perl
# /usr/bin/perlの部分は必要に応じて変えてください

open(FILE, "access_log.txt") || die $! . "\n";
while (<FILE>) {
  /^(.*) (.*) (.*) \[(.*)\] "(.*)" (.*) (.*) "(.*)" "(.*)"/;

  # refererの情報を取得します
  $refer = $8;

  # 「http://search.yahoo」から始まるリファラー情報だけを表示します
  # search.yahooで留めているのはsearch.yahoo.co.jpと
  # search.yahoo.com両方に対応するためです
  if ($refer =~ /^http:\/\/search.yahoo/) {
    print $refer;
    print "\r\n";
  }
}
close(FILE);

exit;

上記perlスクリプトは最も単純なものです。 ここでは、とりあえずはリファラー情報からサーチエンジンの検索キーワードを抽出するという概念を理解していただければと思います。 実際に使うには、日本語対応やどのページの閲覧結果かなどの情報と一緒に解析を行う必要があると思われます。


IPv6基礎検定

YouTubeチャンネルやってます!