Erkennt eine Website einen KI-Agenten von einem Menschen?
10 Automatisierungs-Stacks, wirklich gegen eine lebende Seite gestartet — keine Ratgeberliste.
KI-Agenten surfen, vergleichen und kaufen bereits auf Ihren Seiten. Ob Sie sie hereinlassen oder draußen halten wollen: Die erste Frage ist dieselbe — sieht Ihre Website sie überhaupt? Wir haben echte automatisierte Browser gestartet — reines Headless, mit Fenster und immer bessere Stealth-Patches — und für jeden festgehalten, welche Prüfungen angeschlagen haben. Lesen Sie die Leiter, nicht die letzte Zelle: Jede Prüfung, die ein versteckter Stack aushebelt, kostet seinen Autor eine weitere gezielte Korrektur, in jeder Sitzung und auf jeder Website.
Was bekommen KI-Agenten von Ihren Seiten?
Kostenloser Scan: Was ChatGPT, Claude und Perplexity auf Ihrer Website lesen — und was zu beheben ist.
Die Stacks und was sie verraten hat
Jede Zeile ist ein Browser, der wirklich gegen die Seite gestartet wurde. Die Marken sind die ausgelösten Prüfungen.
- Playwright, default headless (chromium headless shell)Erkannt
5 Prüfungen in der Seite · 2 Prüfungen an den Headern
navigator.webdriver is true"Headless" in the User-Agent stringWebGL renderer is a software rasterizerZero browser plugins and MIME typesNo real interaction observed on the page"Headless" in the User-Agent headerNo Accept-Language header sent - Playwright, full Chromium in headless modeErkannt
4 Prüfungen in der Seite · 1 Prüfungen an den Headern
navigator.webdriver is true"Headless" in the User-Agent stringWebGL renderer is a software rasterizerNo real interaction observed on the page"Headless" in the User-Agent header - Playwright, headed Chromium on a virtual displayErkannt
2 Prüfungen in der Seite · 0 Prüfungen an den Headern
navigator.webdriver is trueWebGL renderer is a software rasterizer - Headless shell + the public stealth patch (spoofs webdriver, plugins, languages, cores, window size, permissions, WebGL vendor) and a real-browser User-AgentErkannt
6 Prüfungen in der Seite · 2 Prüfungen an den Headern
The webdriver flag has been rewrittennavigator.plugins is not a real PluginArrayNative browser functions have been replacedSpoofed properties answer to an object that is not a browserUser-Agent string disagrees with Client HintsNo real interaction observed on the pageNo Accept-Language header sentSec-CH-UA version disagrees with the User-Agent - Headless shell + a stealth patch written AGAINST these checks (flag moved to the prototype, real PluginArray of real Plugin objects, every patched function reporting itself as native, UA client hints aligned)Erkannt
2 Prüfungen in der Seite · 2 Prüfungen an den Headern
Spoofed properties answer to an object that is not a browserNo real interaction observed on the pageNo Accept-Language header sentSec-CH-UA version disagrees with the User-Agent - Headless shell + the same counter-patch, plus a brand check inside every fake getter (it refuses an object that is not a browser, exactly as the engine does)Erkannt
2 Prüfungen in der Seite · 2 Prüfungen an den Headern
The refusal itself is acted out by page codeNo real interaction observed on the pageNo Accept-Language header sentSec-CH-UA version disagrees with the User-Agent - Headless shell + the same brand-checked counter-patch, plus stack hiding (Error.captureStackTrace strips the patch’s own frames, so the acted refusal looks like the engine’s)Nicht erkannt
1 Prüfungen in der Seite · 2 Prüfungen an den Headern
No real interaction observed on the pageNo Accept-Language header sentSec-CH-UA version disagrees with the User-Agent - Headless shell + the same stack-hiding counter-patch, but installed in the top frame only (a patch that does not think about frames)Erkannt
2 Prüfungen in der Seite · 2 Prüfungen an den Headern
A fresh realm disagrees with this oneNo real interaction observed on the pageNo Accept-Language header sentSec-CH-UA version disagrees with the User-Agent - The best evasion measured here (stack-hiding counter-patch, installed in every frame — the only row that comes out clean), plus the driver moving the mouse across the page: the answer to "automation never touches anything"Nicht erkannt
1 Prüfungen in der Seite · 2 Prüfungen an den Headern
Pointer moved in a perfectly even progressionNo Accept-Language header sentSec-CH-UA version disagrees with the User-Agent - Not a browser at all: a raw HTTP client (Node http.request) that copies every Chrome header value — User-Agent, Sec-CH-UA, Accept-Language, sec-fetch-* — but not the order a real Chromium network stack emits them inNicht erkannt
0 Prüfungen in der Seite · 1 Prüfungen an den Headern
Headers arrive in an order no Chromium emits
Welche Prüfungen sich lohnen
Wie viele Stacks jede Prüfung fasst, gezählt nur auf den Zeilen, wo sie beurteilbar ist.
| Prüfung | Ebene | Gefasste Stacks |
|---|---|---|
| No real interaction observed on the page | In der Seite | 7 von 9 |
| No Accept-Language header sent | HTTP-Header | 7 von 10 |
| Sec-CH-UA version disagrees with the User-Agent | HTTP-Header | 6 von 10 |
| navigator.webdriver is true | In der Seite | 3 von 9 |
| WebGL renderer is a software rasterizer | In der Seite | 3 von 9 |
| Spoofed properties answer to an object that is not a browser | In der Seite | 2 von 9 |
| "Headless" in the User-Agent string | In der Seite | 2 von 9 |
| "Headless" in the User-Agent header | HTTP-Header | 2 von 10 |
| Native browser functions have been replaced | In der Seite | 1 von 9 |
| navigator.plugins is not a real PluginArray | In der Seite | 1 von 8 |
| Zero browser plugins and MIME types | In der Seite | 1 von 9 |
| Pointer moved in a perfectly even progression | In der Seite | 1 von 1 |
| A fresh realm disagrees with this one | In der Seite | 1 von 9 |
| The refusal itself is acted out by page code | In der Seite | 1 von 8 |
| User-Agent string disagrees with Client Hints | In der Seite | 1 von 9 |
| The webdriver flag has been rewritten | In der Seite | 1 von 9 |
| Headers arrive in an order no Chromium emits | HTTP-Header | 1 von 10 |
| Known Selenium / ChromeDriver / PhantomJS markers | In der Seite | 0 von 9 |
| navigator.hardwareConcurrency is zero | In der Seite | 0 von 9 |
| Empty navigator.languages | In der Seite | 0 von 9 |
| Window outerWidth/outerHeight is zero | In der Seite | 0 von 9 |
| Permissions API vs Notification.permission mismatch | In der Seite | 0 von 9 |
| No sec-fetch-* headers sent | HTTP-Header | 0 von 10 |
| Header User-Agent differs from the in-page one | HTTP-Header | 0 von 10 |
Laufende Erhebung
112 Sitzungen haben den Selbsttest im eigenen Browser ausgeführt und ein anonymes Urteil zurückgemeldet — nie einen Fingerabdruck. Anteil der Sitzungen, in denen das jeweilige Signal ausgelöst hat:
| Prüfung | Anteil der Sitzungen |
|---|---|
| Zero browser plugins and MIME types | 95% |
| "Headless" in the User-Agent string | 92% |
| navigator.webdriver is true | 90% |
| WebGL renderer is a software rasterizer | 90% |
| No real interaction observed on the page | 17% |
| Pointer moved in a perfectly even progression | 5% |
| User-Agent string disagrees with Client Hints | 2% |
| The webdriver flag has been rewritten | 1% |
| Native browser functions have been replaced | 1% |
Bislang stammen die meisten Sitzungen von unserem eigenen Prüfstand und von Crawlern, nicht von einem fremden Publikum: als Signalkatalog zu lesen, nicht als Messung des Webs.
Nur Browser der Chromium-Familie (die auf der messenden Maschine installiert sind) und ohne GPU, daher löst die Software-Renderer-Prüfung in jeder Zeile aus — dort ist sie eine Eigenschaft der Maschine, nicht der Automatisierung. Zuletzt gemessen: 2026-09-20.