Ich weiß nicht genau warum, aber ich mag die Semmelstatz. Der Autor des Besuchertracking-Plugins hat mittlerweile keinen Blog mehr und wird vermutlich auch keine Sekunde mehr in die Weiterentwicklung stecken. Was bleibt? Man muss es ausmisten – oder selbst ran :-)
Für die letzte Alternative habe ich mich entschieden – hauptsächlich aus Spassss an der Freud’ und am frickeln!
Ich mag das Plugin aber auch aus anderen Gründen… es gibt einen schnellen Überblick über Besucher, begehrte Artikel, Referer. Desweiteren läuft es auf dem Server und der eigenen Datenbank und verwendet PHP-Bordmittel, kein Javascript oder ähnliches. Schick.
Ebenso ist es das Statistik-Plugin, das ich mit als erstes eingesetzt habe – die historische Zahlen reichen zurück bis zum 13.10.2008, darauf verzichte ich nur ungerne.
Was bleibt sind aber ein Haufen Nachteile…
Auf Semmelstaz angesprochen, sagte ein Kollege vor einiger Zeit: Zum scheis*en taugt’s!
Und ja… da ist mitunter was dran.
Ich habe vor einiger Zeit die jeweiligen Besucherstatistiken mit den Werten von Google Analytics verglichen. Das die Zahlen abweichen war klar – interessanter, die Höhe:
Im Monatsdurchschnitt hatte ich eine Abweichung der Besucherzahlen in Höhe von 39%!
Die niedrigste Abweichung betrug 19%, die höchste sagenhafte 54%. Interessant ist zudem, dass die Abweichung geringer wird, je mehr Besucher am Tag kommen.
Zudem ist der Vergleich auch noch eher nach dem Prinzip Apfel->Birnen, denn ich habe GA Visits mit Semmel Besuchern verglichen. Realistische wäre es die Unique Visitors von GA zu verwenden, denn so zählt Semmelstatz auch: Jede IP-Adresse wird am Tag nur einmal gezählt!
Als erstes stand also eine Bereinigung der Besucherzahlen an – von jedem Tag habe ich großzügig und generell 1/3 abgezogen, nun sehen die Stats schon deutlich realistischer aus.
Dies ist allerdings keine Lösung für die Zukunft, der Code muss optimiert werden.
Naheliegend ist es, die Boterkennung zu verbessern. Wie?
Semmelsatz analysiert für die Identifizierung eines Bots den User-Agent des Besuchers. Dieser sieht beim Google-Bot z.B. so aus:
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Semmelstatz analysiert diesen String nun nach bestimmten Keywords, in dem Fall z.B. “google”. Wort gefunden -> Bot. Nix zählen.
Meiner Meinung nach sollte die Größe einer Datenbank nicht begrenzt sein – und nur eine volle Datenbank ist eine gute Datenbank ;-)
Folglich habe ich in Schritt 1 Semmelstatz ein wenig modifiziert und schreibe nun auch den jeweiligen User-Agent in die Tabelle…
Viele Tage später, nach Analyse von tausenden Einträgen und Ausführungen von unzähligen selects kann ich behaupten:
In meiner Statz-Tabelle gibt es zu 99,9% keine Bots mehr, die man am User-Agent erkennen könnte!
Entsprechend habe ich die function sem_AreYouBot in der semmelstatz.php erweitert, bzw. bereinigt. Da ich unter anderem ‘bot’, ‘spider’, ‘crawler’ als Einzelwörter mit aufgenommen habe (funktioniert hervorragend und fehlerfrei – ich schreibe z.Z. auch jeden Bot in eine Tabelle und bin mir somit absolut sicher), flogen Einträge heraus, die diese Wörte beinhalten.
Herausgekommen ist dabei dieses Array, das jeder Semmelsatz-User gerne verwenden kann und sollte :-)
Von dieser Erweiterung habe ich mir allerdings etwas mehr versprochen – meine Abweichungen gegenüber Google Analytics sind zwar zurückgegangen, jedoch nicht im erhofften Umfang – im Schnitt liege ich nun bei 29% gegenüber ehemals 39% Abweichung.
Dies wiederum bedeutet, dass ich immer noch viele Bots als Besucher zähle. Bots, die man nicht durch den User-Agent als solche identifizieren kann. Das Konzept von Semmelstatz stößt also zunächst einmal an seine Grenzen – nicht jedoch meine Ideen :-)
Seit vielen Monaten verwende ich das grandiose Antispam-Plugin NoSpamNX, seitdem hat mich kein Spamkommentar von einem Bot mehr erreicht.
Moment… NoSpamNX identifiziert Spam-Bots durch ihr Verhalten? Bots, die Semmelstatz als normale Besucher identifiziert? Großartig!
Seit einigen Tage läuft hier eine Erweiterung bei NoSpamNX mit:
Wenn ein Bot erkannt und geblockt wird, fliegt er aus der Semmelstatz-Tabelle! Dies funktioniert bisher großartig…
Desweiteren beschäftige ich mich auch noch mit $_SERVER['REMOTE_ADDR'] – sprich der IP-Adresse des Möchtegern-Besuchers. Experimentell versuche ich mich an einem forward and reverse DNS Check bei jeder Adresse, die in die Semmelsatz Tabelle geht:
Ich schreibe gerade mit der IP-Adresse 91.52.159.28. Aufgelöst ergibt diese p5B349F1C.dip.t-dialin.net – und im Umkehrschluss ergibt dieser Name wieder die gleiche IP-Adresse.
Bei gut und gerne 20% meiner Besucher schlägt diese Abfrage jedoch fehl. Bei einigen hat der aufgelöste Hostname beim reverse DNS eine andere IP als die, die bei mir ankam. Sehr suspekt, geradezu böse -> Mülleimer.
Zu anderen gibt es auch einige, bei denen die Auflösung des Hostnames fehlschlägt. Was ich von diesen Treffern halten soll, weiß ich noch nicht so genau. Sehr viele finde ich jedoch in einschlägigen RBLs unter der Kategorie: Spammer
Eine weitere Möglichkeit ist es noch, Semmelsatz um eine Javascript bzw. Ajax-Funktionalität zu erweitern, sprich den Zähler durch etwas javascript-basiertes auszulösen. Da ich jedoch bei Wikipedia nachlesen muss, was Javascript ist ;-) beschäftige ich mich die nächste Zeit erstmal noch mit den Dingen, die ich zu können glaube:
Frickelei mit PHP und SQL!
Und – was macht ihr so bei Langeweile?
![[GREGEL DOT COM]](http://static.gregel.com/themes/mg/images/header1.jpg)

Carsten
sagte am 24. April 2010, 08:34 UhrSuper, was du da fabriziert hast. Gibt es dazu vllt. auch nen TUT? Ich hatte mich auch mal in Semmelstatz versucht und man kann die User auch nach Artikel sortieren. Dazu in der semmelstatz_func.php:
time > Now() – INTERVAL “.$onlinetime.” SECOND GROUP BY ip DESC”);
suchen und durch folgendes ersetzen:
time > Now() – INTERVAL “.$onlinetime.” SECOND GROUP BY ip ORDER BY page DESC”);
Dann werden alle User nach Artikel sortiert. Auch ganz nett diese bessere Übersicht :)
Gruß Carsten
Marc
sagte am 25. April 2010, 10:14 UhrHi Carsten,
wofür genau das Tut? Um den User-Agent wegzuschreiben?
Das schreibe ich heute Abend mal zusammen, wenn ich alle Änderungen noch hinbekommen… lach
Jens
sagte am 10. Mai 2010, 17:36 UhrHi,
ich bin nicht ganz so fix beim scripten. Aber wo ist der Unterschied von deinem Array zu dem was in der semmelstats.php ist ? Ich kann auf den ersten Blick nicht viele “neue” erkennen.
Die Idee ist gut. An so eine Botliste zu kommen aer wohl schon ein problem. ich hab auf anhieb nur sowas gefunden:
http://www.robotstxt.org/db.html
Schönen gruß :-)
Marc
sagte am 10. Mai 2010, 18:55 UhrHi Jens :-)
Dadurch das bei vielen Bots im Namen “bot”, “spider” oder “crawler” enthalten ist, und ich diese Wörter mit aufgenommen habe, werden deutlich mehr Bots direkt weggefiltert.
Hat auch den Vorteil, dass man das Gesamt-Array kleiner halten kann…
Jens
sagte am 10. Mai 2010, 17:48 UhrPS: Dein Array hat nen Fehler ! Zeile
‘wikio’
da muß ein “,” ans Ende sonst gibts (bei mir) nen Fehler. das die semmelstatz.php fehlerhaft ist.
MFG
Marc
sagte am 10. Mai 2010, 18:54 UhrUps, danke! Da ist mir wohl beim copy&paste etwas abhanden gekommen… werde ich gleich mal korrigieren!
Ortwin
sagte am 13. Mai 2011, 16:56 UhrServus,
danke für die Tipps, ich werde mal schaun welche ich davon in SemmelstatzR(eloaded) mit integriere. Solltet ihr noch weitere Tipps oder Bugs haben so würde ich mich über einen Eintrag im Tracker http://sourceforge.net/tracker/?group_id=518773 freuen.
Gruß aus Franken