Schema.org JSON-LD: Strukturierte Daten für die Google-Suche

So wählen Sie strukturierte Daten aus, erstellen und validieren sie, damit sie zum sichtbaren Inhalt passen und für Rich-Suchergebnisse infrage kommen, ohne dass diese garantiert sind.

Schema.org-Daten sind ein Vokabular, mit dem Suchmaschinen den Inhalt einer Seite verstehen. Richtig umgesetzt, wird aus einem gewöhnlichen Snippet ein Rich-Suchergebnis – mit Sternebewertungen, Produktpreisen, Öffnungszeiten oder Fotos, die direkt in den Google-Suchergebnissen erscheinen.

Dieser Artikel behandelt das gesamte System: von der Wahl des richtigen Formats und der Priorisierung der Schemas bis zu konkretem JSON-LD-Code für Organization, Product, AggregateRating, Review und ImageObject. Besonderes Augenmerk gilt den Untertypen, die am häufigsten übersehen werden.

Der JSON-LD-Weg: Markup innerhalb von <script> → Google wertet die Struktur aus → Rich Snippet mit Bewertungssternen und Preis direkt in der SERP.
Google empfiehlt JSON-LD offiziell als bevorzugtes Format. Anders als Microdata und RDFa steht JSON-LD in einem <script>-Tag und wird nicht in das HTML-Markup eingebettet. Das erleichtert die Pflege und ermöglicht Änderungen unabhängig vom Layout.

Was ist Schema.org und wozu strukturierte Daten dienen

Schema.org ist ein gemeinsames Projekt von Google, Bing, Yahoo und Yandex, das 2011 gestartet wurde. Das Vokabular umfasst über 900 Datentypen und Tausende Eigenschaften. Alle Typen gehen auf den Basistyp Thing zurück und verzweigen sich in Person, Organization, Product, Event, CreativeWork, Action und weitere.

Sichtbar

Zum Seiteninhalt passend

Die Markup-Angaben müssen Informationen beschreiben, die Leser sehen und prüfen können.

Berechtigt

Funktionsregeln einhalten

Verwenden Sie einen unterstützten Typ und erfüllen Sie dessen Anforderungen an Inhalt und Technik.

Validieren

Graph testen

Prüfen Sie Syntax und Richtlinien und kontrollieren Sie danach die Seite nach dem Rendering.

Beobachten

Keine Anzeigegarantie

Ein bestandener Test garantiert nicht, dass ein Rich-Suchergebnis angezeigt wird.

Schema.org-Markup löst drei Probleme gleichzeitig. Für Suchmaschinen identifiziert es Entitäten eindeutig: Das ist eine Organisation und nicht nur Text mit einem Firmennamen, das ist ein Produktpreis und keine bloße Zahl. Für Nutzer machen Rich-Suchergebnisse das Snippet vor dem Klick informativer. Für das Unternehmen bedeuten sie eine höhere CTR und Präsenz im Knowledge Graph.

Formate: JSON-LD, Microdata, RDFa

Strukturierte Daten nach Schema.org lassen sich auf drei Wegen einbinden. Für neue Projekte ist die Wahl klar: JSON-LD. Die anderen beiden werden unterstützt, sind aber schwerer zu pflegen.

FormatSpeicherortKopplung an HTMLGoogle-Empfehlung
JSON-LD<script type="application/ld+json">-TagGetrennt vom HTMLBevorzugt
MicrodataAttribute itemscope, itemtype, itempropIn HTML-Elemente eingebettetUnterstützt
RDFaAttribute vocab, typeof, propertyIn HTML-Elemente eingebettetUnterstützt
JSON-LD ist für neue Projekte die klare Wahl: Der Code ist vom Layout getrennt, lässt sich leicht dynamisch erzeugen und ohne Eingriff in HTML-Templates aktualisieren. Microdata und RDFa werden von Google zwar unterstützt, doch jede Layoutänderung kann die Auszeichnung unbemerkt brechen.

Die JSON-LD-Grundstruktur ist auf jeder Seite gleich: ein <script>-Tag mit dem Typ application/ld+json, das ein JSON-Objekt mit den Pflichtfeldern @context und @type enthält. Das Tag kann im <head> oder am Ende des <body> stehen. Mehrere Schemas bedeuten mehrere eigenständige <script>-Blöcke.

html
<!-- Base JSON-LD template -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Site Name",
  "url": "https://example.com"
}
</script>

<!-- Multiple schemas — multiple <script> blocks -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Company",
  "url": "https://example.com"
}
</script>

Priorität der Schemas: Was Rich-Suchergebnisse in Google auslöst

Nicht jeder Schema.org-Typ führt zu einem Rich-Suchergebnis. Google unterstützt eine begrenzte Auswahl an Typen, die die Darstellung in der SERP visuell erweitern. Andere Schemas helfen Google, den Inhalt zu verstehen, verändern das Aussehen des Snippets aber nicht.

Unternehmen und Organisationen

LocalBusiness, Restaurant, Store – Öffnungszeiten, Adresse, Telefon und Bewertungen im Knowledge Panel. Höchste Priorität für lokale Unternehmen.

Produkte und Preise

Product + Offer – Preis, Verfügbarkeit und Bewertungen direkt im Snippet. Google Shopping und Rich Snippets. Unverzichtbar im E-Commerce.

Inhalte und FAQ

Article und andere unterstützte Typen sollten den sichtbaren Inhalt korrekt abbilden. FAQ-Inhalte bleiben für Leser nützlich, garantieren aber keine erweiterte Darstellung in den Suchergebnissen.

Bewertungen und Rezensionen

AggregateRating + Review – Sternebewertungen im Snippet. Das auffälligste visuelle Element. Funktioniert für Product, LocalBusiness, Recipe und Course.

Schema-TypRich-Suchergebnis in GooglePriorität
Product + OfferPreis, Verfügbarkeit, Bewertungen im Snippet; Shopping-KartenKritisch im E-Commerce
LocalBusiness + AggregateRatingKnowledge Panel, Map Pack, SterneKritisch für lokale Unternehmen
Article / NewsArticleKarussell „Top Stories“, VeröffentlichungsdatumHoch für Medien und Blogs
BreadcrumbListBreadcrumbs statt URL im SnippetHoch für jede Website
EventEvent-Karte mit Datum und OrtMittel für Event-Seiten
RecipeRezeptkarte mit Foto, Zeit, KalorienMittel für Kochseiten
Organization (nicht Local)Knowledge Graph, Logo in den ErgebnissenGrundlage für alle Websites

Organization – Basisschema und alle Untertypen

Organization ist der Basistyp für jedes Unternehmen, jede Organisation und jede Marke. Die Hierarchie der Untertypen ist breit, und jeder Untertyp ergänzt eigene Felder. Die Wahl des richtigen Untertyps ist wichtig: Google nutzt sie, um den geschäftlichen Kontext zu bestimmen und festzulegen, was im Knowledge Panel angezeigt wird.

TypFür wenWichtige Zusatzfelder
OrganizationJedes Unternehmen, jede NGO oder Marke ohne physische Adressename, url, logo, sameAs
LocalBusinessJedes Unternehmen mit physischer Adresseaddress, telephone, openingHours, geo
StoreEinzelhandelsgeschäftcurrenciesAccepted, paymentAccepted
FoodEstablishmentCafé oder Restaurant (Basistyp)servesCuisine, menu, hasMap
RestaurantRestaurantservesCuisine, menu, acceptsReservations
CafeOrCoffeeShopKaffeehausservesCuisine
FastFoodRestaurantFast FoodservesCuisine
MedicalOrganizationMedizinische Einrichtung (Basistyp)medicalSpecialty
HospitalKrankenhausavailableService, medicalSpecialty
MedicalClinicKlinikmedicalSpecialty, availableService
DentistZahnarztpraxisavailableService
LegalServiceAnwaltskanzlei–
LawyerRechtsanwalt oder Rechtsanwältin–
AccountingServiceBuchhaltung oder Wirtschaftsprüfung–
FinancialServiceBank, Versicherung, Finanzdienstleister–
RealEstateAgentImmobilienmakler–
AutomotiveBusinessAutohaus oder Autowerkstatt (Basistyp)–
AutoDealerAutohaus–
AutoRepairAutowerkstatt–
HotelHotelamenityFeature, checkinTime, checkoutTime
SportsActivityLocationSportstätte (Basistyp)availableService
GymOrHealthClubFitnessstudio–
GovernmentOrganizationÖffentliche Stelle–
EducationalOrganizationBildungseinrichtung (Basistyp)–
CollegeOrUniversityHochschule oder Universität–
SchoolSchule–
CorporationGroßkonzerntickerSymbol, legalName

Basis-Organization

Das Basisschema Organization wird auf der Startseite jeder Website ergänzt. Es hilft Google, die Marke zu erkennen, und verknüpft sie über sameAs mit externen Profilen. Das Feld @id mit einem eindeutigen Bezeichner erlaubt anderen Schemas, auf diese Organisation zu verweisen, ohne Daten zu duplizieren.

json
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://example.com/#organization",
  "name": "Company Name",
  "legalName": "Example LLC",
  "url": "https://example.com",
  "logo": {
    "@type": "ImageObject",
    "url": "https://example.com/logo.png",
    "width": 200,
    "height": 60
  },
  "description": "Brief company description for Knowledge Graph.",
  "foundingDate": "2015",
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "+1-800-123-4567",
    "contactType": "customer service",
    "availableLanguage": "English"
  },
  "sameAs": [
    "https://www.linkedin.com/company/yourcompany",
    "https://twitter.com/yourcompany",
    "https://www.facebook.com/yourcompany"
  ]
}

LocalBusiness – Unternehmen mit physischer Adresse

LocalBusiness ist der wichtigste Untertyp für Unternehmen mit einem physischen Standort. Ein korrekt ausgefülltes Schema verbessert die Chancen, im Google Map Pack (dem Kartenblock am Anfang der SERP) und in einem Knowledge Panel mit Öffnungszeiten zu erscheinen. Wichtige Felder: address, geo, openingHoursSpecification, telephone, priceRange.

json
{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "@id": "https://example.com/#business",
  "name": "The Birch Restaurant",
  "url": "https://example.com",
  "telephone": "+1-212-555-0100",
  "email": "info@example.com",
  "servesCuisine": ["American", "European"],
  "priceRange": "$$",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main Street",
    "addressLocality": "New York",
    "addressRegion": "NY",
    "postalCode": "10001",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 40.7128,
    "longitude": -74.0060
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "12:00",
      "closes": "23:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Saturday", "Sunday"],
      "opens": "12:00",
      "closes": "00:00"
    }
  ],
  "image": "https://example.com/photos/restaurant.jpg",
  "hasMap": "https://maps.google.com/?cid=XXXXXX"
}
Die Wochentage in openingHoursSpecification müssen auf Englisch und großgeschrieben angegeben werden: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday. Zeiten verwenden das 24-Stunden-Format HH:MM. Für rund um die Uhr geöffnete Betriebe gilt: opens mit „00:00“ und closes mit „23:59“.

sameAs – Verknüpfung mit externen Profilen

Das Feld sameAs teilt Google mit, dass Ihre Organisation mit den Profilen auf externen Plattformen identisch ist. Es ist das zentrale Feld für den Aufbau des Knowledge Graph, der Entitätsdatenbank von Google. Je mehr maßgebliche Quellen das Bestehen einer Organisation bestätigen, desto größer ist die Wahrscheinlichkeit, in einem Knowledge Panel zu erscheinen.

  • Wikidata (am maßgeblichsten): https://www.wikidata.org/wiki/Q...
  • Wikipedia: https://en.wikipedia.org/wiki/...
  • LinkedIn, Twitter/X, Facebook, Instagram
  • YouTube-Kanal der Organisation
  • Google-Unternehmensprofil (für lokale Unternehmen)
  • Branchenverzeichnisse, z. B. medizinische Register oder Anwaltskammern

Product – Produktschema und alle Untertypen

Product ist das Basisschema für jedes Produkt oder jeden Artikel. Es arbeitet mit Offer (Preis und Verfügbarkeit) und AggregateRating (Bewertung) zusammen. Ein korrekt umgesetztes Product-Schema erzeugt in Google ein Rich-Suchergebnis: Preis, Verfügbarkeit und Sternebewertungen direkt im Snippet.

TypAnwendungsfallHinweise
ProductBasisschema für jedes Produktname, image, description erforderlich
OfferKonkretes Angebot mit Preis und Verfügbarkeitprice, priceCurrency, availability erforderlich
AggregateOfferPreisspanne (mehrere Angebote)lowPrice, highPrice, offerCount
ProductGroupGruppe von Produkten mit VariantenvariesBy, hasVariant
IndividualProductKonkrete Variante innerhalb einer ProductGroupisVariantOf → ProductGroup
BrandProduktmarke (verschachtelt in Product)name erforderlich

Basis-Product mit Offer

Für ein Rich-Suchergebnis zu Produkten verlangt Google ein Mindestmaß an Feldern: name, image, description sowie ein verschachteltes Offer mit priceCurrency, price und availability. Fehlt eines davon, wird das Produkt-Snippet nicht angereichert.

json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Air X Pro Running Shoes",
  "description": "Lightweight running shoes with foam sole for road running. Weight 230g, drop 10mm.",
  "sku": "AIRX-001-BLK",
  "mpn": "AIRX001",
  "gtin13": "0123456789012",
  "brand": {
    "@type": "Brand",
    "name": "RunMax"
  },
  "image": [
    "https://example.com/photos/airx-front.jpg",
    "https://example.com/photos/airx-side.jpg",
    "https://example.com/photos/airx-back.jpg"
  ],
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/products/air-x-pro",
    "priceCurrency": "USD",
    "price": "89.99",
    "priceValidUntil": "2026-12-31",
    "itemCondition": "https://schema.org/NewCondition",
    "availability": "https://schema.org/InStock",
    "seller": {
      "@type": "Organization",
      "name": "RunMax Store"
    }
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "128"
  }
}
Die Werte für die Verfügbarkeit müssen dem Vokabular des jeweiligen Schema-Typs entsprechen. Halten Sie sich an die aktuelle Dokumentation zu dieser Funktion und prüfen Sie den vollständigen Wert im Kontext. Leiten Sie aus einem einzelnen Feld kein Ergebnis für das Rich-Suchergebnis ab.

AggregateOffer – Preisspanne

Wird ein Produkt von mehreren Verkäufern angeboten oder gibt es Varianten mit unterschiedlichen Preisen, verwenden Sie AggregateOffer. Es zeigt eine Preisspanne (lowPrice – highPrice) statt eines einzelnen Preises.

json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Galaxy S25 Smartphone",
  "brand": { "@type": "Brand", "name": "Samsung" },
  "image": "https://example.com/galaxy-s25.jpg",
  "offers": {
    "@type": "AggregateOffer",
    "priceCurrency": "USD",
    "lowPrice": "799",
    "highPrice": "1099",
    "offerCount": "3",
    "offers": [
      {
        "@type": "Offer",
        "name": "128 GB / Black",
        "price": "799",
        "priceCurrency": "USD",
        "availability": "https://schema.org/InStock"
      },
      {
        "@type": "Offer",
        "name": "256 GB / White",
        "price": "899",
        "priceCurrency": "USD",
        "availability": "https://schema.org/InStock"
      },
      {
        "@type": "Offer",
        "name": "512 GB / Violet",
        "price": "1099",
        "priceCurrency": "USD",
        "availability": "https://schema.org/PreOrder"
      }
    ]
  }
}

ProductGroup – Produkte mit Varianten

ProductGroup fasst verwandte Produkte zusammen, die sich in Parametern wie Größe, Farbe oder Material unterscheiden. Sie wird auf Produktseiten mit Varianten verwendet. Jede konkrete Variante ist ein verschachteltes Product, dessen isVariantOf auf die übergeordnete ProductGroup verweist.

json
{
  "@context": "https://schema.org",
  "@type": "ProductGroup",
  "name": "Air X Pro Running Shoes",
  "description": "Road running shoes available in multiple colours and sizes.",
  "url": "https://example.com/products/air-x-pro",
  "brand": { "@type": "Brand", "name": "RunMax" },
  "productGroupID": "AIRX-PRO",
  "variesBy": ["https://schema.org/color", "https://schema.org/size"],
  "hasVariant": [
    {
      "@type": "Product",
      "name": "Air X Pro — Black, US 9",
      "sku": "AIRX-BLK-9",
      "color": "Black",
      "size": "US 9",
      "offers": {
        "@type": "Offer",
        "price": "89.99",
        "priceCurrency": "USD",
        "availability": "https://schema.org/InStock"
      }
    },
    {
      "@type": "Product",
      "name": "Air X Pro — Blue, US 11",
      "sku": "AIRX-BLU-11",
      "color": "Blue",
      "size": "US 11",
      "offers": {
        "@type": "Offer",
        "price": "89.99",
        "priceCurrency": "USD",
        "availability": "https://schema.org/OutOfStock"
      }
    }
  ]
}
Für ein Product-Rich-Suchergebnis verlangt Google: name, image und ein verschachteltes Offer. Ohne Offer (Preis und Verfügbarkeit) wird das angereicherte Snippet nicht angezeigt. Zusätzlich verbessern brand, sku oder gtin13 die Chancen, in Google Shopping zu erscheinen.

AggregateRating und Review – Bewertungen und Rezensionen

Sternebewertungen in den Suchergebnissen sind das auffälligste Element im Snippet. Sie werden über zwei verwandte Typen umgesetzt: AggregateRating (die zusammengefasste Bewertung aus allen Stimmen) und Review (eine einzelne Rezension als Text). Beide Typen werden immer in ein übergeordnetes Schema eingebettet: Product, LocalBusiness, Recipe, Course, Book usw.

AggregateRating – Gesamtbewertung

AggregateRating gibt die Gesamtbewertung wieder: den Durchschnittswert und die Anzahl der Stimmen. Google stellt sie im Snippet als Sterne dar. Pflichtfelder sind ratingValue (Durchschnitt) sowie reviewCount oder ratingCount.

json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Air X Pro Running Shoes",
  "image": "https://example.com/airx.jpg",
  "offers": {
    "@type": "Offer",
    "price": "89.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "bestRating": "5",
    "worstRating": "1",
    "reviewCount": "128",
    "ratingCount": "215"
  }
}
ratingCount ist die Gesamtzahl aller Bewertungen, auch ohne Text. reviewCount ist die Anzahl der Rezensionen mit Text. Liegen nur Sternebewertungen ohne Text vor, verwenden Sie ratingCount. Liegen nur Textrezensionen vor, verwenden Sie reviewCount. Beide Felder dürfen gleichzeitig angegeben werden.

Review – einzelne Rezensionen

Review ist das Schema für eine einzelne Textrezension. Es wird über die Eigenschaft review in das übergeordnete Objekt eingebettet. Jede Review enthält einen Autor, eine Bewertung und den Rezensionstext. Google kann einen Ausschnitt des Rezensionstextes im Rich-Suchergebnis anzeigen.

json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Air X Pro Running Shoes",
  "image": "https://example.com/airx.jpg",
  "offers": {
    "@type": "Offer",
    "price": "89.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "128"
  },
  "review": [
    {
      "@type": "Review",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5",
        "bestRating": "5"
      },
      "name": "Great shoes for daily runs",
      "reviewBody": "Been running in them for 3 months — sole holds up well, feet don't tire. Recommend for road running.",
      "datePublished": "2026-03-15",
      "author": {
        "@type": "Person",
        "name": "Alex K."
      }
    },
    {
      "@type": "Review",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "4",
        "bestRating": "5"
      },
      "reviewBody": "Good cushioning, but runs a little small. Order half a size up.",
      "datePublished": "2026-04-01",
      "author": {
        "@type": "Person",
        "name": "Maria S."
      }
    }
  ]
}
Kritische Google-Anforderung: Rezensionen im Markup müssen echte Rezensionen echter Nutzer auf Ihrer Website sein. Verboten ist, nur Fünf-Sterne-Rezensionen zu zeigen, negative auszublenden oder von der Redaktion verfasste Rezensionen zu veröffentlichen. Verstöße führen zu einer manuellen Maßnahme und zum Verlust der Rich-Suchergebnisse.

ImageObject – Fotos in strukturierten Daten

Bilder lassen sich in Schema.org auf zwei Arten angeben: als URL-Zeichenkette ("image": "https://example.com/photo.jpg") oder als ImageObject mit Metadaten. Für die meisten Schemas reicht eine Zeichenkette. Für Article, Recipe und HowTo empfiehlt Google jedoch ImageObject, weil sich damit Abmessungen, Bildunterschrift und Format angeben lassen.

Schema-TypBildanforderungenMindestbreite
ProductMindestens ein Produktbild, bevorzugt auf weißem Hintergrund800 px empfohlen
Article / NewsArticleMindestens 3 Bilder: 16:9, 4:3, 1:11200 px
RecipeBild des fertigen Gerichts ist PflichtBeliebig; 1200×628 optimal
LocalBusinessFotos von Eingang, Innenraum und FassadeBeliebig
Organization (Logo)Rechteckig, weißer oder transparenter Hintergrundmindestens 112×112, Verhältnis bis 1×10
Beispiel für Schema.org-Bildmarkup in JSON-LD:
json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Air X Pro Running Shoes",
  "image": [
    {
      "@type": "ImageObject",
      "url": "https://example.com/airx-front.jpg",
      "width": 1200,
      "height": 1200,
      "caption": "Air X Pro — front view"
    },
    {
      "@type": "ImageObject",
      "url": "https://example.com/airx-side.jpg",
      "width": 1200,
      "height": 1200,
      "caption": "Air X Pro — side view"
    }
  ],
  "offers": {
    "@type": "Offer",
    "price": "89.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  }
}
Für Article verlangt Google mindestens ein Bild mit  1200 px Breite und einem Seitenverhältnis von 16:9, 4:3 oder 1:1. Stellen Sie alle drei Varianten bereit, dann wählt Google für jede Platzierung die passende aus. Bilder müssen crawlbar sein (nicht in der robots.txt gesperrt) und eine stabile URL haben.

Mehrere Schemas auf einer Seite kombinieren

Mehrere Schemas auf einer Seite werden als eigene <script>-Blöcke eingefügt. Hier ist das vollständige Markup einer Produktseite: die verkaufende Organisation, die Breadcrumbs sowie das Produkt mit Preis, Bewertung und Rezension.

html
<!-- Schema 1: Selling organisation (on all site pages) -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://example.com/#organization",
  "name": "RunMax Store",
  "url": "https://example.com",
  "logo": "https://example.com/logo.png"
}
</script>

<!-- Schema 2: Breadcrumbs -->
<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": "Footwear", "item": "https://example.com/shoes" },
    { "@type": "ListItem", "position": 3, "name": "Air X Pro" }
  ]
}
</script>

<!-- Schema 3: Product with price, rating and review (on product page) -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Air X Pro Running Shoes",
  "description": "Road running shoes.",
  "sku": "AIRX-001",
  "brand": { "@type": "Brand", "name": "RunMax" },
  "image": "https://example.com/airx.jpg",
  "offers": {
    "@type": "Offer",
    "price": "89.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "priceValidUntil": "2026-12-31",
    "seller": { "@id": "https://example.com/#organization" }
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "128",
    "bestRating": "5"
  },
  "review": {
    "@type": "Review",
    "reviewRating": { "@type": "Rating", "ratingValue": "5" },
    "author": { "@type": "Person", "name": "Alex K." },
    "reviewBody": "Excellent shoes, run in them every day.",
    "datePublished": "2026-04-10"
  }
}
</script>
Hinweis zu seller: { "@id": "https://example.com/#organization" } – ein Verweis auf die zuvor definierte Organisation über ihre @id. Dieses Vorgehen nennt man Graph-Verknüpfung: Google verbindet Entitäten zu einem einheitlichen Knowledge Graph, ohne Daten zu duplizieren.

Strukturierte Daten validieren

Validieren Sie das Markup nach der Umsetzung immer. Google stellt dafür zwei offizielle Tools bereit. Die Search Console zeigt zusätzlich, was der Crawler auf indexierten Seiten tatsächlich sieht.

Schritt 1Rich Results Test

Öffnen Sie search.google.com/test/rich-results und geben Sie eine URL oder HTML ein. Das Tool zeigt, welche Rich-Suchergebnisse für das Schema verfügbar sind, welche Felder Pflicht sind und welche falsch ausgefüllt wurden. Nur hier lässt sich bestätigen, ob das Markup tatsächlich eine visuelle Erweiterung in der SERP auslöst.

Schritt 2Schema Markup Validator

Öffnen Sie validator.schema.org für eine vollständige Prüfung gegen den Schema.org-Standard, nicht nur gegen die von Google unterstützten Typen. Das Tool prüft die Pflichteigenschaften jedes Typs und warnt vor unpassenden Kombinationen. Bei komplexen, verschachtelten Schemas ist es besonders nützlich.

Schritt 3Google Search Console

Search Console → Verbesserungen → Schema-Typ auswählen. Dieser Bereich zeigt echte Fehler auf indexierten Seiten. Fehler hier blockieren die Rich-Suchergebnisse auf den Live-URLs tatsächlich schon jetzt – das ist das aussagekräftigste Signal, mit dem Sie direkt arbeiten können.

Kurzprüfung: Stellen Sie sicher, dass JSON-LD in der HTML-Antwort des Servers enthalten ist und nicht erst per JavaScript eingefügt wird. Öffnen Sie DevTools → Netzwerk → die erste Anfrage → Vorschau und suchen Sie nach script type="application/ld+json". Fehlt der Block, sieht der Googlebot das Markup möglicherweise nicht.

Checkliste für strukturierte Daten

JSON-LD-Grundimplementierung

  • <script type="application/ld+json">-Tag im <head> oder am Ende des <body> eingefügt
  • Jeder Block enthält @context: „https://schema.org“ und @type
  • Alle Hauptentitäten haben eine eindeutige @id im Format URL mit Fragment (#name)
  • Das JSON ist gültig: keine nachgestellten Kommas, alle Anführungszeichen geschlossen
  • Das Markup ist in der HTML-Antwort des Servers vorhanden, nicht nur über JavaScript

Organization / LocalBusiness

  • Passender Untertyp gewählt (Restaurant, Dentist, AutoDealer usw.) statt pauschal Organization
  • Ausgefüllt: name, url, telephone, address (für LocalBusiness)
  • geo mit exakten Koordinaten (latitude, longitude) ergänzt
  • openingHoursSpecification mit englischen Wochentagen und Uhrzeiten im Format HH:MM ausgefüllt
  • sameAs-Links zu mindestens Social-Media-Profilen und Wikidata (falls vorhanden)

Product

  • Ausgefüllt: name, description, image (mindestens ein Bild)
  • Verschachteltes Offer mit: price, priceCurrency, availability, priceValidUntil
  • availability mit vollständiger URL: https://schema.org/InStock
  • sku und/oder gtin13 für Google Shopping angegeben
  • AggregateRating verschachtelt, wenn die Seite Nutzerbewertungen hat

Bewertungen und Rezensionen

  • AggregateRating enthält ratingValue, reviewCount, bestRating, worstRating
  • Die Werte von AggregateRating stimmen mit den echten Daten der Website überein
  • Review ist in das übergeordnete Objekt (Product oder LocalBusiness) eingebettet, nicht eigenständig
  • Jede Review hat author (Person), reviewRating, datePublished, reviewBody
  • Rezensionen im Markup stammen von echten Nutzern

FAQ

Beeinflusst Schema.org-Markup die Rankings bei Google direkt?
Strukturierte Daten helfen Google, für Rich-Suchergebnisse infrage kommende Seitenmerkmale zu verstehen. Google garantiert aber kein Rich-Suchergebnis und beschreibt Markup nicht als direkten Weg zu besseren Rankings. Nutzen Sie es, um sichtbare Fakten korrekt abzubilden.
Lassen sich strukturierte Daten über den Google Tag Manager einbinden?
Technisch ja: Der GTM kann ein <script>-Tag mit JSON-LD einfügen. Google bevorzugt Markup jedoch in der HTML-Antwort des Servers, nicht per JavaScript nachgeladen. Per GTM eingefügtes Markup wird beim Crawling möglicherweise nicht richtig erkannt, wenn Googlebot das JavaScript der Seite nicht ausführt. Am besten erzeugen Sie JSON-LD serverseitig.
Wie viele Rezensionen sollten in das Review-Markup aufgenommen werden?
Google nennt keine feste Zahl. In der Praxis gilt: Bei weniger als 10 Rezensionen nehmen Sie alle auf, bei Hunderten reichen 3 bis 5 aktuelle. Die Qualität zählt mehr als die Menge: Jede Review braucht Text, einen Autor und ein Datum. Zu wenige Rezensionen können dazu führen, dass Google keine Sterne im Snippet zeigt.
Warum erscheinen Rich-Suchergebnisse nicht, obwohl das Markup die Validierung besteht?
Dafür gibt es mehrere Gründe: (1) Google hat die Seite noch nicht erneut gecrawlt. Warten Sie 1 bis 4 Wochen oder fordern Sie eine erneute Indexierung an. (2) reviewCount ist zu niedrig. (3) Die Seite verstößt gegen die Richtlinien von Google, etwa weil Rezensionen manipuliert wirken. (4) Rich-Suchergebnisse für diesen Schema-Typ konkurrieren mit anderen SERP-Elementen. Prüfen Sie in der Search Console unter Verbesserungen.
Wie sollte der Preis bei einem internationalen Shop angegeben werden?
Verwenden Sie für jede Währung ein eigenes Offer oder mehrere Offers innerhalb von AggregateOffer. Das Feld priceCurrency verwendet ISO-4217-Codes wie USD, EUR, GBP oder JPY. Google zeigt den Preis des Landes bzw. der Sprache an, für die die Seite bestimmt ist. Achten Sie darauf, dass hreflang korrekt eingerichtet ist, damit jede Sprachversion Markup in der eigenen Währung sieht.

Check it with SpiderHead

Free and local: run the audit on your own machine.

Try it