おはようございます。ppBlog Tipsというカテゴリーを設けました。ppBlogのちょっとした機能や、役に立ちそうなプチ改造法を紹介していこうと思います。
ppBlogでは、昨日・今日・トータルのアクセス数、そして同時刻にトップページにアクセスしている訪問者をカウントして表示する(オンライン)機能がついています。このサイト(テーマがBasicであれば)では、ページの左上についているやつです。このオンライン数(同時にサイトを見ている訪問者)には、実は、巡回型の検索ロボットGのアクセスも含まれています。いつもオンライン数は1桁なのに、たまに23人!?とかになってたりするのは、多分に、この巡回ロボットのせいでしょう。巡回ロボットのアクセスも統計カウントのログファイルに記録されるので、ログファイルも肥大化する傾向にあります(もっともppBlogでは統計ログファイルが900KB前後になると新しくログファイルを自動作成しますが)。
この巡回型の検索ロボット、各々の検索インデックス作成のためにアクセスしに来ているので、アクセス自体を拒否してしまうのは、サイトの存在を隠すようなものですから、それは避けつつ、統計カウントから除外する方法について解説しておきます。
1.管理画面から設定する方法
巡回エンジンのIPアドレスが分かっていれば、そのIPアドレスを指定して、統計から除外することが可能です。具体的にIPアドレスを知るには、まず管理画面の「アクセス解析」の「生ログ」というのを覗いてみます。左から5番目の項目は「エージェント」で、ここで巡回ロボットのめぼしをつけて、そのIPアドレスを見ればよいわけです。具体例を挙げておきましょう。
同じmsnbotでも、IPアドレスの最後が違うことに注目
この画面では、2件のMSNサーチのロボットとグーグルのロボットが記録されています。例えば、MSNのロボットを統計から除外したい場合(アクセスの拒否ではない)、IPアドレスを見てみると、IPアドレスが微妙に違いますね。でも最初の3つは同じなので(65.55.105)、この部分をマウスで範囲を選択してコピーしておきます。次に、管理画面の「IPコントロール」→「統計カウント除外」というのを開いてみましょう。次のような画面になっています(ここでは既に登録されたIPアドレスもありますが)。
この画面で、「設定したいIPアドレス」に、先ほどコピーした65.55.105をペースト、次にその後ろに「.*」を追加して 65.55.105.* という状態で、追加ボタンを押せば登録されます。これで、65.55.105.0から65.55.105.255までのIPアドレスを一気に統計から除外できるわけです。これはIPアドレスの範囲が分かっている場合には有効です。
2.直接プログラムをいじる方法
上のようにあらかじめIPアドレスが分かればよいのですが、巡回エンジンの中には、IPアドレスが頻繁に変化して、決め打ちで指定するのが事実上無理なものもあります。そうでなくても、このように手作業で指定していくのも手間ですね。指定したIPアドレスが、そのうち変更されるかも知れませんし。この場合は、ソースをいじった方が速いです。具体的には、statディレクトリにあるlog.phpをいじります。
代表的な巡回エンジンはグーグルのGooglebot、Yahoo!のYahoo Slurp、MSNのmsnbot、そして百度(Baidu)のBaiduspiderです。中には数秒おきにアクセスしてたり これらの名前がエージェントに含まれていれば、カウントを除外するという記述を付け加えます。log.phpの86行目あたりに次の1行を追記しましょう。
if(strpos($ua, 'slurp') || strpos($ua, 'aidu') || strpos($ua, 'snbot') || strpos($ua, 'glebot')) $ip_accept = FALSE;
最新版のlog.phpは、コメントアウトしてありますが、すでにこの記述があります。ですが、3つめのMSNに対する指定で'msnbot'となっているので、ここは'snbot'に修正して下さい。strposの代わりにstrstrを使っても良いのですが、strposの方が高速なので、2文字目以降にヒットするようにしています。
このような感じで、検索ロボットが名乗るエージェント名で指定するやり方は効果的なので、ソースをいじることに抵抗がない場合は推奨される方法です。ヒューリスティックな方法も取り入れるなら、
strpos($ua, 'bot') || strpos($ua, 'crawl') || strpos($ua, 'feed') || strpos($ua, 'fetch')
なども追記すると、より効果的に、統計からこの手の巡回ロボットを除外できます。
余談になりますが、ソースを編集する際のテキストエディタですが、Windowsな環境であれば、個人的にはYokkaSoftさん のDeuxEditor(もしくはUnEditor)がおススメです。タブ型のエディタで、置換検索や、ファイル差分検出機能も充実していて、最高のテキストエディタだと思いますが、それでいてフリーです。有名なシェアウェアものより、よっぽど高機能にもかかわらずです。マックOSXでは、これに匹敵するテキストエディタ(フリー)は探しきれていません。同等のものがあれば、マックでのppBlog開発も苦にならないのですが、なかなか良いエディタがなくて・・・。
Comments