Können ChatGPT und Claude meine JavaScript-Website sehen?
Nur den Text, der bereits im HTML steht, das Ihr Server ausliefert. Eine Studie vom Dezember 2024 über das Netzwerk von Vercel stellte fest, dass die Crawler von OpenAI, Anthropic und Perplexity JavaScript-Dateien herunterladen, aber nicht ausführen. Wenn Ihre Seiten im Browser aufgebaut werden, wie es bei vielen React- und KI-gebauten Websites der Fall ist, sieht diese Crawler eine fast leere Seite.
Fakten
- Vercel berichtete am 17. Dezember 2024, dass keiner der großen KI-Crawler, darunter GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot und PerplexityBot, JavaScript rendert. (Vercel: Der Aufstieg des KI-Crawlers (Dez. 2024))
- Dieselbe Studie fand, dass Gemini, das die Infrastruktur von Googlebot nutzt, und AppleBot JavaScript rendern. (Vercel: Der Aufstieg des KI-Crawlers (Dez. 2024))
- Im Netzwerk von Vercel holte der Crawler von ChatGPT in einem Monat in 11,50 % seiner Anfragen JavaScript-Dateien, der von Claude in 23,84 %, ohne sie auszuführen. (Vercel: Der Aufstieg des KI-Crawlers (Dez. 2024))
- OpenAI sagt, Websites, die sich gegen OAI-SearchBot entschieden haben, werden in ChatGPT-Suchantworten nicht gezeigt; die Seite, die dieser Crawler liest, ist also die, die ChatGPT zitieren kann. (OpenAI: Übersicht der OpenAI-Crawler)
- Im Next.js App Router sind Layouts und Seiten standardmäßig Server Components und werden auf dem Server zu HTML vorgerendert. (Next.js-Doku: Server- und Client-Komponenten)
Wie prüfe ich, ob KI-Crawler meine Website lesen können?
Rufen Sie eine Seite so ab, wie ein Crawler es tut, ohne Browser, und suchen Sie im Ergebnis nach ihrem Haupttext. Fehlen Preis, Überschrift oder Antwort, sehen KI-Crawler sie nicht.
# Was ein KI-Crawler erhält: das rohe HTML, ohne ausgeführtes JavaScript curl -s -A "GPTBot" https://www.example.com/pricing | grep -i "Ihr Preis oder Ihre Überschrift" # Nichts gefunden? Dann existiert der Text erst, nachdem JavaScript läuft.
Welche Arten von Websites haben dieses Problem?
Websites, deren Inhalt erst nach dem Laden im Browser per JavaScript entsteht:
- Single-Page-Apps mit React, Vue oder Angular und Vite ohne serverseitiges Rendern
- Websites, die von KI-App-Buildern erzeugt werden und eine clientseitig gerenderte App ausliefern
- Seiten, die ihren Text nach dem ersten Aufbau aus einer API laden
- Menüs und Links aus Klick-Handlern statt echter <a href>-Links
Was ist die Lösung für jede Konfiguration?
Die Lösung ist, den fertigen Text in der ersten HTML-Antwort auszuliefern.
| Konfiguration | Was Sie den Coding-Agent fragen |
|---|---|
| Next.js App Router | Seiten als Server Components belassen; nur interaktive Teile mit "use client" markieren |
| React oder Vue mit Vite | Öffentliche Seiten zur Build-Zeit als statisches HTML vorrendern oder zu einem Framework mit serverseitigem Rendern wechseln |
| Inhalt aus einer API | Auf dem Server oder zur Build-Zeit laden, nicht in useEffect |
| Jedes Framework | Echte <a href>-Links, eine sitemap.xml und der Text ohne Klicks sichtbar |
Hat Google dasselbe Problem?
Weniger: Der Crawler von Google führt JavaScript aus, daher können die Google-Suche und Gemini clientseitig gerenderten Text sehen, wenn auch später als einfaches HTML. ChatGPT, Claude und Perplexity lesen nur das rohe HTML.
Wie prüft easyIndex das?
easyIndex liest jede veröffentlichte Seite selbst, so wie ein KI-Crawler es tut, ohne JavaScript auszuführen. Eine Seite, die Ihr Coding-Agent baut, gilt nur als fertig, wenn der geprüfte Text im rohen HTML der Live-Website steht.
Schritt für Schritt
- Ihre zentralen Seiten testen. Führen Sie den curl-Test auf Startseite, Preisseite und den wichtigsten Leistungsseiten aus und suchen Sie nach ihrem Haupttext.
- Finden, wo der Text entsteht. Fragen Sie Ihren Coding-Agent, welche Seiten ihren Inhalt im Browser rendern und warum.
- Den Text auf den Server verlegen. Lassen Sie den Agent diese Seiten auf serverseitiges Rendern oder statisches Vorrendern umstellen und Interaktivität nur dort behalten, wo sie nötig ist.
- Links und Sitemap beheben. Machen Sie jeden internen Link zu einem echten <a href> und listen Sie jede öffentliche Seite in der sitemap.xml.
- Auf der Live-Website erneut testen. Wiederholen Sie den curl-Test nach dem Deployment; der Text muss im rohen HTML erscheinen.
Häufige Fehler
- Die Seite im Browser prüfen, der JavaScript ausführt, und annehmen, Crawler sähen dasselbe.
- Die Startseite serverseitig rendern, Preis- und Leistungsseiten aber clientseitig lassen.
- Beim Beheben des Renderings KI-Crawler versehentlich blockieren, in robots.txt oder im CDN.
- Für eine Prerender-Schicht zahlen, obwohl das Framework bereits auf dem Server rendert.
So löst easyIndex das
Ihr Coding-Agent behebt das Rendering in Ihrem Repository, angeleitet über MCP. easyIndex liest jede Seite live ohne JavaScript, so wie KI-Crawler es tun, und erfasst danach, welche Seiten KI-Crawler tatsächlich lesen. 30 US$ pro Website und Monat, mit 7 Tagen kostenloser Testphase.
Häufig gestellte Fragen
Ist eine Next.js-Website standardmäßig sicher?
Meistens: App-Router-Seiten werden standardmäßig serverseitig gerendert, doch Text, der in einer Client Component nach dem Laden abgerufen wird, bleibt für KI-Crawler unsichtbar.
Löst eine llms.txt-Datei das JavaScript-Problem?
Nein. Sie ist eine kurze Textdatei; die Seiten selbst brauchen den Text im HTML, damit Crawler sie lesen und zitieren können.
Werden KI-Crawler künftig JavaScript ausführen?
Das weiß niemand. Stand der Studie vom Dezember 2024 taten sie es nicht, und die sichere Wahl ist, den Text im HTML auszuliefern.
Betrifft das Besucher, die aus ChatGPT kommen?
Nein. Menschen öffnen Ihre Website in einem normalen Browser, der JavaScript ausführt; das Problem betrifft nur, was der Crawler liest, bevor er Sie zitiert.
Weiterlesen
- Wie funktioniert easyIndex, was brauche ich, und wie lange dauert es bis zu Ergebnissen?
- Was kostet easyIndex?
- Welche KI-Crawler gibt es, und wie lasse ich sie in der robots.txt zu?
- Funktioniert llms.txt?
- Wie mache ich GEO mit Claude Code oder Codex?
- Blockiert Cloudflare ChatGPT und andere KI-Crawler auf meiner Website?
Zuletzt geprüft am .