KI-Crawler und JavaScript: Warum ChatGPT deine Seite leer sehen kann

Von SEOgrinder · Veröffentlicht · 9 Min. Lesezeit

Kurzantwort: Beim Thema KI-Crawler und JavaScript gilt eine einfache Regel: Ein Bot, der keine Skripte ausführt, sieht nur das HTML, das dein Server schickt. Baut deine Seite ihren Text erst im Browser zusammen, kann dieses HTML eine leere Hülle sein. In einer Messung von Vercel und MERJ vom Dezember 2024 führte keiner der großen KI-Crawler JavaScript aus, der Crawler von Google und AppleBot dagegen schon. Das ist eine Momentaufnahme von 2024. Teste deshalb deine eigenen Seiten und sorge dafür, dass der Haupttext schon im HTML steht: serverseitig gerendert oder vorab erzeugt.

Wie kommt ein Crawler an deine Seite?

Jeder Abruf beginnt mit einer Anfrage an deinen Server, und die Antwort ist HTML. Was danach geschieht, entscheidet, wie viel von deiner Seite ankommt.

Ein Browser lädt die Skripte, auf die das HTML verweist, führt sie aus und zeigt das Ergebnis. Ein Crawler kann an derselben Stelle stehen bleiben und nur das erste HTML auswerten. Oder er rendert: Dann führt er die Skripte aus, wartet kurz und liest erst danach.

Schickt der Server den Text gleich mit, ist das egal, denn beide Wege führen zum selben Inhalt. Entsteht die Seite dagegen erst im Browser, ist im ersten HTML kaum etwas zu finden. Googles Dokumentation nennt das das „App-Shell-Modell“. Ein Bot ohne JavaScript erhält dann etwa Folgendes:

<body>
  <div id="root"></div>
  <script src="/app.js"></script>
</body>

Überschrift, Text, Produktliste und Links erscheinen erst, wenn /app.js gelaufen ist. Nicht jeder Crawler führt dieses Skript aus, und genau darin liegt das Problem.

Was Google mit JavaScript macht

Google ist der leichte Fall, und es lohnt sich zu wissen, warum. In der Dokumentation zu den Grundlagen von JavaScript-SEO steht:

  • Google Search führt JavaScript mit einer „evergreen“ Chromium-Version aus, also einer, die aktuell gehalten wird.
  • Eine Seite durchläuft drei Phasen: Crawling, Rendering und Indexierung.
  • Eine Seite mit Status 200 kommt in eine Warteschlange zum Rendern, und das kann Sekunden oder länger dauern. Bei einem anderen Status als 200, etwa einem 404, kann das Rendern entfallen.
  • Title, Meta-Beschreibung und Canonical dürfen per JavaScript gesetzt werden.

Dieselbe Seite liefert auch den Grund für diesen Artikel. Google schreibt, serverseitiges Rendern oder Vorab-Rendern sei weiterhin eine gute Idee, weil es die Seite für Nutzer und Crawler schneller macht und weil nicht alle Bots JavaScript ausführen können. „Google indexiert meine Seite“ heißt also nicht, dass jeder Bot sie lesen kann.

KI-Crawler und JavaScript: Was belegt ist

Die bekannteste Messung stammt von Vercel und MERJ und erschien im Dezember 2024 unter dem Titel The rise of the AI crawler. Ihr Ergebnis: Keiner der großen KI-Crawler führte JavaScript aus. Die Studie nennt darunter GPTBot, OAI-SearchBot, ChatGPT-User und ClaudeBot. Googlebot (in der Studie für Gemini aufgeführt) und AppleBot renderten JavaScript.

Zwei Vorbehalte gehören direkt neben dieses Ergebnis. Erstens ist es eine Momentaufnahme von 2024, und wir haben keine neuere Messung, die wir nennen könnten. Crawler ändern sich, nimm das Ergebnis also als Warnung und nicht als Gesetz. Zweitens sagt es, was ein Bot liest, nicht, ob eine Seite in einer Antwort genannt wird. Eine Nennung kann niemand versprechen, mit oder ohne JavaScript.

Die Bots haben unterschiedliche Aufgaben. So beschreiben die Betreiber sie:

BetreiberBotZweck laut Betreiber
OpenAIGPTBotTraining generativer Basismodelle
OpenAIOAI-SearchBotSuche in ChatGPT
OpenAIChatGPT-UserAbrufe auf Wunsch eines Nutzers, zum Beispiel bei einer Frage in ChatGPT
AnthropicClaudeBotSammelt Webinhalte, die zum Training beitragen können
AnthropicClaude-SearchBotVerbessert die Qualität der Suchergebnisse
AnthropicClaude-UserAbrufe, wenn ein Nutzer Claude etwas fragt
PerplexityPerplexityBotZeigt Websites in den Suchergebnissen von Perplexity an und verlinkt sie

Die Quellen sind OpenAI, Anthropic und Perplexity. Perplexity hat außerdem einen eigenen Bot für Abrufe auf Wunsch eines Nutzers. Lesen die Bots hinter den KI-Suchantworten nur HTML, hat eine Seite mit leerer Hülle für sie nichts zu zitieren. Welche davon Skripte ausführen, hat die Studie von 2024 gemessen, und genau das solltest du an deinen eigenen Seiten prüfen.

Wen es trifft

Betroffen bist du, sobald Text oder Links nicht im HTML stehen, das dein Server schickt. Das sind die typischen Fälle:

  • Seiten, die komplett im Browser entstehen. Der Server antwortet mit einer Hülle und einem Skriptpaket, und das Skript schreibt Überschrift, Text und Navigation.
  • Inhalte, die Skripte nachladen. Produktlisten, Preise, Bewertungen, Tabs oder „Mehr laden“-Bereiche, die nach dem Laden der Seite über einen API-Aufruf kommen.
  • Links, die erst nach dem Ausführen von Skripten existieren. Ein Crawler ohne JavaScript kann nur Links verfolgen, die im HTML stehen. Auch der Website-Durchlauf von SEOgrinder stößt darauf: Er vermerkt, dass sich Links, die erst im Browser entstehen, nicht verfolgen lassen.
  • Title, Beschreibung, Canonical und Open-Graph-Angaben, die ein Skript setzt. Google akzeptiert das. Ein Bot, der Skripte überspringt, sieht sie nie.

Nicht betroffen bist du, wenn der Server den Text schon mitschickt. Interaktive Extras wie ein Menü, ein Diagramm oder ein Rechner dürfen weiter im Browser entstehen. SEOgrinder meldet Seiten, die nur im Browser existieren, als „Die Seite wird erst im Browser gebaut“, weil viele KI-Crawler dort kein JavaScript ausführen und eine fast leere Seite sehen.

Drei Tests in einer Minute

Für die Antwort brauchst du kein Werkzeug. Alle drei Tests beantworten dieselbe Frage: Steht mein Text im HTML, das der Server schickt?

  1. Seitenquelltext anzeigen. Öffne deine Seite und wähle „Seitenquelltext anzeigen“ (Strg+U, am Mac Cmd+Option+U). Nimm nicht „Untersuchen“: Die Entwicklerwerkzeuge zeigen die Seite, nachdem die Skripte gelaufen sind. Suche im Quelltext nach einem Satz, den du auf der Seite lesen kannst.
  2. Die Seite mit curl abrufen. Führe im Terminal curl -sL https://beispiel.de/deine-seite | grep -io "ein kurzer Satz von deiner Seite" aus und nimm einen kurzen Ausdruck von deiner eigenen Seite. Wird er ausgegeben, steht er im HTML, es sei denn, er steht nur in einem script-Element; das zählt nicht. Kommt nichts, prüfe zuerst Schreibweise und Sonderzeichen; sonst steht er nicht im HTML.
  3. JavaScript abschalten. Öffne die Entwicklerwerkzeuge, rufe mit Strg+Umschalt+P (am Mac Cmd+Umschalt+P) das Befehlsmenü auf, tippe „JavaScript“, wähle „JavaScript deaktivieren“ (in der englischen Oberfläche „Disable JavaScript“) und lade die Seite neu. Ist der Haupttext weg, sieht ein Bot ohne JavaScript dasselbe.

So liest du das Ergebnis:

Was du siehstWas es bedeutet
Der Ausdruck steht im Quelltext und in der curl-AusgabeDer Text steckt im ausgelieferten HTML. Dieser Teil ist in Ordnung.
Der Ausdruck fehlt im Quelltext, ist aber im Browser zu sehenDie Seite entsteht im Browser. Bots, die Skripte überspringen, sehen keinen Text.

Zwei Grenzen: curl zeigt, was dein Server an curl schickt, nicht, was er an einen bestimmten Bot schickt, etwa wenn eine Firewall Bots anders behandelt. Und um zu sehen, was Google gerendert hat, nutzt du die URL-Prüfung der Google Search Console.

So behebst du es: den Inhalt ins HTML bringen

Ziel ist, dass Überschriften, Fließtext und interne Links im Quelltext stehen. Dafür gibt es zwei gängige Wege:

  • Serverseitiges Rendern (SSR). Der Server baut für jede Anfrage das fertige HTML.
  • Vorab-Rendern, auch statische Generierung (SSG) genannt. Die Seiten werden vorher erzeugt, zum Beispiel beim Bauen der Website, und der Server liefert nur noch die Dateien aus.

Beide bringen den Inhalt in die erste Antwort. Darüber hinaus gilt:

  • Fang bei den wichtigen Seiten an. Ein kompletter Umbau ist selten nötig. Beginne mit den Seiten, die ranken oder zitiert werden sollen.
  • Bring das Wesentliche ins erste HTML. Dazu gehören Title, Meta-Beschreibung, Canonical, Open-Graph-Angaben, der Haupttext und Navigationslinks als echte <a href>-Elemente.
  • Gib Crawlern und Besuchern denselben Inhalt. Google führt „Dynamic Rendering“, bei dem Bots eine vorgebaute Fassung bekommen, nur als Behelf. Crawlern etwas anderes zu zeigen als Besuchern ist Cloaking.
  • Prüfe das Ergebnis im Quelltext. Wiederhole nach der Änderung die drei Tests.

Nichts davon ist eine Garantie für Rankings. Du räumst ein technisches Hindernis weg, mehr nicht.

So erkennt SEOgrinder Seiten, die erst im Browser entstehen

SEOgrinder schaut auf das HTML, das dein Server ausliefert, nicht auf das, was ein Browser daraus macht. Gib eine Adresse ein, starte die Analyse, und die Aufgaben erscheinen im Reiter Aufgaben, nach Wirkung sortiert. Drei Befunde gehören zu diesem Thema:

  • „Die Seite wird erst im Browser gebaut“. Der Befund nennt, wie viele Wörter, Überschriften und interne Links im ausgelieferten HTML stehen, und vermerkt, dass Google solche Seiten zeitversetzt rendert und viele KI-Crawler eine fast leere Seite sehen.
  • „N Seiten werden erst im Browser gebaut“. Der Website-Durchlauf meldet, wie viele der durchsuchten Seiten eine fast leere HTML-Hülle liefern. Seiten mit noindex sowie Anmelde- und Registrierseiten zählen nicht mit.
  • Anmelde- oder Registrierseiten, die erst im Browser entstehen. Das ist meist in Ordnung, weil solche Seiten für Besucher auch ohne serverseitiges Rendern funktionieren. Soll eine ranken, rendere sie auf dem Server.

Nach einer Korrektur klickst du auf Neu prüfen: Berichte stehen 24 Stunden im Zwischenspeicher, und dieser Knopf erzwingt einen frischen Lauf (einige Male je Stunde). An KI übergeben macht aus dem Bericht einen Arbeitsauftrag in Markdown für einen Coding-Agenten wie Claude Code, Cursor oder GitHub Copilot, mit einer prüfbaren Zielbedingung je Fund.

Was SEOgrinder nicht tut: Es misst nicht, ob ChatGPT, Gemini oder Perplexity deine Marke tatsächlich nennen. Es prüft die technische Grundlage, also ob der Inhalt überhaupt lesbar ist.

Häufige Fehler

  • Mit „Untersuchen“ statt mit dem Seitenquelltext testen. Die Entwicklerwerkzeuge zeigen die Seite nach dem Ausführen der Skripte, und genau das bekommt ein Bot ohne JavaScript nicht.
  • Von Google auf alle Bots schließen. Google führt JavaScript aus, aber nach eigener Aussage können nicht alle Bots das.
  • Title und Meta-Angaben nur per Skript setzen. Google erlaubt das, aber ein Bot, der keine Skripte ausführt, sieht sie nie. Setze sie ins erste HTML.
  • Links, die nur Klick-Handler sind. Nimm echte <a href>-Links, damit ein Crawler ihnen ohne Skripte folgen kann.
  • Dynamic Rendering zum Dauerplan machen. Google nennt es einen Behelf.
  • Jede unbekannte Adresse mit der Hülle und Status 200 beantworten. Das tun clientseitig gerenderte Apps oft, und solche Seiten können als Soft-404 gewertet werden. Unser Artikel zu Soft-404-Fehlern erklärt die Lösung.
  • Bots in der robots.txt erlauben und an der Firewall abweisen. Der Text ist da, aber der Bot bekommt einen Fehler. Dafür hat SEOgrinder einen eigenen Befund: „KI-Crawler erlaubt, aber vom Server abgewiesen — prüfen“. Lies dazu auch unseren Artikel zur robots.txt für KI-Crawler.

Häufige Fragen

Sieht Google meine JavaScript-Seite?

Meist ja, aber später. Google führt JavaScript mit einem aktuellen Chromium aus, und Seiten mit Status 200 warten in einer Warteschlange auf das Rendern. Die Indexierung ist nie garantiert. Die URL-Prüfung der Google Search Console zeigt, was Googlebot sieht.

Reicht eine Sitemap?

Nein. Eine Sitemap sagt Crawlern, welche Adressen es gibt. Sie bringt keinen Text in das HTML dieser Seiten.

Führen ChatGPT und Claude JavaScript aus?

In der Messung von Vercel und MERJ von 2024 taten es die dort genannten Crawler von OpenAI und Anthropic nicht. Eine neuere Messung können wir nicht nennen. Teste also deine eigenen Seiten, statt dich auf die eine oder andere Antwort zu verlassen.

Muss ich meine ganze Website umbauen?

Nicht unbedingt. Serverseitiges Rendern oder Vorab-Rendern für die Seiten, die ranken oder zitiert werden sollen, ist der übliche erste Schritt. Interaktive Teile können im Browser bleiben.

Werde ich von KI-Assistenten genannt, wenn ich auf dem Server rendere?

Das kann niemand versprechen. Du stellst damit sicher, dass der Text überhaupt gelesen werden kann, und das ist die Voraussetzung für alles andere.

Dein nächster Schritt

Such dir eine wichtige Seite aus und mache die drei Tests. Fehlt der Text im Quelltext, starte den kostenlosen Scan in SEOgrinder und öffne den Reiter Aufgaben. Behebe die wichtigsten Seiten, indem du sie auf dem Server renderst oder vorab erzeugst, und klicke dann auf Neu prüfen.

Weitere Artikel