Hallo zusammen,
da mein WebShop über Ajax läuft tracke ich die komplette Seite über die PHP-API. Dadurch werden aber auch alle Bots mitgezählt (ausser Google und MSN/Bing).
Ich habe mir daraufhin mal die “seltsamen” Besucher genauer angesehen.
Über die Seiten
http://www.user-agents.org
und
http://www.botsvsbrowsers.com
Habe ich daraufhin noch ein paar Suchmaschienen-Bots gefunden und aus der Statistik herausgefiltert.
Der entsprechende Abschnitt in der core/tracker/visit.php sieht jetzt so aus:
protected function isExcluded()
{
$excluded = false;
$ip = $this->getVisitorIp();
$ua = $this->getUserAgent();
/*
* Live/Bing/MSN bot and Googlebot are evolving to detect cloaked websites.
* As a result, these sophisticated bots exhibit characteristics of
* browsers (cookies enabled, executing JavaScript, etc).
*/
$dotIp = Piwik_Common::long2ip($ip);
if (strpos($dotIp, '65.55') === 0 // Live/Bing
|| strpos($dotIp, '207.46') === 0 // MSN
|| strpos($ua, 'MSNBOT') !== false // MSN Search
|| strpos($ua, 'bingbot') !== false // Bingbot
|| strpos($ua, 'Googlebot') !== false // Googlebot
|| strpos($ua, 'GoogleBot') !== false // GoogleBot
|| strpos($ua, 'Google Web Preview') !== false // Google Instant
|| strpos($ua, 'Mediapartners-Google') !== false // Media Partrners GoogleBot
|| strpos($dotIp, '4.79.204.36') === 0 // Geo-Trinity.com
|| strpos($ua, 'Baiduspider') !== false // Baiduspider
|| strpos($ua, 'BaiDuSpider') !== false // Baiduspider
|| strpos($ua, 'Ezooms') !== false // Ezooms
|| strpos($ua, 'YahooSeeker') !== false // YahooSeeker
|| strpos($ua, 'Yahoo! Slurp') !== false // Yahoo! Slurp
|| strpos($ua, 'AltaVista') !== false // Altavista
|| strpos($ua, 'AVSearch') !== false // Altavista
|| strpos($ua, 'Mercator') !== false // Altavista
|| strpos($ua, 'Scooter') !== false // Altavista
|| strpos($ua, 'InfoSeek') !== false // Infoseek
|| strpos($ua, 'Ultraseek') !== false // Infoseek
|| strpos($ua, 'Lycos') !== false // Lycos
)
{
printDebug('Search bot detected, visit excluded');
$excluded = true;
}
Dabei ist mir die Idee gekommen, dass man sowas auch als Plugin realisieren könnte:
Eine Liste mit Suchbegriffen bzw. IP-Adressen, die man in dem Plugin einstellen kann, zusammen mit einem “Bot-Namen”.
Wird dann einer der Begriffe gefunden wird der Besuch nicht im Besucher-Log eingetragen, aber ein Zähler für diesen “Bot-Namen” hochgesetzt. Evtl. noch das Datum des letzten Bot-Besuchs speichern und fertig.
Was haltet Ihr von der Idee?
Soll ich evtl. weitere Bot-Filter hier im Forum veröffentlichen oder besteht kein Interesse?
Gruß,
Darkwing