frFrench ▾
deGerman
enEnglish
esSpanish
hiHindi
itItalian
jaJapanese
koKorean
noNorwegian
zhChinese
Accueil Nouveautés Actualités Tutoriels Consommation Culture Vidéo Buzz Divers

Besucherzähler: Bots, die JavaScript ausführen

Publié le 06 novembre 2026
Weiße Roboterhand vor einem Netz leuchtender verbundener Punkte auf blauem Hintergrund, Symbol für einen Besucher-Bot

Am Morgen des 4. November 2026 zeigte der Besucherzähler von VosPosts eine schmeichelhafte Zahl: 3.352 „menschliche“ Besucher an einem Tag und weitere 2.272 vor ein Uhr nachts – auf einer Website mit normalerweise rund 400 Besuchen täglich. Kein Artikel war geteilt worden, kein Link viral gegangen. Es waren schlicht Bots, die unser Zähler für Leser hielt.

Wir erklären, wie wir das entdeckten, warum die alte Regel „Wenn JavaScript läuft, ist es ein Mensch“ nicht mehr gilt und wie Sie solche falschen Besucher in Ihren Serverprotokollen erkennen.

Die Falle: „JavaScript wurde ausgeführt, also ist es ein Mensch“

Viele selbst gebaute Zähler, darunter unserer, beruhen auf einer einfachen Idee: Der Server protokolliert die angeforderte Seite; anschließend sendet ein kleines Browserskript eine zweite Anfrage, die den Besuch „bestätigt“. Früher luden Bots nur HTML herunter, ohne Code auszuführen. Die zweite Anfrage blieb aus, und sie erschienen nicht in der Statistik.

Dieser Filter ist inzwischen löchrig. Heute führen viele Bots JavaScript wie echte Browser aus:

  • Suchmaschinen rendern Seiten, um sie zu verstehen: Googlebot nutzt aktuelles Chromium; außerdem begegnet man Baiduspider-render, Applebot, Bytespider (ByteDance) und meta-webindexer.
  • Der AdSense-Werbebot (Mediapartners-Google) besucht Seiten, um deren Inhalte zu analysieren.
  • Moderne Scraper steuern echte Browser ohne Oberfläche: Headless Chrome, Puppeteer, Playwright oder schlankere Engines wie Lightpanda für Automatisierung und KI-Agenten.

Für einen Zähler, der nur die Skriptausführung prüft, sind diese Besucher von Lesern nicht zu unterscheiden. Erstaunlicherweise begann das Problem nicht erst mit dem Angriff: Am völlig normalen 3. November stammten 446 der 621 als menschlich gezählten Besuche tatsächlich von Bots. Mehr als sieben von zehn.

Anzeichen für einen Headless-Browser-Scraper

Der Anstieg vom 4. November zeigte sämtliche Merkmale organisierten Scrapings. Für sich allein beweist keines dieser Indizien etwas; zusammen lassen sie kaum Zweifel.

Publicité

Eine andere IP-Adresse für jede Seite

Jede Seite wurde von einer anderen IP-Adresse aus aller Welt angefordert. Das ist typisch für Residential-Proxys: Netzwerke, die Anfragen über private Internetanschlüsse leiten, häufig ohne Wissen der Eigentümer. IP-Adressen zu sperren bringt daher wenig: Es sind Tausende, und sie gehören echten Haushalten.

Seit Jahren veraltete Browser

Die User-Agents wechselten zwischen wenigen Einträgen: Chrome 118 bis 120, Firefox 120 und 121 sowie Edge 119 und 120. Diese Versionen stammen von Ende 2023. Chrome und Firefox aktualisieren sich aber etwa alle vier Wochen automatisch; echte Leser kamen mit Chrome 148 bis 156. Ein einzelner Besucher mit einem drei Jahre alten Browser ist denkbar, Tausende in einer Nacht deuten jedoch auf eine fest kopierte User-Agent-Liste im Scraping-Tool hin.

Zwischen diesen Angaben tauchte sogar völlig unverstellt Lightpanda/1.0 auf.

Verdächtig gleichförmiges Verhalten

  • Ausschließlich Desktop-Rechner, keine Mobilgeräte, obwohl die meisten echten Zugriffe von Smartphones kommen;
  • kein Referrer: Niemand kam über Google, soziale Netzwerke oder andere Websites;
  • 2.340 verschiedene Suchanfragen über die interne Suche, um möglichst viele Seiten abzugreifen;
  • 24.772 Anfragen an diesem Tag, also 42 % des gesamten Serververkehrs.

Das versteckte Risiko: Werbung

Ein Headless-Browser führt alles aus, auch das Laden von Werbeplätzen. An jenem Tag lud der Bot unsere Anzeigenblöcke 2.939-mal. Für AdSense-Publisher ist das relevant: Bot-generierte Impressionen gelten als ungültiger Traffic, den Google von den Einnahmen abzieht und der bei Wiederholung das Konto gefährden kann. Ein aufgeblähter Zähler ist also nicht bloß Eitelkeit.

Bots in Serverlogs erkennen

Apache- oder Nginx-Zugriffslogs im „combined“-Format enthalten alle nötigen Daten. Einige Befehle reichen zur Auswertung. Zunächst die häufigsten User-Agents:

awk -F'"' '{print $6}' access.log | sort | uniq -c | sort -rn | head -30

Danach die Verteilung der Chrome-Versionen. Bei normalen Websites konzentrieren sich die meisten Zugriffe auf die vier oder fünf neuesten Versionen; ein großer Block alter Versionen fällt sofort auf:

grep -oE 'Chrome/[0-9]+' access.log | sort | uniq -c | sort -t/ -k2 -n

Die Anzahl der Anfragen pro Stunde zeigt genau, wann eine Welle beginnt und endet:

awk '{print substr($4, 2, 14)}' access.log | sort | uniq -c

Vergleichen Sie bei einer verdächtigen Kennung schließlich die Zahl der Anfragen mit der Zahl unterschiedlicher IP-Adressen. Sind beide Werte fast gleich, haben Sie Ihr Proxy-Netz gefunden:

grep -c 'Chrome/119.0.0.0' access.log
grep 'Chrome/119.0.0.0' access.log | awk '{print $1}' | sort -u | wc -l

Ein nützliches Detail: Seit 2022 sendet Chrome nur noch die Hauptversionsnummer, gefolgt von .0.0.0. Das Format Chrome/119.0.0.0 ist also normal; die 119 verrät den Bot.

Unsere Gegenmaßnahmen

Nicht mehr zählen, ohne zu sperren

Erste Stufe: Der Zähler entscheidet serverseitig, ob ein Besuch gezählt werden soll. Ein Besuch gilt nicht mehr als menschlich, wenn der User-Agent leer ist, einen Bot ausweist (Bot, Spider, Crawler, HTTP-Werkzeuge wie curl oder Python, Headless-Browser) oder eine mehr als zweieinhalb Jahre alte Chrome- oder Firefox-Version nennt. Die Schwelle wird anhand des Datums automatisch berechnet:

$jours = (time() - mktime(0, 0, 0, 12, 5, 2023)) / 86400; // Chrome 120, décembre 2023
$version_actuelle = 120 + (int)floor($jours / 28);           // une version toutes les 4 semaines
if (preg_match('/Chrome/(d+)./', $ua, $m) && (int)$m[1] < $version_actuelle - 32) {
    return true; // navigateur trop ancien pour être un lecteur réel
}

Eine wichtige Ausnahme: Angemeldete Nutzer werden unabhängig vom Browser immer gezählt. Der Filter richtet sich gegen Unbekannte, nicht gegen treue Mitglieder mit einem alten, nicht aktualisierten Rechner.

Scraper abweisen, Suchmaschinen zulassen

Zweite, strengere Stufe: Der Server beantwortet Scraper-Kennungen nun mit Fehler 403, macht aber eine ausdrückliche Ausnahme für legitime Crawler. In Apache reichen wenige Zeilen:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (Lightpanda|HeadlessChrome) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Chrome/1(18|19|20).0.0.0 [OR]
RewriteCond %{HTTP_USER_AGENT} Firefox/12[01].
RewriteCond %{HTTP_USER_AGENT} !(bot|spider|crawl|google|bing|facebook) [NC]
RewriteRule ^ - [F]

Die ersten drei Bedingungen sind durch [OR] verknüpft, die letzte wird mit einem impliziten „und“ hinzugefügt: Eine der Kennungen wird blockiert, außer der User-Agent gibt sich als Suchmaschine oder soziales Netzwerk aus. Nach der Einrichtung prüften wir beides: Der Scraper erhält 403, während aktuelles Chrome, iPhone, Googlebot, Bingbot und der AdSense-Bot weiterhin die Seiten erhalten.

Googlebot versehentlich zu sperren kann erheblich teurer werden als verfälschte Besucherzahlen. Testen Sie jede Regel mit den User-Agents der Suchmaschinen, bevor sie produktiv eingesetzt wird.

Grenzen dieser Methode

Ein User-Agent lässt sich mit einer einzigen Zeile fälschen. Sobald der Scraper Chrome 155 vorgibt, erkennen ihn diese Regeln nicht mehr. Das ist kein dauerhafter Schutz, sondern Grundhygiene: Sie entfernt die vielen nachlässigen Bots und macht Zahlen wieder aussagekräftig. Für mehr Schutz müssen mehrere Signale kombiniert werden (fehlender Referrer, eine Seite pro IP, keine Mausbewegung oder Scrollaktivität) oder spezialisierte Bot-Erkennungsdienste zum Einsatz kommen.

Die eigentliche Lehre ist eine andere: Ein Zähler, der einmal jährlich bei einem spektakulären Ausschlag lügt, verfälscht wahrscheinlich auch an allen anderen Tagen unauffällig die Zahlen. Wer seine Zugriffslogs noch nie geprüft hat, sollte die obigen Befehle zehn Minuten lang an einem gewöhnlichen Tag ausprobieren. Das Ergebnis könnte überraschen.

Tags
Besucherzähler
Bots
Scraping
Headless-Browser
Apache-Logs
User-Agent
Envoyer à un ami
Signaler cet article
A propos de l'auteur