JSON-LD für SEO

JSON-LD ist das skriptbasierte strukturierte Datenformat, das Google empfiehlt – am einfachsten zu implementieren, berührt nie sichtbares HTML und wird typischerweise mit schema.org für SEO kombiniert.

Erstveröffentlicht: 26. Juni 2026 · Zuletzt aktualisiert: 22. Aug. 2026 · Fortgeschritten
Sprachen
1 Evidenzsignal auf dieser Seite

JSON-LD (JavaScript-Objektnotation für verknüpfte Daten) ist ein strukturiertes Datenformat, das in einem <script type="application/ld+json">-Tag lebt; auf der SEO-Seite wird es typischerweise mit dem schema.org-Vokabular kombiniert, um Seiteninhalte zu beschreiben, obwohl JSON-LD selbst auch andere Vokabulare tragen kann. Es ist ein W3C-Standard (2014), und Google empfiehlt es gegenüber Microdata und RDFa aus einem Grund: Es ist das am einfachsten zu implementierende und wartbare Format in großem Maßstab, da es in einem eigenen Block sitzt und nie Ihr sichtbares HTML berührt. Alle drei Formate funktionieren bei korrekter Implementierung gleich gut. Die Syntax-Grundstruktur ist @context (das Vokabular – schema.org für die meisten SEO-Markups, aber nicht der einzige gültige Wert), @type (die Entität) und @id (eine nützliche, aber optionale stabile URI zur Verknüpfung von Entitäten – die Basis des @graph-Musters, das selbst eine gültige Möglichkeit zur Organisation mehrerer Entitäten ist, keine Anforderung). Der Punkt, den die meisten Anleitungen übersehen: Googlebot rendert JavaScript, sodass dynamisch injiziertes JSON-LD für Google funktioniert, aber mehrere KI-Crawler – einschließlich GPTBot und ClaudeBot, wie getestet – führen kein JavaScript aus; das ist anbieter- und datumspezifisch, keine universelle Regel. Überprüfen Sie daher direkt, wenn ein bestimmter Crawler für Sie wichtig ist, und serverseitig gerendertes Markup, das Sie nicht anderweitig bestätigen können. Strukturierte Daten sind kein Ranking-Signal; sie bestimmen die Berechtigung für Rich Results und das Verständnis von Entitäten und müssen Inhalte beschreiben, die tatsächlich auf der Seite sichtbar sind.

TL;DR — JSON-LD (JavaScript-Objektnotation für verknüpfte Daten) ist eine W3C-Empfehlung aus dem Jahr 2014 — basierend auf JSON, aber @context ist das, was es zu Linked Data macht, nicht nur JSON. Es ist das strukturierte Datenformat, das Google empfiehlt, weil es am einfachsten zu implementieren und in großem Maßstab zu pflegen ist und niemals sichtbares HTML berührt; Microdata und RDFa sind gleichermaßen gültig, wenn sie korrekt sind. Die Syntax-Grundlage ist @context (Vokabular — schema.org für die meisten SEO-Markups, obwohl die Spezifikation andere Kontexte zulässt), @type (Entität), @id (eine nützliche, aber optionale stabile URI zur Referenzierung von Entitäten — die Grundlage von @graph, selbst ein gültiges Muster unter anderen, keine Anforderung). Platzieren Sie es in <head> oder <body> — Google akzeptiert beides. Googlebot rendert JS, sodass dynamisch injiziertes JSON-LD für Google funktioniert; mehrere KI-Crawler (GPTBot, ClaudeBot inklusive, wie getestet) führen kein JS aus, aber das ist anbieter- und datumsabhängig — verifizieren Sie direkt, anstatt es für jeden KI-Crawler anzunehmen, und serverseitig zu rendern, was Sie nicht bestätigen können. Strukturierte Daten sind kein Ranking-Signal — sie steuern die Berechtigung für Rich Results und das Verständnis von Entitäten und müssen Inhalte beschreiben, die auf der Seite sichtbar sind.

JSON-LD ist ein Format, kein Vokabular

Zunächst eine Unterscheidung, die viel Verwirrung beseitigt: JSON-LD ist das Format; schema.org ist das Vokabular. JSON-LD ist wie Sie das Markup schreiben; schema.orgs Article, Product, Organization-Typen sind was Sie sagen. Rich Results sind die Feature-Ebene darüber. Diese Seite behandelt das Format. (Der Vokabular-für-KI-Aspekt findet sich in Schema Markup for AI.)

JSON-LD ist eine W3C-Empfehlung, erstmals veröffentlicht im Jahr 2014 — es geht seiner SEO-Übernahme voraus und wurde für die allgemeine Interoperabilität von Linked Data im gesamten Web entwickelt, nicht speziell für die Suche. Diese Geschichte erklärt, warum eine Eigenschaft wie @id überhaupt existiert, und es ist der spezifikationsbezogene Punkt, den die meisten SEO-Leitfäden überspringen: JSON-LD ist nicht nur JSON. Es basiert auf der JSON-Syntax, aber die @context-Deklaration macht die Daten verknüpft — identifizierbar und verbindbar über das gesamte Web. Entfernen Sie @context und Sie haben Daten, die ein Parser nicht interpretieren kann.

JSON-LD ist auch nicht an schema.org gebunden. Die Spezifikation erlaubt es, dass @context auf jedes veröffentlichte Vokabular verweist — seine eigenen Beispiele verlinken auf Nicht-schema.org-Kontexte —, also ist JSON-LD die richtige Antwort auf “welches Format”, während schema.org eine Antwort, die übliche für Such- und KI-Such-Markups, auf “welches Vokabular” ist. Eine Seite könnte gültig JSON-LD mit einem anderen Vokabular verwenden; es wäre dann nur kein schema.org-Markup mehr.

JSON-LD im Vergleich zu Microdata und RDFa

Es gibt drei Möglichkeiten, strukturierte Daten auszudrücken, und Google unterstützt alle:

JSON-LDMicrodataRDFa
Wo es lebtEin separater <script>-BlockInline-itemprop-Attribute in Ihrem HTMLInline-property-Attribute in Ihrem HTML
Berührt sichtbares HTML?NeinJaJa
Kann per JS / Tag-Manager injiziert werden?Ja (sauber)UmständlichUmständlich
Googles HaltungEmpfohlenUnterstütztUnterstützt
FehleranfälligkeitAm geringstenHöher (mit Markup verflochten)Höher (mit Markup verflochten)

Googles Empfehlung ist explizit, aber eng gefasst: “In general, Google recommends using JSON-LD for structured data if your site’s setup allows it, as it’s the easiest solution for website owners to implement and maintain at scale (in other words, less prone to user errors).” (Übersetzung) „Im Allgemeinen empfiehlt Google, JSON-LD für strukturierte Daten zu verwenden, wenn das Setup Ihrer Website dies zulässt, da es die einfachste Lösung für Website-Betreiber ist, um es in großem Maßstab zu implementieren und zu pflegen (mit anderen Worten, weniger anfällig für Benutzerfehler).“

Die Nuance, die Konkurrenten meist übersehen – und die es wert ist, beibehalten zu werden – stammt von derselben Google-Seite: “All 3 formats are equally fine for Google, as long as the markup is valid and properly implemented per the feature’s documentation.” (Übersetzung) „Alle 3 Formate sind für Google gleichermaßen in Ordnung, solange das Markup gültig und gemäß der Dokumentation der Funktion ordnungsgemäß implementiert ist.“ Die Empfehlung betrifft also die Implementierungsfreundlichkeit und die Fehlerrate, nicht die Parsing-Geschwindigkeit oder einen Ranking-Vorteil. Die Verwendung von Mikrodaten ist keine Strafe. JSON-LD gewinnt in der Praxis nur, weil es strukturierte Daten nicht mit dem Markup verknüpft, das ein Designer morgen bearbeiten könnte.

Die Syntax: @context, @type, @id, Eigenschaften, Verschachtelung

Hier ist ein kommentierter Article-Block:

<script type="application/ld+json">
{
  "@context": "https://schema.org",          // the vocabulary — the common value for SEO
  "@type": "Article",                          // the entity type
  "@id": "https://example.com/post#article",   // a stable URI for this entity
  "headline": "How JSON-LD Works",            // a property (key/value)
  "datePublished": "2026-06-26",
  "author": {                                  // a nested entity
    "@type": "Person",
    "name": "Patrick Stox",
    "url": "https://patrickstox.com/"
  }
}
</script>
  • @context – legt den semantischen Rahmen fest (das Vokabular). Für schema.org-SEO-Markup ist es typischerweise "https://schema.org", aber das ist eine Konvention, keine Regel: @context ordnet Begriffe Identifikatoren zu, und die Spezifikation erlaubt es, auf andere Vokabulare zu verweisen. Es teilt dem Parser mit, wie jeder folgende Eigenschaftsname zu interpretieren ist. Dies ist der Teil, der es zu verknüpften Daten macht.
  • @type – deklariert die Entität: Article, Product, Organization, BreadcrumbList usw. Es wird einem schema.org-Typ zugeordnet. Verwenden Sie den spezifischsten passenden TypNewsArticle statt Article, wenn es passt.
  • @id – eine eindeutige URI, die eine Ressource identifiziert. Über diesen Mechanismus können Sie eine Entität über eine andere referenzieren (siehe @graph unten), und es lohnt sich, ihn für alles zu setzen, das Sie querverweisen – aber er ist nicht universell erforderlich. Die JSON-LD-Spezifikation erlaubt nicht identifizierte Blank Nodes, sodass gültiges JSON-LD @id bei Entitäten weglassen kann, auf die Sie nie anderswo verweisen müssen.
  • Eigenschaften – gewöhnliche JSON-Schlüssel-Wert-Paare, die Vokabularbegriffe aus dem @context verwenden.
  • Verschachtelung – untergeordnete Entitäten werden als verschachtelte JSON-Objekte (das author-Objekt oben) oder als Arrays von Objekten ausgedrückt.

Das @graph-Muster (der skalierbare Ansatz)

Die meisten Seiten benötigen mehr als eine Entität: eine Organization, eine WebSite, eine BreadcrumbList und die Article- oder WebPage-Entität selbst. Der naive Ansatz sind vier separate <script>-Blöcke, die Daten wiederholen. Eine skalierbare Alternative ist ein einzelner Block mit @graph – ein Array von Entitäten, die über @id querverwiesen werden. Weder die JSON-LD-Spezifikation noch Google schreiben @graph als das Muster vor – es ist Syntax zum Ausdrücken eines Graphen, und andere gültige Layouts existieren (separate typisierte Blöcke, verschachtelte Objekte ohne ein Top-Level-@graph, Blank Nodes ohne @id) – aber auf einer Website mit mehreren querverwiesenen Entitäten ist es das Muster, das vermeidet, dieselben Organization- oder WebSite-Daten auf jeder Seite zu wiederholen:

Declare each entity once and connect the graph with stable `@id` references instead of repeating full objects. Quelle: Nested Schema

One Organization is referenced as publisher by the WebSite and Article. The WebPage belongs to the WebSite and is connected to the Article. Each entity is declared once, and the same stable ID string is reused for every reference.

© Patrick Stox LLC · CC BY 4.0 ·

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://example.com/#org",
      "name": "Example Co",
      "url": "https://example.com/"
    },
    {
      "@type": "WebSite",
      "@id": "https://example.com/#website",
      "url": "https://example.com/",
      "publisher": { "@id": "https://example.com/#org" }   // reference, not a copy
    },
    {
      "@type": "WebPage",
      "@id": "https://example.com/post#webpage",
      "isPartOf": { "@id": "https://example.com/#website" },
      "breadcrumb": { "@id": "https://example.com/post#breadcrumb" }
    }
  ]
}
</script>

Definieren Sie Organization einmal und verweisen Sie dann überall anders mit { "@id": "...#org" } darauf, anstatt Name, Logo und URL zu wiederholen. So bauen die Schema-Plugins der großen CMS ihre Ausgabe auf, und deshalb existiert @id. Bing argumentiert ähnlich für die Verschachtelung von JSON-LD: Es “makes defining links and relationships between data and entities… easy because it supports nested data.” (Übersetzung) „macht das Definieren von Links und Beziehungen zwischen Daten und Entitäten … einfach, weil es verschachtelte Daten unterstützt.“

Wo platzieren: <head> oder <body>

Google bestätigt, dass beides funktioniert“You can put the JSON-LD data in the <head> or the <body> of the page.” (Übersetzung) „Sie können die JSON-LD-Daten in den <head> oder den <body> der Seite setzen.“ <head> ist üblich, aber viele CMS-Plugins fügen es am Ende von <body> ein, und das ist in Ordnung. Bing stimmt zu, dass es “in the header, body or foot of the page” (Übersetzung) „im Kopf, Körper oder Fuß der Seite“ stehen kann. Verschwenden Sie keine Zeit damit, einen gültigen Block vom Body in den Head zu verschieben; es ändert nichts. Evidence for this claim Google permits JSON-LD in either the head or body of an HTML document for supported structured-data features. Scope: Google Search JSON-LD guidance; markup must still match visible page content. Confidence: high · Verified: Google: Structured data introduction

JSON-LD dynamisch generieren – und die KI-Crawler-Falle

Sie können JSON-LD mit JavaScript dynamisch erstellen, und Google dokumentiert zwei Möglichkeiten:

Evidence for this claim Dynamically generated structured data is acceptable to Google when it is rendered and complies with content and quality guidelines. Scope: Google Search JavaScript and structured-data guidance; crawlability and rendering remain prerequisites. Confidence: high · Verified: Google: Generate structured data with JavaScript
  1. Google Tag Manager — ein benutzerdefiniertes HTML-Tag mit dem JSON-LD und Werten aus GTM-Variablen zieht. (Vermeiden Sie doppelte Daten zwischen Seite und Tag.)
  2. Benutzerdefiniertes JavaScript — erstellen Sie das Skriptelement programmatisch:
    const script = document.createElement('script');
    script.setAttribute('type', 'application/ld+json');
    script.textContent = structuredDataText;
    document.head.appendChild(script);

Das funktioniert für Googlebot, weil Google die Seite rendert: “Google Search can understand and process structured data that’s available in the DOM when it renders the page.” (Übersetzung) „Google Search kann strukturierte Daten verstehen und verarbeiten, die beim Rendern der Seite im DOM verfügbar sind.“ So weit, so gut.

Hier ist der Punkt, den die meisten Anleitungen übersehen, vorsichtig formuliert. Mehrere KI-Crawler – einschließlich GPTBot und ClaudeBot, wie üblicherweise getestet – haben JavaScript nicht ausgeführt. Wenn Ihr JSON-LD erst nach der Ausführung eines clientseitigen Skripts existiert, sieht ein JS-überspringender Crawler es nie – es ist für diesen Bot unsichtbar, obwohl Googlebot es problemlos liest, weil Google dokumentiert, dass es das DOM rendert, bevor es nach strukturierten Daten sucht.

Zwei ehrliche Einschränkungen zu diesem KI-Crawler-Verhalten: Googles eigene Dokumentation legt die Googlebot-Seite fest; die KI-Crawler-Seite stammt aus Tests und Berichten einzelner Anbieter, nicht aus einer Spezifikation, die einer von ihnen veröffentlicht, also ist sie anbieter- und datumsabhängig – die JavaScript-Unterstützung eines Crawlers kann sich ändern, und ich habe nicht jeden Anbieter direkt verifiziert. Behandeln Sie „KI-Crawler überspringen JS“ nicht als universelle Regel, auf der Sie aufbauen; behandeln Sie es als Grund, den Crawler zu überprüfen, der Ihnen tatsächlich wichtig ist (oder standardmäßig Server-Rendering zu verwenden, wenn Sie nicht überprüfen können). Wenn es nicht im serverseitig gerenderten HTML ist und Sie nicht bestätigt haben, dass der Crawler JS ausführt, nehmen Sie an, dass er es nicht sehen kann. Für KI-Such-Sichtbarkeit rendern Sie JSON-LD serverseitig in das statische HTML, es sei denn, Sie haben etwas anderes verifiziert. (Dies ist das JavaScript-Rendering-Problem aus der Perspektive strukturierter Daten – siehe JavaScript-SEO.)

Es gibt eine zweite Einschränkung für E-Commerce: Google warnt, dass dynamisch generiertes Product-Markup “Shopping-Crawls weniger häufig und weniger zuverlässig machen kann,” was ein echtes Problem für sich schnell ändernde Preise und Verfügbarkeit darstellt. Für Produkte bevorzugen Sie serverseitiges Rendering, unabhängig von KI.

Die Richtlinien (die jetzt Zähne haben)

Googles Richtlinien für strukturierte Daten sind kurz und tragend:

  • “Markieren Sie keine Inhalte, die für Leser der Seite nicht sichtbar sind.”
  • “Markieren Sie keine irrelevanten oder irreführenden Inhalte, wie gefälschte Bewertungen.”
  • “Platzieren Sie die strukturierten Daten auf der Seite, die sie beschreiben.”
  • “Verwenden Sie die spezifischsten anwendbaren Typ- und Eigenschaftsnamen, die von schema.org definiert werden.”
  • Blockieren Sie Ihre Seiten mit strukturierten Daten nicht über robots.txt oder noindex für Googlebot.

Die Regel für sichtbare Inhalte ist die, die Sie verinnerlichen sollten. Schema, das Inhalte beschreibt, die nicht auf der Seite angezeigt werden, war schon immer ein Verstoß; die Durchsetzung von „unsichtbarem“ Schema wurde verschärft. Bing formuliert die Warnung unverblümt: “even though the markup is not visible on your page, it is still read by the search engines, and putting spam data in the markup can hamper your presence.” (Übersetzung) „Auch wenn das Markup auf Ihrer Seite nicht sichtbar ist, wird es von Suchmaschinen gelesen, und Spam-Daten im Markup können Ihre Präsenz beeinträchtigen.“

Häufige JSON-LD-Fehler

  • Markup, das nicht zur sichtbaren Seite passt – das Problem Nr. 1 (eine Bewertung im JSON-LD, die kein Besucher sieht).
  • Fehlerhaftes JSON – ein nachgestelltes Komma, ein nicht maskiertes Anführungszeichen oder Word-Smart-Quotes (" statt "), die den gesamten Block stillschweigend zerstören. JSON-LD ist streng.
  • Falsche Eigenschaftsnamen – Erfinden von Eigenschaften, die nicht in schema.org sind, oder Tippfehler bei echten, sodass der Parser sie ignoriert.
  • Ein generischer Typ, wo ein spezifischer existiertThing oder Article, wo Recipe oder NewsArticle angebracht war.
  • Doppelte, inkonsistente Organization-Blöcke auf Seiten mit widersprüchlichen Namen/Logos.
  • Fehlende erforderliche Eigenschaften für das angestrebte Rich Result (jede Funktion listet ihre eigenen Pflichtfelder).
  • JS-injiziertes Markup, das als für jeden Crawler sichtbar angenommen wird – Google rendert es, aber einige KI-Crawler haben das nicht getan, und das ist pro Crawler zu überprüfen (der obige Haken).

JSON-LD validieren

Vier verschiedene Fragen werden unter „Ist mein JSON-LD gültig?“ gestellt, und sie sind nicht dieselbe Frage – das Bestehen einer bedeutet nicht das Bestehen der anderen:

TestBeweistBeweist nicht
JSON parst (irgendein JSON-Linter oder der Parse-Schritt des Rich Results Tests)Die Syntax ist gültiges JSON – keine nachgestellten Kommas, nicht maskierte Anführungszeichen oder Smart-Quote-BrücheDass irgendein Eigenschaftsname echtes schema.org-Vokabular ist oder dass Google etwas anzeigt
Schema.org ValidatorDie Eigenschaften und Typen existieren im schema.org-VokabularDass Google den Typ als Rich Result unterstützt oder dass Pflichtfelder für eine bestimmte Funktion vorhanden sind
Rich Results TestDas Markup erfüllt Googles Anforderungen für einen spezifischen unterstützten Rich-Result-Typ auf der getesteten gerenderten SeiteDass Google das Rich Result tatsächlich anzeigt – Berechtigung ist keine Garantie – oder dass andere Such-/KI-Systeme es gleich parsen
Google Search Console – Verbesserungen / Rich-Result-BerichteWas Google tatsächlich auf live gecrawlten Seiten in großem Umfang mit echten Fehlern geparst hatEchtzeit-Zustand – Berichte hinken einem erneuten Crawl hinterher
  • Testen Sie per URL, nicht per eingefügtem Code, für JS-gerenderte Seiten. Der Code-Eingabemodus des Rich Results Tests führt Ihre Skripte nicht aus oder löst relative Referenzen nicht so auf wie der Live-URL-Test – er kann Ihnen nicht sagen, wie ein clientseitig injizierter Block nach dem Rendern aussieht.
  • Bing Webmaster Tools – Markup-Validator – Bing validiert JSON-LD seit August 2018.
  • Keiner dieser Tests spricht für Crawler, die kein JavaScript rendern (siehe den KI-Crawler-Hinweis oben) – das Testen der gerenderten URL bestätigt, was Google sieht, nicht was ein JS-überspringender Bot erhält.

Hilft JSON-LD bei SEO?

Setzen Sie die Erwartungen ehrlich:

  • Kein Ranking-Signal. John Mueller hat gesagt, dass strukturierte Daten eine Website nicht besser ranken lassen. Punkt.
  • Rich-Result-Berechtigung. Es macht Sie berechtigt für erweiterte SERP-Funktionen (Sterne, Preise, FAQs, Breadcrumbs) – Berechtigung, keine Garantie.
  • CTR, indirekt. Reichhaltiger aussehende Ergebnisse können mehr Klicks einbringen, das ist der eigentliche Nutzen für die meisten Websites.
  • Entity-Verständnis. Es hilft Suchmaschinen, Ihre Seite mit bekannten Entitäten und dem Knowledge Graph zu verbinden.
  • KI-Suche. Fabrice Canel (Bing) bestätigte 2025, dass Schema-Markup den LLMs von Microsoft hilft, Inhalte zu verstehen – aber beachten Sie den Hinweis zur kontrollierten Studie in Schema Markup for AI: Es ist Infrastruktur zur Disambiguierung, kein direkter Zitationshebel.

Also: Implementieren Sie JSON-LD für Rich-Result-Berechtigung, Entity-Klarheit und KI/LLM-Verständnis – nicht als Ranking-Hack.

Dieser Artikel befindet sich im Hub für strukturierte Daten. Für die KI-spezifische Betrachtung des schema.org-Vokabulars siehe Schema-Markup für KI; für die Render-Mechanik hinter dynamischer Injektion siehe JavaScript-SEO.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.