PHP Unterscheiden zwischen Besucher und Bot

Pfandfinder

Lieutenant
Registriert
Nov. 2020
Beiträge
619
ich möchte die Seitenaufrufe von meiner Seite zählen. derzeit mache ich das nur mit der IP, wenn die noch nicht in der datenbank ist, macht er +1. Aber oft kommen ja auch Bots / Crawler auf die Seite. wie kann ich mit dem useragent sowas rausfiltern ? der von Google heißt ja "googlebot", das könnte ich ja rausfiltern. aber es gibt sicher noch viel mehr ? Wie mache ich das am besten ?
 
Sicher nicht nur per IP, mehrere User können die gleiche IP haben (überall da wo ein Anschluss geteilt wird) oder die wechseln (d.h. verschiedene Besucher können über mehrere Tage hinweg die gleiche IP haben).
Du könntest z.B. ein Cookie setzen um erkannte Clients zu markieren - funktioniert aber nur bedingt zuverlässig da die User das auch wieder löschen können oder gar nicht akzeptieren. Allenfalls als Alternative mit localStorage, da hast aber per PHP mWn kein Zugriff.
Bots kannst Du z.B. versuchen per robots.txt Eintrag und rel="nofollow" auszuschliessen - da kriegst den "ehrlichen" Teil wie den Google Bot weg.
 
  • Gefällt mir
Reaktionen: Kontrollfreak und chorn
hi,

ich hab das für eine matomo integration mal wo recherchiert:
PHP:
  preg_match('/bot|crawl|slurp|spider/i', $_SERVER['HTTP_USER_AGENT'])

in der integration für WP schaut das so aus (falls du andere sachen verwenden willst)
https://github.com/netzgestaltung/wordpress-snippets/blob/master/matomo-tracker.php#L81

wichtig zu wissen ist, dass der HTTP_USER_AGENT natürlich vom client beliebig gesetzt werden oder sich mit der Zeit ändern kann.
 
  • Gefällt mir
Reaktionen: Pfandfinder
Zurück
Oben