Headless ist nicht mehr versteckt
Vor sieben Tagen hat cside eine technische Analyse der Erkennung von headless Browsern im Jahr 2026 veröffentlicht. Der rote Faden: Detektoren erfassen headless Sitzungen jetzt auf Pixelebene. Gleicher nomineller Browser, gleiches Betriebssystem, andere WebGL-Ausgabe. Anderes AudioContext-Timing. Andere Schriftarten-Aufzählung. Kleine Signale, aber konsistent genug für eine Bewertung.
Dieser Beitrag erschien eine Woche nach WebDecoys Übersicht Browser Fingerprinting 2026, die auf einem anderen Weg zum gleichen Ergebnis kam. Browserless' State of Web Scraping 2026 (Anfang dieses Jahres veröffentlicht) sagte es deutlich: headless Browser werden häufiger markiert als nutzergesteuerte, und die Lücke wird immer größer.
Wenn du Puppeteer oder Playwright in Produktion ausführst, ändert das deine Kostenkurve.
Was sich tatsächlich geändert hat
Die alte Geschichte der headless-Erkennung war navigator.webdriver === true, leere Plugins-Arrays und HeadlessChrome im User-Agent. Jedes Stealth-Plugin ab 2020 patcht das. Also haben sich die Detektoren im Stack nach unten bewegt.
Software-Rendering ist ein großer Faktor. Der Browser eines Nutzers nutzt die GPU. Headless-Umgebungen in Containern greifen meist auf einen Software-Rasterizer zurück. Der WebGL-Renderer-String liest sich anders. Die Pixelausgabe unterscheidet sich bei der gleichen nominellen Eingabe. Canvas-Fingerprints weichen bei identischen Eingaben ab. Nichts davon löst eine einfache boolesche Prüfung aus, es fließt in einen probabilistischen Score ein.
AudioContext ist der zweite Faktor. Wenn eine Seite einen Audio-Kontext instanziiert und nach Abtastrate oder Kanalanzahl fragt, antworten headless-Umgebungen mit leicht anderen Werten als normale Desktop-Sitzungen. Das Timing der gleichen Operation driftet vorhersehbar ab.
Schriftarten-Aufzählung ist der dritte Faktor. Nutzermaschinen haben historisch gewachsene Schriftarten installiert. Container-Images haben eine kuratierte (und kleine) Auswahl. Wenn ein Fingerprinting-Skript die Breite von hundert häufigen Strings über fünfzig Schriftarten misst, ist das Muster der fehlenden Schriftart aufschlussreich.
Jedes dieser Signale ist für sich genommen schwach. Zusammen und in Kombination mit den älteren Signalen, die Detektoren immer noch prüfen, ergeben sie einen Score, der automatisierte Sitzungen mit ausreichend hoher Zuverlässigkeit von Nutzersitzungen trennt, um Maßnahmen zu ergreifen.
Warum Detektoren jetzt investieren
Weil die Zahlen endlich das F&E-Budget gerechtfertigt haben.
Der 2026 Advanced Persistent Bot Report von F5 schätzt den Scraper-Traffic auf 10,2 % des globalen Web-Traffics, nachdem bestehende Bot-Abwehrmaßnahmen angewendet wurden. Das ist der Restbestand: der Anteil, den Verteidiger mit ihren vorhandenen Werkzeugen nicht auf null reduzieren können. Jeder inkrementelle Punkt dieses Anteils ist es wert, geschlossen zu werden.
Cloudflare hat am 13. Juli Precursor veröffentlicht. Precursor sammelt kontinuierlich clientseitige Verhaltenssignale (Mausbewegungen, Tastatur-Timing, Fokus, Sichtbarkeit) und speist sie in einen laufenden Bot-Score ein, der über Seitenaktualisierungen hinweg bestehen bleibt. Wir haben vor zwei Wochen darüber geschrieben: Session-Verhalten wird nun so bewertet, wie Fingerprints noch vor einem Jahr bewertet wurden.
Precursor und die Welle headless-spezifischer Signale sind keine unabhängigen Entwicklungen. Sie sind derselbe Ansatz. Höre auf, einen einzelnen Request isoliert zu bewerten. Bewerte die gesamte Session auf jeder messbaren Achse.
Die zwei Steuern, die du wirklich zahlst
Headless in-house zu betreiben, war auf dem Papier schon immer günstig. Das Framework ist kostenlos, der Browser ist kostenlos und Container sind billig. Aber 2026 hat zwei Posten hinzugefügt, die nicht auf der Rechnung stehen.
Die Wartungssteuer ist die, die auffällt. Puppeteer-extra-stealth erkaufte früher Monate an Zeit zwischen Patches. Auf jeder Seite mit echter Abwehr im Jahr 2026 erkauft es nur noch Wochen. Zwischen Headless-Updates, Browser-Updates, Abwehr-Updates und Stealth-Plugin-Updates kann ein Entwickler gut eine Woche pro Monat damit verbringen, den Stack anzupassen. Niemand setzt das auf die Roadmap. Es frisst die Roadmap einfach auf.
Die Erkennungssteuer ist die, die nicht auffällt, weil sie sich im Erfolgsquoten-Diagramm versteckt. Blockraten bei geschützten Zielen steigen langsam an. Retries nehmen zu. Die Kosten pro erfolgreichem Fetch steigen mit. Du schiebst es auf "die Seite ist schwieriger geworden" und machst weiter. Einiges davon ist wahr. Einiges davon ist die wachsende Lücke zwischen dem Aussehen deines Stacks und dem eines normalen Browsers. Beide Trends verlaufen gleich.
Keine der beiden Steuern tötet ein Projekt. Zusammen ändern sie die Rechnung bei Build-vs-Buy.
Was das für Data-Teams bedeutet
Nicht jeder Scrape braucht einen Browser. Dieser Teil hat sich nicht geändert. Aber es ist erwähnenswert, da viele Headless-Deployments mit einer Seite begannen, die ein einfacher HTTP-Call hätte sein können.
Wenn die Daten des Ziels über ein XHR- oder JSON-Endpoint kommen, überspringe den Browser. HTTP Requests sind günstiger, schneller und tragen von vornherein keine dieser Fingerprint-Signale. Der okhlopkov-Artikel vom Juli setzt die Prioritäten richtig: API und XHR zuerst, dann eingebettetes JSON, Browser nur wenn die Seite es wirklich erfordert, LLM-Extraktion erst, nachdem alles andere verifiziert wurde.
Bei Seiten, die einen Browser benötigen, ist das Abwehrlevel die Frage. Leichter Schutz (Rate Limits, User-Agent-Filter, Referer-Checks): Ein gut konfigurierter Headless-Stack funktioniert weiterhin und die Steuer ist niedrig. Starker Schutz (Cloudflare, PerimeterX, DataDome mit vollständigem Session-Scoring): Die Steuer ist real und summiert sich. An diesem Punkt kippt die Kalkulation.
Es gibt auch einen mittleren Bereich, über den niemand spricht. Seiten, die nicht sofort blockieren, aber stillschweigend die Qualität reduzieren. Andere Preise, dünnere Listen, fehlende Bilder, fehlende Bewertungen. Dein Scraper meldet Erfolg. Die Daten sind unbemerkt falsch. Dieser Fehlerfall wird häufiger, da Fingerprinting-Scores in Inhaltsentscheidungen einfließen und nicht in Blockierungsentscheidungen.
Wenn du nicht sagen kannst, ob du in diesem Bereich bist, bist du es wahrscheinlich.
Wohin das führt
Headless war ein Hack, der ein Jahrzehnt lang funktionierte, weil niemand genau hingesehen hat. Die letzten zwei Jahre haben das geändert. Detection-Anbieter haben endlich entschieden, dass es sich lohnt, den verbleibenden Scraper-Anteil zu blockieren, und sie haben die Ebene gewählt, auf der Automatisierung am einfachsten zu isolieren ist.
In der nächsten Runde wird es nicht um intelligentere Stealth-Plugins gehen. Es wird darum gehen, welche Seiten entscheiden, dass die Erkennungsgenauigkeit die False-Positive-Rate bei legitimen Nutzern mit ungewöhnlichen Setups wert ist: Barrierefreiheits-Tools, ältere GPUs, Corporate Proxies, privates DNS. Jeder Punkt an Genauigkeit bei der Headless-Erkennung, den sie kaufen, kostet einen Bruchteil eines Prozents echter Nutzer. Bei diesem Kompromiss findet das eigentliche Wettrüsten statt, nicht in deiner Puppeteer-Config.
Wenn du die Headless-Steuer bereits zahlst, solltest du sie zumindest messen. Andernfalls ist es nur eine Ausgabe, von der du nicht wusstest, dass du ihr zugestimmt hast.