OpenAI-Crawler und JavaScript: Schema.org bei Next.js prüfen
KI-Symbolbild
Symbolbild, mit KI erstellt.
Laut Google Search Central führt Googlebot JavaScript mit einem headless, stets aktuellen Chromium aus, hält serverseitiges Rendern oder Pre-Rendering aber weiterhin für sinnvoll, weil nicht alle Bots JavaScript ausführen können (Stand 2026-03-04, https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics). Für deine Next.js- oder React-Seite heißt das: Was bei Google funktioniert, ist damit nicht automatisch für jeden anderen Crawler belegt.
Definition: OpenAI-Crawler und JavaScript beschreibt die Frage, ob Bots wie OAI-SearchBot und GPTBot Inhalte und strukturierte Daten erst sehen, nachdem Skripte im Browser gelaufen sind, oder bereits im ausgelieferten HTML. Bei Next.js- und React-Seiten entscheidet dieser Unterschied, ob Schema.org-Markup wie Organization, Article oder Product bei der KI ankommt.
Mythos 1: OpenAI-Crawler rendern JavaScript, also ist der Rendering-Modus egal
Gelegentlich heißt es, OpenAI-Crawler würden inzwischen JavaScript ausführen. Eine Quelle dafür kennen wir nicht, und in der offiziellen Dokumentation findest du dazu nichts. OpenAI beschreibt auf https://developers.openai.com/api/docs/bots den OAI-SearchBot als Crawler, der Websites in den Suchfunktionen von ChatGPT sichtbar macht, und den GPTBot als Crawler für Inhalte, die für das Training von Modellen genutzt werden können. Änderungen an der robots.txt brauchen laut OpenAI etwa 24 Stunden, bis die Systeme sie übernehmen. JavaScript-Rendering erwähnt die Seite nicht.
Die Dokumentation lässt die Frage damit offen. Ob diese Bots Skripte ausführen, ist öffentlich nicht belegt. Wer sein Markup nur im gerenderten DOM hat, verlässt sich auf eine Annahme, die in der Dokumentation nicht bestätigt ist.
Wir halten deshalb eine Absicherung für sinnvoll, die in beiden Fällen funktioniert: Die wichtigen Daten stehen bereits im ersten HTML-Dokument. Wie sich das Rendering-Thema allgemein verhält, beschreibt unser Beitrag zu JavaScript-Rendering für KI-Crawler.
Mythos 2: Googlebot-Verhalten lässt sich auf ChatGPT übertragen
Google dokumentiert sein Verhalten ausführlich. Googlebot reiht Seiten mit HTTP-Status 200 zum Rendern ein, so die Dokumentation unter https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics. Für strukturierte Daten schreibt Google Search Central (Stand 2025-12-10), dass die Suche Markup verarbeiten kann, das beim Rendern im DOM vorliegt. Dieselbe Seite warnt, dass dynamisch erzeugtes Markup die Shopping-Crawls seltener und weniger zuverlässig machen kann (https://developers.google.com/search/docs/guides/generate-structured-data-with-javascript).
Daraus ergibt sich zweierlei: Die Zusage gilt ausdrücklich für Googlebot, und selbst Google rät bei Product-Daten zur Vorsicht. Ein Shop auf React mit clientseitig eingefügtem Product-JSON-LD hat also schon bei Google ein dokumentiertes Risiko, bevor ein OpenAI-Crawler überhaupt ins Spiel kommt.
Mythos 3: Schema.org im Browser reicht, weil JSON-LD ja nur ein Skript ist
JSON-LD ist eines von drei Formaten, die Schema.org für die Auszeichnung vorsieht, neben Microdata und RDFa (https://schema.org/docs/gs.html). Das Format ist in der Praxis angenehm, weil es sich von der Darstellung trennen lässt. Genau deshalb kann es in React-Projekten leicht per Effekt oder Client-Komponente nachgeladen werden.
Ein Rechenbeispiel (hypothetisch): Angenommen, 200 Produktseiten erzeugen ihr Product-JSON-LD erst nach der Hydration im Browser. Ein Crawler ohne Skriptausführung sähe in diesem Szenario auf allen 200 Seiten ein HTML ohne Preis, Verfügbarkeit und Bewertung, obwohl das gerenderte DOM vollständig wäre.
Prüfen kannst du das in einer Minute. Rufe die URL mit curl ab und suche in der Rohantwort nach application/ld+json. Steht der Block dort, liegt er im ersten HTML. Fehlt er und taucht erst im Browser-Inspektor auf, entsteht er clientseitig. Mehr zum Formatvergleich steht in JSON-LD oder Microdata.
Mythos 4: Jeder Schema-Typ braucht denselben Aufwand
Die Typen unterscheiden sich im Ort, an dem sie im Template entstehen. Die folgende Tabelle ordnet sie nach dem Next.js-Muster, das für sie naheliegt.
| Schema-Typ | Sinnvoller Ort im Template | Prüfpunkt im Roh-HTML |
|---|---|---|
| Organization | Root-Layout, einmal je Seite | Name, URL, sameAs vorhanden |
| Article | Server-Komponente der Beitragsseite | Autor, Datum, Überschrift stimmen mit sichtbarem Text überein |
| Product | Server-Komponente der Produktseite | Preis und Verfügbarkeit stehen im ersten HTML |
| LocalBusiness | Kontakt- und Standortseiten | Adresse und Telefon entsprechen dem sichtbaren Text |
| BreadcrumbList | Layout oder Seitenkopf | Reihenfolge der Positionen passt zur URL-Struktur |
| FAQPage | Seite mit sichtbaren Fragen und Antworten | Jede Frage steht auch als Text auf der Seite |
Zu Breadcrumbs gibt es einen eigenen Beitrag zu BreadcrumbList Schema. Für den Gesamtüberblick helfen die Hinweise zu Schema.org Markup für KI.
Was geaio prüft und wo die Grenzen liegen
geaio berechnet SEO-, GEO-, Entity- und AI-Score regelbasiert auf Basis von 45 Regeln und gibt Findings samt Handlungsempfehlungen aus. Beim Schema-Markup prüft geaio die Validität von JSON-LD sowie Properties von Organization und LocalBusiness. Die Regelliste kannst du als registrierter Nutzer auf geaio.de/erklaert einsehen, Registrierung und Analyse sind kostenlos.
Aus unserer Sicht ist der Zustand deines ersten HTML-Dokuments wichtiger als die Frage, ob OpenAI-Crawler JavaScript rendern. Das ist eine eigene Bewertung: Was in der Rohantwort steht, kannst du selbst prüfen, während eine Zusage von OpenAI zum Rendering bisher nicht dokumentiert ist.
Die Prüfreihenfolge für Next.js und React vor dem nächsten Release
Gehe in dieser Reihenfolge vor, bevor du an Details feilst:
- Rohantwort mit
curlabrufen und nachapplication/ld+jsonsuchen. - Prüfen, ob die Werte im JSON-LD mit dem sichtbaren Seitentext übereinstimmen.
- JSON-LD in Server-Komponenten oder beim statischen Rendern erzeugen, nicht in Client-Effekten.
- In der robots.txt kontrollieren, ob OAI-SearchBot und GPTBot gewollt zugelassen oder gesperrt sind, und etwa 24 Stunden bis zur Übernahme einplanen (https://developers.openai.com/api/docs/bots).
Ob ein Rich Snippet erscheint, hängt zusätzlich von Googles eigenen Kriterien ab. Valides Markup ist Voraussetzung, kein Versprechen.
Häufig gestellte Fragen
Rendern OpenAI-Crawler JavaScript? Die offizielle Dokumentation von OpenAI unter https://developers.openai.com/api/docs/bots erwähnt JavaScript-Rendering nicht. Ob OAI-SearchBot oder GPTBot Skripte ausführen, ist damit öffentlich nicht belegt. Du solltest dich nicht darauf verlassen.
Reicht Schema.org-Markup, das erst im Browser entsteht? Google Search Central schreibt, dass die Suche Markup verarbeiten kann, das beim Rendern im DOM vorliegt, warnt aber bei dynamisch erzeugtem Product-Markup vor selteneren und weniger zuverlässigen Shopping-Crawls (Stand 2025-12-10). Für andere Crawler gibt es keine vergleichbare Zusage.
Wie prüfe ich, ob mein JSON-LD im ersten HTML steht?
Rufe die URL mit curl ab und suche in der Antwort nach application/ld+json. Findest du den Block dort, liegt er im ersten HTML. Erscheint er nur im Inspektor des Browsers, entsteht er clientseitig.
Welches Schema-Format soll ich bei React nutzen? Schema.org sieht Microdata, RDFa und JSON-LD vor (https://schema.org/docs/gs.html). In Next.js lässt sich JSON-LD sauber in Server-Komponenten erzeugen, deshalb bietet es sich dort an. Entscheidend ist, dass es im ersten HTML liegt.
Hinweis zur Erstellung
Dieser Beitrag und sein Titelbild wurden mit Unterstützung künstlicher Intelligenz erstellt und vor der Veröffentlichung redaktionell geprüft. Abgebildete Motive sind Symbolbilder. Die Analyse hinter dem geaio-Score arbeitet dagegen regelbasiert — dort ist kein KI-Modell im Spiel. Mehr dazu unter KI-Transparenz. Redaktionelle Freigabe: Jens Schöberling.