Zum Inhalt springen
checkfrei
Menü

Inhalt ohne JavaScript: Warum KI-Crawler deine Seite leer sehen

Stand: 3. Oktober 2026 · CAZ Labs

Kurz gesagt

Die Crawler von ChatGPT, Claude und Perplexity lesen in der Regel nur das HTML, das dein Server ausliefert, und führen kein JavaScript aus. Lädt deine Seite ihren Text erst per Skript nach, sehen sie eine leere Hülle. Die Lösung: Der Text muss schon auf dem Server ins HTML, per Server-Side Rendering, statischer Generierung oder Prerendering.

Warum das wichtig ist

Ein Browser lädt zuerst das HTML, dann CSS und JavaScript. Bei vielen modernen Seiten baut erst das Skript den eigentlichen Inhalt zusammen. Für Menschen dauert das eine halbe Sekunde. Ein Crawler, der kein JavaScript ausführt, bleibt beim ersten Schritt stehen. Bei einer reinen Single-Page-App findet er dort oft nur ein leeres <div id="root"></div> und ein paar Skript-Verweise.

Die meisten KI-Crawler arbeiten genau so. Rendern kostet Rechenzeit, und wer sehr viele Seiten am Tag abruft, spart sich das. Googlebot ist die Ausnahme: Er führt JavaScript aus, aber in einem zweiten Schritt, der sich verzögern kann. Für Google ist eine JavaScript-Seite also ein Risiko mit Wartezeit, für KI-Suchen oft ein Totalausfall.

Das betrifft nicht nur aufwendig programmierte Projekte. Auch Texte in Tabs, Akkordeons oder Slidern, die erst beim Klick nachgeladen werden, fehlen im ausgelieferten HTML. Genauso Consent-Lösungen, die den Seiteninhalt erst nach der Zustimmung per Skript einfügen. Ein Crawler klickt nicht.

So prüfst du es selbst

Alternativ schaltest du JavaScript ab: In Chrome öffnest du die Entwicklertools mit F12, drückst Strg+Shift+P, tippst "JavaScript" und wählst "JavaScript deaktivieren". Dann lädst du die Seite neu. Was jetzt noch dasteht, sieht auch ein Crawler.

Achtung bei der Elementansicht der Entwicklertools: Sie zeigt das fertig gerenderte Dokument, nachdem alle Skripte gelaufen sind. Für diesen Test taugt sie nicht.

Im kostenlosen Check zählt checkfrei die Wörter im ausgelieferten HTML, bevor irgendein Skript läuft. Unter 150 Wörtern gibt es eine Warnung, unter 50 einen Fehler. Fällt eine Seite hier durch, obwohl sie im Browser voller Text ist, hast du genau das beschriebene Problem.

  1. Öffne deine Seite im Browser und drück Strg+U (am Mac Cmd+Option+U). Das zeigt den Quelltext so, wie der Server ihn schickt.
  2. Such mit Strg+F nach einem Satz aus der Mitte deiner Seite.
  3. Findest du ihn, ist alles gut. Findest du nur Skript-Verweise und leere Container, hat ein KI-Crawler nichts zu lesen.

So behebst du es

Die Wege unterscheiden sich vor allem im Aufwand. Server-Side Rendering baut das HTML bei jedem Aufruf auf dem Server. Statische Generierung baut es einmal beim Veröffentlichen. Für Firmenseiten, deren Inhalt sich selten ändert, ist das meist die beste Wahl. Prerendering ist die Notlösung für bestehende Single-Page-Apps: Ein Dienst rendert die Seiten vorab und liefert Crawlern die fertige Fassung. Das funktioniert, ist aber eine Baustelle mehr, die jemand warten muss.

Bei reinen React- oder Vue-Apps ohne Framework ist der saubere Weg ein Umzug auf ein Framework, das auf dem Server rendert: Next.js für React, Nuxt für Vue. Das ist Arbeit, aber danach steht der Text auch für Besucher schneller da.

WordPress

WordPress erzeugt das HTML auf dem Server, der Text steht also im Quelltext. Probleme machen einzelne Bausteine: Slider, Tabs oder "Mehr laden"-Knöpfe, die Inhalte nachholen, und manche Page-Builder-Widgets. Mach den Quelltext-Test für deine wichtigsten Seiten. Fehlt ein Abschnitt, ersetz das Widget durch einen normalen Block oder ein Akkordeon, das den Text im HTML vorhält.

Wix

Wix liefert den Grundtext einer Seite im HTML aus. Prüf trotzdem Elemente wie Tabs, Slideshows und eingebettete Apps, die ihren Inhalt teils erst im Browser laden.

HTML

Eine klassische HTML-Seite hat das Problem nicht, solange der Text im Dokument steht. Vorsicht bei Skripten, die Inhalte aus JSON-Dateien oder über eine Schnittstelle ins Dokument schreiben. Solche Texte gehören direkt ins HTML.

Next.js

Im App Router sind Komponenten standardmäßig Server Components, ihr Text landet im HTML. Auch Client Components mit "use client" werden vorgerendert. Zum Problem wird es, wenn Inhalte erst im Browser per fetch in einem useEffect geholt werden. Die fehlen im ausgelieferten HTML. Hol die Daten direkt in der Server Component, dann rendert Next.js sie auf dem Server oder beim Build.

tsx
// app/leistungen/page.tsx
// Server Component: Die Daten werden auf dem Server geholt,
// der Text steht im ausgelieferten HTML.
export default async function Leistungen() {
  const leistungen = await ladeLeistungen();
  return (
    <>
      <h1>Unsere Leistungen</h1>
      {leistungen.map((l) => (
        <section key={l.id}>
          <h2>{l.titel}</h2>
          <p>{l.text}</p>
        </section>
      ))}
    </>
  );
}

Typische Fehler

  • Nur die Startseite getestet. Unterseiten aus einer anderen Vorlage verhalten sich oft anders.
  • Wichtige Aussagen als Text im Bild. Im HTML steht dann nur ein Dateiname und bestenfalls ein Alternativtext.
  • Prerendering eingerichtet und nie wieder kontrolliert. Liefert der Dienst veraltete Fassungen, merkt das niemand, weil die Seite im Browser normal aussieht.

So prüft checkfrei

Wir zählen die Wörter im ausgelieferten HTML, bevor irgendein Skript läuft. Unter 50 Wörtern ist es ein Fehler, unter 150 eine Warnung.

Gewicht 3 von 3 im Bereich KI-Sichtbarkeit.

Häufige Fragen

Führt ChatGPT JavaScript aus?

Nach allem, was bekannt ist, rendern die Crawler von OpenAI in der Regel kein JavaScript. Darauf, dass sich das ändert, solltest du nicht warten. Text, der im HTML steht, liest jeder Crawler.

Reicht es, wenn Google meine Seite rendert?

Für die Google-Suche meistens schon, wenn auch mit Verzögerung. Für ChatGPT, Claude und Perplexity hilft dir das wenig, weil diese Dienste Seiten in der Regel selbst abrufen.

Ist WordPress davon betroffen?

Meist nicht, weil WordPress das HTML auf dem Server erzeugt. Ausnahmen sind einzelne Widgets, die Inhalte nachladen. Der Quelltext-Test zeigt dir in einer Minute, ob du betroffen bist.

Jetzt deine Seite prüfen

checkfrei prüft Inhalt ohne JavaScript und 68 weitere Punkte in einem Durchgang. Kostenlos und ohne Anmeldung.