ppBlog Warning: LINE 1117 of utils.php: preg_match(): The /e modifier is no longer supported, use preg_replace_callback instead

Tips: 検索ロボットの巡回は統計カウントしなくて良いんだけど

Tips: 検索ロボットの巡回は統計カウントしなくて良いんだけど

category-icon

 おはようございます。ppBlog Tipsというカテゴリーを設けました。ppBlogのちょっとした機能や、役に立ちそうなプチ改造法を紹介していこうと思います。

 ppBlogでは、昨日・今日・トータルのアクセス数、そして同時刻にトップページにアクセスしている訪問者をカウントして表示する(オンライン)機能がついています。このサイト(テーマがBasicであれば)では、ページの左上についているやつです。このオンライン数(同時にサイトを見ている訪問者)には、実は、巡回型の検索ロボットGのアクセスも含まれています。いつもオンライン数は1桁なのに、たまに23人!?とかになってたりするのは、多分に、この巡回ロボットのせいでしょう。巡回ロボットのアクセスも統計カウントのログファイルに記録されるので、ログファイルも肥大化する傾向にあります(もっともppBlogでは統計ログファイルが900KB前後になると新しくログファイルを自動作成しますが)。

 この巡回型の検索ロボット、各々の検索インデックス作成のためにアクセスしに来ているので、アクセス自体を拒否してしまうのは、サイトの存在を隠すようなものですから、それは避けつつ、統計カウントから除外する方法について解説しておきます。

1.管理画面から設定する方法

 巡回エンジンのIPアドレスが分かっていれば、そのIPアドレスを指定して、統計から除外することが可能です。具体的にIPアドレスを知るには、まず管理画面の「アクセス解析」の「生ログ」というのを覗いてみます。左から5番目の項目は「エージェント」で、ここで巡回ロボットのめぼしをつけて、そのIPアドレスを見ればよいわけです。具体例を挙げておきましょう。

access
同じmsnbotでも、IPアドレスの最後が違うことに注目

この画面では、2件のMSNサーチのロボットとグーグルのロボットが記録されています。例えば、MSNのロボットを統計から除外したい場合(アクセスの拒否ではない)、IPアドレスを見てみると、IPアドレスが微妙に違いますね。でも最初の3つは同じなので(65.55.105)、この部分をマウスで範囲を選択してコピーしておきます。次に、管理画面の「IPコントロール」→「統計カウント除外」というのを開いてみましょう。次のような画面になっています(ここでは既に登録されたIPアドレスもありますが)。

controlPanel

 この画面で、「設定したい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さんLink のDeuxEditor(もしくはUnEditor)がおススメです。タブ型のエディタで、置換検索や、ファイル差分検出機能も充実していて、最高のテキストエディタだと思いますが、それでいてフリーです。有名なシェアウェアものより、よっぽど高機能にもかかわらずです。マックOSXでは、これに匹敵するテキストエディタ(フリー)は探しきれていません。同等のものがあれば、マックでのppBlog開発も苦にならないのですが、なかなか良いエディタがなくて・・・。 

— posted by martin at 02:06 pm   commentComment [1]  pingTrackBack [0]

この記事に対するコメント・トラックバック [1件]

scrollUp1. tak — 2009/08/07@16:17:15

一年前の記事ですが・・
私もMac上での開発に困っていたのですが“Jedit X”ですっきり解決しました。等幅フォントでアンチエイリアスをオフにすると良い感じです。各言語に対応したライブラリも充実してますし、自分で作ることも出来ますよ。・・あ、フリーじゃない・・

この記事に対する TrackBack URL:

設定によりTB元のページに、こちらの記事への言及(この記事へのリンク)がなければ、TB受付不可となりますのであらかじめご了承下さい。

コメントをどうぞ。 名前(ペンネーム)と画像認証のひらがな4文字は必須で、ウェブサイトURLはオプションです。

ウェブサイト (U):

タグは使えません。http://・・・ は自動的にリンク表示となります

:) :D 8-) ;-) :P :E :o :( (TT) ):T (--) (++!) ?;w) (-o-) (**!) ;v) f(--; :B l_P~

     
T: Y: ALL: Online:
Created in 0.0042 sec.
prev
2024.3
next
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31