
GPTBot, ClaudeBot, PerplexityBot: Was AI-Crawler bei Prerendering wirklich sehen
TL;DR: „AI-Crawler executen kein bis kaum JavaScript. Wer seine SPA nicht prerendert, ist für ChatGPT, Claude und Perplexity de facto unsichtbar. Drei Monate Edge-Logs zeigen, wie oft sie kommen – und was sie tatsächlich abholen."
— Till FreitagWarum diese Auswertung
Wir reden im Cluster oft darüber, dass Prerendering die Brücke zur AI-Suche ist. Aber „LLMs mögen statisches HTML" ist eine Behauptung. Dieser Artikel liefert die Evidenz.
Wir haben drei Monate Vercel-Edge-Logs unserer eigenen Site (Playwright-SSG) und einer Kundensite (klassische SPA, kein Prerendering) ausgewertet. Gleicher Traffic-Bereich, gleiches Stack-Setup minus Prerendering. Das ist kein Lab-Benchmark – das ist Produktions-Traffic.
Die drei relevanten User-Agents
| Bot | User-Agent (Auszug) | Betreiber | Zweck |
|---|---|---|---|
| GPTBot | Mozilla/5.0 (compatible; GPTBot/1.x; +https://openai.com/gptbot) |
OpenAI | Training + ChatGPT Search |
| OAI-SearchBot | Mozilla/5.0 (compatible; OAI-SearchBot/1.x; +https://openai.com/searchbot) |
OpenAI | ChatGPT Search live retrieval |
| ClaudeBot | Mozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
Anthropic | Training + Claude Citations |
| PerplexityBot | Mozilla/5.0 (compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot) |
Perplexity | Search Index + Answer Engine |
| Perplexity-User | Perplexity-User/1.0 |
Perplexity | On-Demand-Fetch bei User-Query |
Wichtig: GPTBot ≠ OAI-SearchBot. GPTBot indexiert breit für Training. OAI-SearchBot holt gezielt URLs, die ChatGPT in einer Antwort zitieren will. Wer in ChatGPT als Quelle auftauchen will, optimiert nicht für GPTBot – sondern für OAI-SearchBot und ähnliche „User-Triggered"-Crawler.
Was die Logs zeigen: Crawl-Volumen
Drei Monate, eine Million Edge-Requests, gefiltert nach User-Agent:
| Bot | Requests | Anteil aller Crawler | Trend |
|---|---|---|---|
| Googlebot | 41 % | Referenz | stabil |
| Bingbot | 12 % | stabil | |
| GPTBot | 9 % | +40 % QoQ | |
| ClaudeBot | 7 % | +120 % QoQ | |
| PerplexityBot | 6 % | +60 % QoQ | |
| OAI-SearchBot | 4 % | neu | |
| Sonstige (Bytespider, Amazonbot, etc.) | 21 % | gemischt |
Die drei großen AI-Crawler machen zusammen rund ein Viertel des nicht-menschlichen Traffics aus. Tendenz: steil steigend. Wer 2024 noch sagen konnte „das ist Nische", kann das 2026 nicht mehr.
Was sie tatsächlich abholen
Hier wird es interessant. Wir haben pro Bot drei Werte gemessen:
- HTML-Request (das initiale GET auf die Route)
- JS-Bundle-Requests (lädt der Bot überhaupt die App-Bundles?)
- Hydration-Indikator (kommt ein Followup-Request, der nur nach Hydration entstehen kann – z. B. ein Lazy-Image, ein API-Call?)
Auf unserer prerendered Site
| Bot | HTML | JS-Bundle | Hydration-Followup |
|---|---|---|---|
| Googlebot | 100 % | 78 % | 31 % |
| GPTBot | 100 % | 3 % | 0 % |
| OAI-SearchBot | 100 % | 0 % | 0 % |
| ClaudeBot | 100 % | 0 % | 0 % |
| PerplexityBot | 100 % | 1 % | 0 % |
Auf der nicht-prerendered SPA des Kunden
| Bot | HTML | JS-Bundle | Hydration-Followup |
|---|---|---|---|
| Googlebot | 100 % | 71 % | 22 % |
| GPTBot | 100 % | 2 % | 0 % |
| OAI-SearchBot | 100 % | 0 % | 0 % |
| ClaudeBot | 100 % | 0 % | 0 % |
| PerplexityBot | 100 % | 0 % | 0 % |
Das ist der Befund in einer Tabelle: AI-Crawler laden Bundles praktisch nicht. Sie führen sie nicht aus. Sie sehen, was im ersten HTML-Response steht – nicht mehr.
Googlebot rendert in einem signifikanten Teil der Fälle JavaScript (über den Web Rendering Service). Die AI-Crawler tun das schlicht nicht. Auch nicht „manchmal", auch nicht „bei wichtigen Seiten". In drei Monaten Daten: praktisch nie.
Was das praktisch bedeutet
Auf der nicht-prerendered Kunden-SPA bekommen GPTBot, ClaudeBot und PerplexityBot dieses HTML:
<!doctype html>
<html><head>
<title>Loading...</title>
</head><body>
<div id="root"></div>
<script type="module" src="/assets/index-abc123.js"></script>
</body></html>Das ist alles. Keine Headline. Kein Text. Kein JSON-LD. Kein OpenGraph mit echtem Title. Für das Trainings-Set und für den Live-Retrieval-Index ist diese Seite ein leeres Dokument mit dem Inhalt „Loading...".
Auf unserer prerendered Site bekommen sie pro Route:
- vollständiger
<title>und<meta description> - alle
<h1>bis<h3>mit echtem Text - der komplette Artikel-Body im HTML
- JSON-LD (
Article,BreadcrumbList,Organization) - OpenGraph mit echtem Title, Description, og:image
Das ist der ganze Unterschied. Nicht „etwas besser sichtbar". Sondern „existiert" vs. „existiert nicht".
Warum AI-Crawler kein JavaScript ausführen
Drei Gründe, die in den Bot-Docs und in Engineering-Posts der Anbieter durchscheinen:
- Kosten. Headless-Chromium pro URL ist um Größenordnungen teurer als ein simples
fetch. Bei den Crawl-Volumina, über die wir reden (Milliarden URLs/Monat), ist das nicht skalierbar. - Determinismus. LLM-Trainingsdaten sollen reproduzierbar sein. Hydration-Race-Conditions, A/B-Tests, Login-Walls per JS – all das produziert Noise.
- Geschwindigkeit. Bei On-Demand-Retrieval (Perplexity-User, OAI-SearchBot) muss die Antwort in Sekunden stehen. Kein Platz für 3 s Hydration.
Googlebot kann sich Headless-Rendering leisten, weil es seit 15 Jahren ein eigener Infrastruktur-Stack ist. OpenAI, Anthropic und Perplexity bauen das nicht von Grund auf nach. Sie nehmen HTML wie es kommt.
Was die Logs noch zeigen: Cache-Verhalten
Ein zweiter Befund, der unser SSR-vs-Pre-Rendering-Argument für Mykeythai stützt:
AI-Crawler respektieren Cache-Control und ETag deutlich konsequenter als Googlebot. Auf der prerendered Site sehen wir bei GPTBot und ClaudeBot:
- 70–80 % der Re-Crawls landen auf
304 Not Modified - Edge-CDN beantwortet sie aus Region-Cache
- Origin wird nicht angefasst
Auf der nicht-prerendered SPA: alle Requests gehen durch (200 mit leerem HTML), weil das HTML praktisch nie einen brauchbaren ETag hat. Mehr Traffic, weniger Inhalt. Schlechtester Trade-off möglich.
Was du jetzt tun solltest
Konkret, in dieser Reihenfolge:
- Logs filtern.
vercel logs --output rawoder direkt aus deinem Edge-Provider. User-Agent-Filter aufGPTBot|ClaudeBot|PerplexityBot|OAI-SearchBot. Wenn die Zahl bei null liegt: du wirst nicht gefunden, weil du nicht prerenderst – oder weil deinerobots.txtblockt. Prüf beides. robots.txtehrlich machen. Wer in AI-Antworten zitiert werden will, muss diese Bots erlauben. Default-Deny ist eine bewusste Entscheidung, kein Versehen. Unsere Position dazu steht im Linking-Guidelines-Dokument.- Prerendering einschalten. Wenn du auf Lovable bist: Discoverability-Release nutzen. Wenn du eigene Vite-SPAs deployst: Playwright-SSG-Tutorial folgen.
- JSON-LD ergänzen. AI-Crawler lieben strukturierte Daten – sie sparen ihnen das Parsen. Wie das automatisiert geht: JSON-LD-Schema für SPAs.
- Nach 4 Wochen erneut messen. Crawl-Volumen sollte sich verdoppeln bis vervierfachen. Cache-Hit-Rate Richtung 70 %+.
Fazit
Wer 2026 über GEO redet, ohne über Prerendering zu reden, redet über ein Plakat an einer Wand, die kein Licht hat. Die Logs sind eindeutig: AI-Crawler lesen HTML. Sie führen kein JavaScript aus. Und sie kommen häufiger, als die meisten Marketing-Decks behaupten.
Wenn du wissen willst, ob deine Site für ChatGPT, Claude und Perplexity existiert, schau in deine Edge-Logs. Wenn du das nicht hast, schreib uns. Wir machen den Check kostenlos.








