Strukturierte Daten: eindeutiger Kontext für Suchmaschinen
Strukturierte Daten beschreiben sichtbare Inhalte in einem standardisierten, maschinenlesbaren Format. Damit lassen sich etwa Artikel, Produkte, Organisationen, Breadcrumbs oder Events eindeutig kennzeichnen. Bei von Google unterstützten Typen kann korrektes Markup eine Seite für Rich Results qualifizieren; Darstellung, Ranking und ein Knowledge Panel werden dadurch nicht garantiert.
Für AI Overviews verlangt Google kein besonderes Schema. Strukturierte Daten sollten daher nicht als AI-Search-Cheat-Code eingesetzt werden, sondern den sichtbaren Seiteninhalt korrekt und aktuell abbilden.
Der häufigste Fehler ist nicht fehlendes Volumen, sondern unpassendes oder veraltetes Markup: ausgezeichnete Daten stimmen nicht mit dem sichtbaren Inhalt überein, erforderliche Felder fehlen oder mehrere Systeme erzeugen widersprüchliche Entitäten.
JSON-LD ist der Standard. Punkt.
Ja, Microdata existiert noch. RDFa auch. Aber ehrlich? Sie sind tot. Nicht offiziell. Aber praktisch.
Google selbst empfiehlt seit Jahren JSON-LD. Es ist leichter zu implementieren, weniger fehleranfällig und — das ist der Clou — lässt sich dynamisch über Google Tag Manager injizieren, ohne deine HTML-Struktur zu zerlegen.
Microdata sieht so aus:
<div itemscope itemtype="https://schema.org/Article">
<h1 itemprop="headline">Das beste Schema Markup Tutorial</h1>
<span itemprop="author">Max Mustermann</span>
</div>
Hässlich. Fehleranfällig. Und dein HTML ist polluted mit Schema-Attributen. JSON-LD?
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Das beste Schema Markup Tutorial",
"author": {
"@type": "Person",
"name": "Max Mustermann"
}
}
</script>
Sauberer. Wartbar. Kann man von aussen injizieren. Das ist die Zukunft.
Die wichtigsten Schema-Typen und ihre Implementierung
1. Article — Der Klassiker
Jeder Blog-Artikel braucht das. Keine Diskussion.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Wie man strukturierte Daten richtig nutzt",
"description": "Ein Komplett-Guide für Einsteiger und Profis",
"image": {
"@type": "ImageObject",
"url": "https://example.com/artikel-bild.jpg",
"width": 1200,
"height": 630
},
"datePublished": "2026-04-16",
"dateModified": "2026-04-16",
"author": {
"@type": "Person",
"name": "Max Mustermann"
},
"publisher": {
"@type": "Organization",
"name": "think11",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png",
"width": 600,
"height": 60
}
},
"articleBody": "Der vollständige Artikel-Text kann hier stehen...",
"wordCount": 2450,
"articleSection": "Technical SEO"
}
</script>
Was viele vergessen: Das dateModified Feld. Google nutzt das, um zu verstehen, ob dein Content aktuell ist. Wenn du einen Artikel vor drei Jahren geschrieben und nie aktualisiert hast, sollte dieses Feld alt bleiben. Aber wenn du ihn heute überarbeitest? Dann änderst du es — und signalisierst Google: “Hey, das ist frischer Content.”
2. Product — Für E-Commerce, die es ernst meinen
Wer ein Produkt ohne Schema Markup online verkauft, wirft Geld weg.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Premium Espresso-Maschine XL-2000",
"description": "Professionelle Espresso-Maschine mit integriertem Grinder",
"image": "https://example.com/espresso-maschine.jpg",
"brand": {
"@type": "Brand",
"name": "CoffeeMaster"
},
"sku": "CM-XL2000",
"gtin13": "4260123456789",
"offers": {
"@type": "Offer",
"url": "https://example.com/produkte/espresso-2000",
"priceCurrency": "EUR",
"price": "899.99",
"availability": "https://schema.org/InStock",
"priceValidUntil": "2026-12-31",
"itemCondition": "https://schema.org/NewCondition",
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": "0",
"currency": "EUR"
},
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": {
"@type": "QuantitativeValue",
"minValue": 0,
"maxValue": 1,
"unitCode": "DAY"
},
"transitTime": {
"@type": "QuantitativeValue",
"minValue": 1,
"maxValue": 3,
"unitCode": "DAY"
}
}
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": 342,
"bestRating": 5,
"worstRating": 1
},
"review": [
{
"@type": "Review",
"author": {"@type": "Person", "name": "Anna M."},
"datePublished": "2026-03-15",
"reviewBody": "Beste Espresso-Maschine in dieser Preisklasse.",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5"
}
}
]
}
</script>
Gegenüber dem Basis-Product-Schema haben wir hier sku, gtin13, shippingDetails, priceValidUntil und review ergänzt. Diese Properties können Google zusätzliche Produkt- und Angebotsinformationen liefern. Sie garantieren weder Versandkosten- noch Sterne-Darstellungen; alle Angaben müssen mit dem sichtbaren Angebot und echten Bewertungen übereinstimmen.
3. Event — Für Veranstaltungen, Webinare und Konferenzen
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Event",
"name": "SEO Deep-Dive Workshop 2026",
"description": "Ganztaegiger Workshop zu Technical SEO und AI Overviews",
"startDate": "2026-06-15T09:00:00+02:00",
"endDate": "2026-06-15T17:00:00+02:00",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"eventStatus": "https://schema.org/EventScheduled",
"location": {
"@type": "Place",
"name": "Think11 Office Berlin",
"address": {
"@type": "PostalAddress",
"streetAddress": "Unter den Linden 42",
"addressLocality": "Berlin",
"postalCode": "10117",
"addressCountry": "DE"
}
},
"organizer": {
"@type": "Organization",
"name": "think11",
"url": "https://think11.de"
},
"offers": {
"@type": "Offer",
"url": "https://think11.de/events/seo-workshop-2026",
"price": "490",
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock",
"validFrom": "2026-04-01"
},
"performer": {
"@type": "Person",
"name": "Max Mustermann"
}
}
</script>
Event-Schema kann eine aktuelle Veranstaltung für unterstützte Event-Darstellungen qualifizieren. Für Online-Events nutze OnlineEventAttendanceMode und ersetze den location-Typ durch VirtualLocation mit der URL des Streams. Abgelaufene oder abgesagte Termine müssen im sichtbaren Inhalt und Markup aktualisiert werden.
4. VideoObject — Für eingebettete Videos
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Structured Data in 10 Minuten erklärt",
"description": "Tutorial: JSON-LD Schema Markup für Einsteiger",
"thumbnailUrl": "https://example.com/video-thumb.jpg",
"uploadDate": "2026-03-20",
"duration": "PT10M30S",
"contentUrl": "https://example.com/videos/structured-data.mp4",
"embedUrl": "https://www.youtube.com/embed/abc123",
"interactionStatistic": {
"@type": "InteractionCounter",
"interactionType": {"@type": "WatchAction"},
"userInteractionCount": 15400
},
"hasPart": [
{
"@type": "Clip",
"name": "Was ist JSON-LD?",
"startOffset": 0,
"endOffset": 180,
"url": "https://example.com/video#t=0"
},
{
"@type": "Clip",
"name": "Implementierung Schritt für Schritt",
"startOffset": 180,
"endOffset": 420,
"url": "https://example.com/video#t=180"
}
]
}
</script>
Das hasPart-Property mit Clip-Einträgen beschreibt wichtige Zeitpunkte eines Videos. Google kann solche Angaben für Key Moments verwenden, sofern Video, Landingpage und technische Voraussetzungen passen; die Darstellung und eine CTR-Wirkung sind nicht garantiert.
5. LocalBusiness — Für alle mit physischen Standorten
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Think11 SEO Agentur Berlin",
"description": "SEO und Technical SEO Beratung für E-Commerce und Startups",
"url": "https://think11.de",
"image": "https://think11.de/agentur-foto.jpg",
"telephone": "+49 30 12345678",
"email": "info@think11.de",
"address": {
"@type": "PostalAddress",
"streetAddress": "Unter den Linden 42",
"addressLocality": "Berlin",
"postalCode": "10117",
"addressCountry": "DE"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 52.5170,
"longitude": 13.3888
},
"openingHoursSpecification": {
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "09:00",
"closes": "18:00"
},
"sameAs": [
"https://www.linkedin.com/company/think11",
"https://twitter.com/think11"
]
}
</script>
sameAs verweist auf offizielle Profile oder Referenzseiten derselben Entität. Das kann Widersprüche in Unternehmensdaten reduzieren, erzeugt aber nicht automatisch ein Knowledge Panel. Für Local SEO bleiben konsistente sichtbare Daten und ein gepflegtes Google Business Profile zentral.
6. HowTo — Für Tutorials und Anleitungen
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "Wie man Schema Markup mit GTM implementiert",
"description": "Schritt-fuer-Schritt Anleitung für Non-Devs",
"image": "https://example.com/howto-gtm.jpg",
"estimatedCost": {
"@type": "PriceSpecification",
"priceCurrency": "EUR",
"price": "0"
},
"totalTime": "PT30M",
"step": [
{
"@type": "HowToStep",
"position": 1,
"name": "Google Tag Manager Account aufrufen",
"text": "Gehe auf tagmanager.google.com und waehle deinen Container aus..."
},
{
"@type": "HowToStep",
"position": 2,
"name": "Neues Custom HTML Tag erstellen",
"text": "Klick auf Tags, dann Neu, dann Custom HTML..."
}
]
}
</script>
HowTo-Schema kann Abläufe semantisch beschreiben. Google zeigt für HowTo-Inhalte derzeit jedoch keine regulären HowTo-Rich-Results mehr; der Typ sollte daher nicht als CTR-Hebel implementiert werden.
7. Organization — Das Basis-Schema für jede Website
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "think11",
"url": "https://think11.de",
"logo": "https://think11.de/logo.png",
"description": "SEO und Growth Consulting",
"foundingDate": "2018",
"sameAs": [
"https://twitter.com/think11",
"https://linkedin.com/company/think11"
],
"contact": {
"@type": "ContactPoint",
"contactType": "Customer Service",
"telephone": "+49 30 12345678",
"email": "info@think11.de"
}
}
</script>
Das sollte auf jeder Domain genau einmal vorkommen. Auf der Homepage oder im Footer. Google nutzt das, um deine Brand-Entity zu etablieren.
Praxisbeispiel: Bei einem TYPO3-Audit eines Energieversorgers mit über 800 Seiten fehlte das Organization- und LocalBusiness-Schema vollständig — kein einziges Strukturdaten-Snippet für die Unternehmensidentität. Gleichzeitig war auch Open-Graph-Markup auf keiner einzigen Seite implementiert. Das bedeutet: Weder Google noch Social-Media-Plattformen konnten die Brand-Entity maschinenlesbar erfassen. Bei einer parallel untersuchten Next.js-Tourismus-Plattform fanden wir nur ein generisches Organization-Schema im Head, aber kein Product-, Offer-, AggregateRating-, FAQPage- oder TouristAttraction-Schema — obwohl die Plattform City Passes als Produkte verkauft.
8. BreadcrumbList — Navigation für Google und User
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://example.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "Glossar",
"item": "https://example.com/glossar"
},
{
"@type": "ListItem",
"position": 3,
"name": "Structured Data",
"item": "https://example.com/glossar/structured-data"
}
]
}
</script>
BreadcrumbList ist unterschätzt. Es hilft Google, deine Site-Hierarchie zu verstehen. Und es sieht in den SERPs verdammt gut aus.
9. FAQPage — Für Fragen-Antwort-Seiten
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Was ist Structured Data?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Strukturierte Daten sind maschinenlesbare Auszeichnungen im HTML-Code, die Suchmaschinen helfen, den Inhalt einer Seite besser zu verstehen."
}
},
{
"@type": "Question",
"name": "Welches Format empfiehlt Google?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Google empfiehlt JSON-LD. Es ist einfacher zu implementieren und weniger fehleranfaellig als Microdata oder RDFa."
}
}
]
}
</script>
Wichtig: Google hat FAQ-Rich-Results seit 2023 stark eingeschränkt. Sie werden regulär nur noch für bekannte Regierungs- und Gesundheitsseiten angezeigt. Für normale Unternehmensseiten ist FAQPage-Schema daher kein visueller SERP-Hebel. Für AI Overviews verlangt Google ebenfalls kein spezielles Markup; entscheidend bleiben zugängliche, hilfreiche Inhalte und die allgemeinen technischen Voraussetzungen der Suche.
Strukturierte Daten und AI Overviews
Google nennt für AI Overviews und AI Mode keine zusätzlichen technischen Anforderungen, speziellen Schema-Typen oder AI-Dateien. Eine Seite muss indexierbar sein, die üblichen Search-Anforderungen erfüllen und hilfreiche Inhalte sichtbar ausliefern. Strukturierte Daten bleiben sinnvoll, wenn sie genau diesen sichtbaren Inhalt korrekt beschreiben. Sie sind aber kein nachgewiesener Hebel für eine Aufnahme oder Zitation in AI Overviews. Den aktuellen Rahmen beschreibt Google unter AI features and your website.
Spezialisierte Typen wie ClaimReview oder Speakable sollten nur eingesetzt werden, wenn Website, Inhalt und Googles jeweilige Richtlinien tatsächlich dazu passen. Sie sind keine allgemeine Abkürzung für Expertise, Featured Snippets oder Voice Search.
Implementierungsansätze: Manual vs. Plugin vs. GTM
Die richtige Implementierungsmethode hängt von deinem Setup ab:
| Ansatz | Stärke | Schwäche | Empfehlung |
|---|---|---|---|
| Manuell im Template | Volle Kontrolle, präzise | Aufwändig, braucht Dev-Ressourcen | Für Custom-Themes und Headless |
| SEO-Plugin (Rank Math, Yoast) | Einfach, automatisiert | Begrenzte Schema-Typen, wenig Kontrolle | Für Standard-WordPress/Shopify |
| Google Tag Manager | Kein Template-Deployment nötig | Rendering-Abhängigkeit und getrennte Datenquelle | Nur als kontrollierte Übergangslösung |
| Hybrid (Plugin + manuell) | Best of Both Worlds | Konflikte möglich | Für mittelgrosse Sites mit spezifischen Anforderungen |
GTM-basierte Schema-Implementierung im Detail
GTM kann Schema nachträglich injizieren, ist aber nicht die bevorzugte Quelle für dauerhaftes Markup. Serverseitig beziehungsweise im Seitentemplate erzeugtes JSON-LD ist früher verfügbar und lässt sich enger an sichtbare CMS-Daten koppeln.
Warum das cool ist:
- Keine Deployment-Zyklen mehr
- Schnelle Iterationen möglich
- Zentrale Verwaltung
- Testing und Versionierung einfacher
Vorgehen:
- In GTM: Tags, dann neues Custom HTML Tag
- JSON-LD Code einfügen mit GTM-Variablen (z.B.
{{Page Title}},{{Page URL}}) - Trigger setzen (z.B. “All Pages” oder spezifisch)
- In “Workspace” testen (Vorschau-Modus)
- Publishen
Konkretes GTM-Template für dynamisches Article-Schema:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "{{Page Title}}",
"url": "{{Page URL}}",
"datePublished": "{{DL - Article Publish Date}}",
"dateModified": "{{DL - Article Modified Date}}",
"author": {
"@type": "Person",
"name": "{{DL - Author Name}}"
},
"publisher": {
"@type": "Organization",
"name": "think11",
"logo": {
"@type": "ImageObject",
"url": "https://think11.de/logo.png"
}
},
"image": "{{DL - Featured Image URL}}"
}
</script>
Die {{DL - ...}}-Variablen sind Data-Layer-Variablen, die du per dataLayer.push auf deiner Seite fuellst. So trennst du Daten von Markup.
Vorteil: Du kannst dynamisch mit GTM-Variablen arbeiten. Nachteil: Daten und sichtbarer Inhalt können leichter auseinanderlaufen. Für eine dauerhafte Lösung sollte das Markup in das verantwortliche Template überführt werden.
Nested Schema — Wenn es kompliziert wird
Das größte Problem, das wir sehen: Devs verstehen nicht, wie man Schema verschachtelt.
Beispiel: Ein Article, der über ein Produkt spricht, mit Author und Organization.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Warum die Espresso-Maschine XL-2000 die beste ist",
"author": {
"@type": "Person",
"name": "Max Mustermann"
},
"publisher": {
"@type": "Organization",
"name": "think11",
"logo": {
"@type": "ImageObject",
"url": "https://think11.de/logo.png"
}
},
"mentions": {
"@type": "Product",
"name": "Espresso-Maschine XL-2000",
"brand": {
"@type": "Brand",
"name": "CoffeeMaster"
},
"offers": {
"@type": "Offer",
"price": "899.99",
"priceCurrency": "EUR"
}
}
}
</script>
Das mentions-Property beschreibt, dass der Artikel dieses Produkt erwähnt. Es sollte nur verwendet werden, wenn die Beziehung im sichtbaren Inhalt tatsächlich nachvollziehbar ist.
Validierung und Debugging: Der vollständige Workflow
Die Validierung von strukturierten Daten braucht mehr als einen einzelnen Test. Hier der Workflow, den wir bei jedem SEO-Audit durchlaufen:
Schritt 1: Screaming Frog Crawl mit JSON-LD-Extraction
Starte einen Screaming Frog Crawl deiner gesamten Website. Unter Configuration > Custom > Extraction kannst du JSON-LD extrahieren. Das Tool crawlt alle Seiten und zeigt dir:
- Welche Seiten Schema haben und welche nicht
- Welche Schema-Typen verwendet werden
- Fehlende Required Properties
- Doppelte Schema-Instanzen
Exportiere die Daten und identifiziere Muster: Fehlt Schema auf bestimmten Template-Typen? Haben bestimmte Kategorien systematisch fehlende Properties?
Schritt 2: Schema.org Validator für Einzelseiten
Unter https://validator.schema.org prüfst du einzelne URLs auf Schema-Konformität. Der Validator zeigt dir alle Properties und warnt bei fehlenden oder falschen Werten. Das ist die Bibel für Schema-Validierung.
Schritt 3: Rich Results Test
Der Rich Results Test zeigt, ob Google unterstütztes Markup erkennt, welche Rich-Result-Typen grundsätzlich infrage kommen und welche Fehler oder Warnungen vorliegen.
Wenn keine Rich Results gefunden werden, kann das Markup trotzdem valides Schema.org sein, aber keinem von Google unterstützten Rich-Result-Typ entsprechen. Dafür ergänzt der Schema.org Validator die Prüfung.
Schritt 4: Google Search Console Enhancement Reports
Nach einigen Wochen zeigt Google dir in der Google Search Console, wie es deine Schema Markups nutzt:
Enhancementszeigt dir: Gültig, Fehler, Warnungen- Du siehst, wie oft Google deine Snippets ausgeliefert hat
Das ist deine Realtime-Metrik. Wenn hier “Fehler” steht, musst du handeln.
Schritt 5: Monitoring einrichten
Schema-Implementierungen können kaputtgehen: Plugin-Updates, Theme-Änderungen, CMS-Migrationen. Richte einen monatlichen Check ein:
- Screaming Frog Crawl mit Schema-Extraction
- Search Console Enhancement Report prufen
- Stichprobe: 5 URLs pro Template-Typ im Rich Results Test testen
Häufige Validierungsfehler und ihre Fixes
Typische Fehler aus technischen Audits sind:
| Fehler | Ursache | Fix |
|---|---|---|
Missing image in Article | Template hat kein Featured Image gesetzt | Fallback-Bild definieren, Pflichtfeld in CMS setzen |
Invalid datePublished Format | Falsches Datumsformat (z.B. “16. April 2026”) | ISO 8601 verwenden: “2026-04-16” |
@type Tippfehler | ”article” statt “Article” | Case-sensitive prüfen |
Relative URL in image | ”/bilder/foto.jpg” statt absolute URL | Immer absolute URLs verwenden |
Missing availability bei Product | Out-of-Stock Produkte ohne Status | Dynamisch InStock/OutOfStock setzen |
| Doppeltes Organization Schema | Plugin + manuelles Schema | Eines entfernen, Plugin-Schema deaktivieren |
Missing priceValidUntil | Angebotspreis ohne Ablaufdatum | Datum setzen oder Property entfernen |
Invalid aggregateRating | ratingValü ausserhalb von 1-5 | Werte normalisieren |
Missing author | Kein Autor angegeben | Mindestens Person oder Organization |
Broken sameAs Links | Social-Profile-URLs veraltet | URLs regelmäßig prüfen |
Die Fehlerquote allein sagt noch nichts über Ranking oder CTR. Entscheidend ist, ob das Markup einen relevanten unterstützten Seitentyp beschreibt, mit dem sichtbaren Inhalt übereinstimmt und nach Änderungen weiterhin aktuell bleibt.
Wer sich tiefer mit den Implikationen generativer Suche beschäftigen will, findet im Artikel zu Generative Engine Optimization die strategische Einordnung. Auch dort gilt: hilfreiche Inhalte, klare Entitäten und technische Zugänglichkeit sind belastbarer als ein spezieller Schema-Hack.
Checkliste: Structured Data für deine Website
- Organisation Schema auf Homepage (ein Mal)
- Article Schema auf jedem Blog-Post
- Product Schema mit
aggregateRating,offers,availability - LocalBusiness Schema wenn du physische Standorte hast
- BreadcrumbList für Site-Navigation
- HowTo nur zur semantischen Beschreibung, nicht in Erwartung eines Google-Rich-Results
- VideoObject Schema für eingebettete Videos
- Event Schema für Veranstaltungen und Webinare
- Alle URLs sind absolut (nicht relativ)
- Keine Required Properties fehlen
- Mit Schema.org Validator überprüft
- Unterstützte Typen im Rich Results Test fehlerfrei
- Search Console: Keine Fehler in Enhancement Reports
- Screaming Frog: Keine JSON-LD Warnungen
- Monatliches Monitoring eingerichtet
- Technisches SEO Audit schliesst Schema-Check ein
Das ist nicht kompliziert. Es ist nur oft übersehen. Nutze Screaming Frog mit der JSON-LD-Extraction, um deine gesamte Website auf fehlende oder fehlerhafte Schema-Implementierungen zu prüfen.
Fazit: Structured Data ist dort sinnvoll, wo es sichtbare Inhalte eindeutig beschreibt oder für einen unterstützten Rich-Result-Typ qualifiziert. JSON-LD ist dafür das von Google empfohlene Format. Implementiere nur passende Typen, validiere sie und halte sie gemeinsam mit dem Seiteninhalt aktuell.