アクセスカウンタを変更しました(SVG使用)

iPad/iPod/iPhone,Web-log・ココログ関連,WordPress

本ウェブサイトは、今時アクセスカウンタを取り付けています。設立当初からの積算になっているので、もったいなくて外せません。

今まで、次のウェブページで紹介されているものを改造して使っていました。ありがとうございます。

出力されるカウンタが、GIF形式で(私はPNG形式で出力されるように改造していました)、画像サイズが気になりました。それで、SVGで出力するように挑戦したのですが、iPhoneでカウントされないと言う問題にあたり、諦めていました。

これとは別に、本ウェブサイトの表示の高速化に取り組んでいます。主にはテーマファイルの修正です。それが終わり、残件としてアクセスカウンタの変更がありました。

最初、アクセスカウンタ用のプラグインを0から書こうかと思っていました。ですが、方針を変えて、既存のプラグインを改造することにしました。

基本構造はオリジナルプラグインのままで、表示部をSVG対応にしました。これは、割と簡単にうまくいきました。iPhoneでも無事カウントされました。

ところが、テスト環境だときちんと数えてくれるのですが、本番環境に持っていくと、今までのカウンタよりもはるかに多いアクセス数になってしまいます。

いろいろ調べた結果、bot(Crawler)のアクセスもカウントされていることがわかりました。旧アクセスカウンタは画像を表示することで1カウントになります。新アクセスカウンタは、wp_footerが起動されるごとに1カウントになります。どうもbotは、htmlだけ持って行って、画像にはアクセスしないようです。それで、wp_footだとbotもカウントされ異常に多いカウント数になるようです。旧アクセスカウンタの様に、画像表示だとbotがカウント外になるようです。

botを排除するため、Apachの生ログを解析して、botのUA規則を見つけ出し、次の関数を作りました。ほぼ、botを弾けていると思います。

function is_bot() {
    $pattern = '/'.'(bot|slurp|spider|feedfetcher|wordpress|libwww|wget|okhttp|python|php|photon|parser)'.'/i';
    return preg_match($pattern, $_SERVER['HTTP_USER_AGENT']);
}

こうして、無事に完成しました。テストの結果、いままでとほぼ同等のカウント数になっているようです。

アクセスカウンタ

かなり疲れました。

以前使っていたカウンタに組み込んでいた、キリ番通知機能も組み込んでいます。笑

[amazonjs asin="B00IK7TOIY" locale="JP"]

Posted by お市のかた