Technisches SEO & GEO
Schema.org JSON-LD für E-Commerce: So zeichnen Sie Product, Offer, Varianten, Breadcrumbs und FAQs aus
Vollständiger JSON-LD-Leitfaden, damit Ihre Produktseiten bei Google mit Preis, Verfügbarkeit, Bewertung und Versand erscheinen und von der KI-Suche korrekt verstanden werden: Pflichtfelder, ProductGroup für Varianten, Versand- und Rückgabebedingungen, Shopify-Liquid-Beispiel und die häufigsten Fehler.
Kurz gesagt
Der richtige Weg zu strukturierten Daten im Onlineshop ist ein einziger JSON-LD-Block im <head> jeder Produktseite. Er enthält ein Product (Name, Bild, Beschreibung, Marke, SKU/GTIN) mit einem Offer darin (Preis, Währung, Verfügbarkeit, Versand- und Rückgabebedingungen) und bei echten Bewertungen ein AggregateRating. Für Produkte mit Varianten nutzen Sie die seit 2024 von Google unterstützte Struktur ProductGroup + hasVariant.
Neben den Produktblock gehört eine BreadcrumbList, einmal pro Website eine Organization oder ein OnlineStore. FAQ-Auszeichnung erzeugt bei Google für Shops keine Rich Results mehr, macht aber die Frage-Antwort-Struktur der Seite für die KI-Suche eindeutig. Alles mit dem Test für Rich-Suchergebnisse und den Berichten unter „Verbesserungen“ in der Search Console prüfen.
Warum strukturierte Daten im E-Commerce eine Umsatzfrage sind
Strukturierte Daten bedeuten, die Informationen Ihrer Seite (Produktname, Preis, Verfügbarkeit, Bewertung) maschinenlesbar nach dem Schema.org-Vokabular zu schreiben, damit Suchmaschinen und KI-Systeme sie eindeutig verstehen. Googles empfohlenes Format ist JSON-LD: ein einzelner, vom HTML unabhängiger Block <script type="application/ld+json">.
Korrekte Auszeichnung auf der Produktseite bringt drei konkrete Ergebnisse:
- Rich Results: Preis, Verfügbarkeit, Sternebewertung, Versandkosten und Lieferzeit erscheinen im Suchergebnis. Google dokumentiert höhere Klickraten für solche Ergebnisse; in der Fallstudie zu Rotten Tomatoes erzielten Seiten mit strukturierten Daten eine um 25 % höhere Klickrate.
- Shopping-Tab und Merchant Center: Die Auszeichnung als „Händlereintrag“ (merchant listing) bringt Ihre Produkte auch ohne Feed in die kostenlosen Einträge; mit Feed gleicht Google die Seitendaten damit ab.
- KI-Suche: Google AI Overviews, ChatGPT, Perplexity und Gemini versuchen beim Zitieren eines Produkts Preis, Bestand und Varianten aus dem sichtbaren Text zu extrahieren; JSON-LD nimmt die Mehrdeutigkeit heraus. Mehrere Branchenstudien berichten, dass Seiten mit strukturierten Daten in KI-Antworten häufiger zitiert werden.
Zwei getrennte Darstellungen bei Google: Produkt-Snippet und Händlereintrag
Seit 2022 trennt Google die Produktauszeichnung in zwei Darstellungen. Welche Sie anstreben, bestimmt die Pflichtfelder.
| Produkt-Snippet | Händlereintrag | |
|---|---|---|
| Für wen | Testseiten, Vergleichsseiten, Händler | Seiten, die das Produkt direkt verkaufen (mit Warenkorb-Button) |
| Pflicht | name plus mindestens eines von review, aggregateRating, offers | name, image, offers (mit price und priceCurrency) |
| Empfohlen | image, description, brand, sku, gtin | availability, shippingDetails, hasMerchantReturnPolicy, aggregateRating, ProductGroup für Varianten |
| Ausgabe | Bewertung, Preisspanne, Verfügbarkeit | Preis, Bestand, Versand, Rückgabe, Lieferzeit, Einträge im Shopping-Tab |
Für einen Onlineshop ist der Händlereintrag das Ziel. Die Regel ist einfach: Sie müssen das ausgezeichnete Produkt auf dieser Seite verkaufen; Preise fremder Händler als Offer auszuzeichnen, verstößt gegen die Richtlinien.
Vollständiges Product-+-Offer-Beispiel (mit Versand und Rückgabe)
Der folgende Block erfüllt für ein Produkt ohne Varianten alle Anforderungen von Google an Händlereinträge und Produkt-Snippets. Halten Sie jeden Wert identisch mit dem, was auf der Seite sichtbar ist; Google wertet die Auszeichnung unsichtbarer Daten als Spam.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"@id": "https://www.beispielshop.de/produkte/bio-pinienhonig-450g#product",
"name": "Bio-Pinienhonig 450 g",
"image": [
"https://cdn.beispielshop.de/pinienhonig-1x1.jpg",
"https://cdn.beispielshop.de/pinienhonig-4x3.jpg",
"https://cdn.beispielshop.de/pinienhonig-16x9.jpg"
],
"description": "Ungefilterter, nicht erhitzter Bio-Pinienhonig aus dem Hochland von Muğla. Glas, 450 g.",
"sku": "HON-PIN-450",
"gtin13": "8691234567890",
"brand": { "@type": "Brand", "name": "Beispiel Honig" },
"aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.8, "reviewCount": 127 },
"offers": {
"@type": "Offer",
"url": "https://www.beispielshop.de/produkte/bio-pinienhonig-450g",
"price": 24.90,
"priceCurrency": "EUR",
"priceValidUntil": "2026-12-31",
"itemCondition": "https://schema.org/NewCondition",
"availability": "https://schema.org/InStock",
"seller": { "@type": "Organization", "name": "Beispielshop" },
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": { "@type": "MonetaryAmount", "value": 0, "currency": "EUR" },
"shippingDestination": { "@type": "DefinedRegion", "addressCountry": "DE" },
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 1, "unitCode": "DAY" },
"transitTime": { "@type": "QuantitativeValue", "minValue": 1, "maxValue": 3, "unitCode": "DAY" }
}
},
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "DE",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 14,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn"
}
}
}
</script>
Drei Details sind entscheidend: price muss eine Zahl sein, kein Text (24.90, nicht "24,90 €"). Für image empfiehlt Google mindestens 50.000 Pixel in den Seitenverhältnissen 1:1, 4:3 und 16:9. availability-Werte müssen vollständige URLs sein: InStock, OutOfStock, PreOrder, BackOrder.
Produkte mit Varianten: ProductGroup und hasVariant
Der häufigste Fehler bei Größen- und Farbvarianten ist, eine Preisspanne in ein einzelnes Product zu quetschen. Seit 2024 unterstützt Google die Modellierung von Varianten mit ProductGroup: Die Gruppe trägt die gemeinsamen Felder, jede Variante ist ein eigenes Product mit eigener SKU, eigenem Preis und Bestand, und variesBy benennt das variierende Merkmal.
{
"@context": "https://schema.org",
"@type": "ProductGroup",
"name": "Basic T-Shirt aus Baumwolle",
"brand": { "@type": "Brand", "name": "Beispiel Textil" },
"productGroupID": "TSH-BASIC",
"variesBy": ["https://schema.org/size", "https://schema.org/color"],
"hasVariant": [
{
"@type": "Product", "sku": "TSH-BASIC-S-SCHW", "name": "Basic T-Shirt – S / Schwarz",
"size": "S", "color": "Schwarz", "image": "https://cdn.beispiel.de/tsh-schw.jpg",
"offers": { "@type": "Offer", "price": 19.00, "priceCurrency": "EUR",
"availability": "https://schema.org/InStock",
"url": "https://www.beispiel.de/produkte/basic-tshirt?variant=s-schwarz" }
},
{
"@type": "Product", "sku": "TSH-BASIC-M-SCHW", "name": "Basic T-Shirt – M / Schwarz",
"size": "M", "color": "Schwarz", "image": "https://cdn.beispiel.de/tsh-schw.jpg",
"offers": { "@type": "Offer", "price": 19.00, "priceCurrency": "EUR",
"availability": "https://schema.org/OutOfStock",
"url": "https://www.beispiel.de/produkte/basic-tshirt?variant=m-schwarz" }
}
]
}
Sind die Varianten-URLs parametrisierte Fassungen derselben Seite, sollte das canonical-Tag auf die Hauptproduktseite zeigen; Google muss nicht jede Varianten-URL einzeln indexieren.
Ergänzungen auf Seitenebene: BreadcrumbList, Organization/OnlineStore, WebPage
BreadcrumbList
Zeigt den Kategoriepfad im Suchergebnis als lesbaren Pfad statt als URL und verdeutlicht die Informationsarchitektur Ihrer Website. Auf jede Produkt- und Kategorieseite:
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Startseite", "item": "https://www.beispielshop.de/" },
{ "@type": "ListItem", "position": 2, "name": "Honig", "item": "https://www.beispielshop.de/honig/" },
{ "@type": "ListItem", "position": 3, "name": "Bio-Pinienhonig 450 g" }
]
}
Organization oder OnlineStore
Einmal pro Website, am besten auf der Startseite: Name, Logo, URL, Kontaktdaten und Social-Profile (sameAs). Google unterstützt es, die shopweite Rückgaberegelung einmalig beim Typ OnlineStore per hasMerchantReturnPolicy zu definieren, sodass sie nicht in jedem Offer wiederholt werden muss. Auch die Erkennung Ihrer Marke als Entität durch KI-Systeme beginnt mit diesem Block.
Ein verknüpfter @graph
Mehrere Typen in einem Block als @graph-Array ausgeben und per @id verknüpfen: Product → isPartOf WebPage → isPartOf WebSite → publisher Organization. Das verhindert, dass dieselbe Entität auf einer Seite zweimal definiert wird.
FAQ und HowTo: Der reale Stand 2026
Im August 2023 hat Google FAQPage-Rich-Results auf bekannte Behörden- und Gesundheitsseiten beschränkt und im September 2023 HowTo-Rich-Results vollständig entfernt. FAQ-Auszeichnung in einem Shop erzeugt im Suchergebnis keine aufklappbaren Fragen mehr.
Sie lohnt sich trotzdem, aus zwei Gründen: Google liest die Auszeichnung weiterhin, um die Seite zu verstehen, und die KI-Suche (AI Overviews, ChatGPT, Perplexity) zitiert bevorzugt Inhalte, die bereits als Frage und Antwort vorliegen. Regel: Fragen und Antworten müssen genau so sichtbar auf der Seite stehen, ohne versteckten Text.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "Kristallisiert Pinienhonig?",
"acceptedAnswer": { "@type": "Answer",
"text": "Nein. Dank seines niedrigen Glukoseanteils bleibt Pinienhonig bei Raumtemperatur jahrelang flüssig; Kristallisation deutet auf eine Mischung hin." }
}]
}
Bewertungen und Sterne: Wo erlaubt, wo nicht
- Ein aus echten Kundenbewertungen berechnetes
AggregateRatingauf der Produktseite ist erlaubt und für Händlereinträge empfohlen. - Bewertungen über das eigene Unternehmen (Organization, LocalBusiness), die Sie selbst geschrieben oder auf der eigenen Website gesammelt haben, gelten als „self-serving review“; Google ignoriert sie, und es droht eine manuelle Maßnahme.
- Die Anzahl der Bewertungen muss mit der sichtbaren übereinstimmen; ohne angegebene Skala gilt 1–5.
Umsetzung bei Shopify: Theme-Snippet und Konfliktprüfung
Die meisten Shopify-Themes (auch Dawn) geben auf Produktseiten ein einfaches Product-JSON-LD aus. Das Problem: SEO-Apps und Bewertungs-Apps fügen eigene Blöcke hinzu, also drei verschiedene Product-Definitionen auf einer Seite mit widersprüchlichen Preisen und Bewertungen. Zählen Sie zuerst im Quelltext, wie oft application/ld+json vorkommt; bei mehr als einmal nur eine Quelle behalten.
Um den Block des Themes zu erweitern, nutzen Sie in snippets/structured-data.liquid (oder der entsprechenden Datei Ihres Themes) Shopifys json-Filter; handgeschriebene Anführungszeichen erzeugen Escaping-Fehler:
{%- if request.page_type == 'product' -%}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": {{ product.title | json }},
"url": {{ shop.url | append: product.url | json }},
"image": {{ product.featured_image | image_url: width: 1200 | prepend: 'https:' | json }},
"description": {{ product.description | strip_html | truncate: 500 | json }},
"sku": {{ product.selected_or_first_available_variant.sku | json }},
"brand": { "@type": "Brand", "name": {{ product.vendor | json }} },
"offers": {
"@type": "Offer",
"price": {{ product.selected_or_first_available_variant.price | divided_by: 100.0 | json }},
"priceCurrency": {{ cart.currency.iso_code | json }},
"availability": "https://schema.org/{% if product.available %}InStock{% else %}OutOfStock{% endif %}",
"url": {{ shop.url | append: product.url | json }},
"itemCondition": "https://schema.org/NewCondition"
}
}
</script>
{%- endif -%}
Bei Varianten erzeugen Sie mit derselben Logik per Schleife über product.variants eine ProductGroup. Versand- und Rückgabebedingungen auf Shop-Ebene (Merchant Center oder OnlineStore) zu definieren, ist bei Shopify nachhaltiger als je Produkt.
Validierung und Monitoring
- Test für Rich-Suchergebnisse (search.google.com/test/rich-results): zeigt, für welche Rich Results Google die Seite geeignet hält und welche Felder fehlen. URL oder Codeausschnitt testen.
- Schema Markup Validator (validator.schema.org): Syntaxprüfung auf Vokabularebene, unabhängig von Google.
- Search Console → Verbesserungen → Produkt-Snippets / Händlereinträge: Verteilung gültiger, fehlerhafter und mit Warnungen versehener Produktseiten. Füllt sich 1 bis 2 Wochen nach dem Deployment; fehlerhafte URLs werden hier gelistet.
- Merchant Center → Produkte → Datenqualität: Abweichungen bei Preis und Bestand zwischen Feed und Seitenauszeichnung.
Die 8 häufigsten Fehler
| Fehler | Folge | Korrektur |
|---|---|---|
Preis als Text ("24,90 €") | Offer ungültig | Zahl plus separates priceCurrency |
| Mehrere Product-Blöcke auf einer Seite | Widersprüchliche Daten, Verlust der Rich Results | Eine Quelle behalten; App-Blöcke deaktivieren |
| Bewertung oder Preis auszeichnen, die nicht sichtbar sind | Verstoß gegen Spam-Richtlinien, manuelle Maßnahme | Nur sichtbare Daten auszeichnen |
| Product-Auszeichnung auf Kategorieseiten | Wird von Google ignoriert | ItemList für Kategorien, Product für Produkte |
| Varianten als Preisspanne in ein Product zwängen | Falscher Preis angezeigt | ProductGroup + hasVariant |
| Relative Bild-URLs | Bild kann nicht abgerufen werden | Absolute https://-URLs |
| Auszeichnung bei Ausverkauf entfernen | Seite fällt aus den Rich Results | availability: OutOfStock belassen |
| Unternehmensbewertung bei Organization auszeichnen | Self-serving review, wird ignoriert | Nur Produktbewertungen auszeichnen |
Strukturierte Daten wirken zusammen mit der technischen Gesundheit der Seite: Eine langsame Produktseite wird auch mit Rich Result nicht geklickt. Zur Geschwindigkeit siehe den Shopify-Core-Web-Vitals-Leitfaden, zur Conversion-Messung den Artikel zu GA4 Consent Mode v2 und Meta CAPI.
Das Wichtigste
- Format JSON-LD, Ort
<head>, ein Product-Block pro Produkt; doppelte Blöcke von Apps deaktivieren. - Verkaufende Seiten zielen auf Händlereinträge:
name,image,offers.priceundpriceCurrencysind Pflicht;availability, Versand und Rückgabe empfohlen. - Für Varianten
ProductGroup+hasVariant+variesBy; jede Variante bekommt ihr eigenes Offer statt einer Preisspanne. - FAQPage und HowTo erzeugen für Shops keine Rich Results mehr (2023), FAQ-Auszeichnung bleibt aber für die KI-Suche wertvoll; sie muss dem sichtbaren Text exakt entsprechen.
- Preis als Zahl, Bilder als absolute URLs in drei Seitenverhältnissen, Bewertungen nur aus echten Produktrezensionen.
- Vor dem Deployment mit dem Test für Rich-Suchergebnisse prüfen, danach mit den Berichten „Verbesserungen“ der Search Console und der Datenqualität im Merchant Center.
Häufige Fragen
Welche Schema.org-Typen sind in einem Onlineshop Pflicht?
Pflicht ist keiner; für Google-Rich-Results braucht die Produktseite Product mit einem Offer. Für Händlereinträge auf verkaufenden Seiten sind name, image, offers.price und priceCurrency erforderlich. Empfohlen werden Organization (oder OnlineStore) für die gesamte Website und BreadcrumbList auf jeder Seite.
JSON-LD oder Microdata?
JSON-LD. Google empfiehlt es ausdrücklich; da es vom HTML unabhängig ist, bricht es bei Theme-Änderungen nicht, lässt sich über Apps oder einen Tag Manager verwalten, und Typen können per @graph verknüpft werden. Microdata und RDFa werden weiterhin unterstützt, sind aber schwer zu pflegen.
Wie zeichne ich Produkte mit Varianten aus?
Mit dem Typ ProductGroup. Gemeinsame Felder (Name, Marke, Beschreibung) stehen in der Gruppe; jede Variante steht in hasVariant als Product mit eigener sku, size/color, eigenem Bild und Offer; variesBy nennt die variierenden Merkmale. Google unterstützt diese Struktur seit 2024 für Händlereinträge.
Lohnt sich FAQ-Schema 2026 noch?
Google zeigt für Shops keine aufklappbaren Fragen mehr im Suchergebnis; seit August 2023 ist diese Darstellung auf Behörden- und Gesundheitsseiten beschränkt. Die Auszeichnung hilft Google aber weiterhin beim Verstehen der Seite, und KI-Suchen wie AI Overviews, ChatGPT und Perplexity zitieren Frage-Antwort-Inhalte leichter. Es lohnt sich, solange die Fragen sichtbar auf der Seite stehen.
Mein Shopify-Theme gibt bereits JSON-LD aus. Muss ich eingreifen?
Prüfen Sie es. Dawn und seine Ableger erzeugen einen einfachen Product-Block, aber Versand, Rückgabe, GTIN und die Variantenstruktur fehlen. Wichtiger: SEO- und Bewertungs-Apps fügen eigene Blöcke hinzu; mehrere Product-Definitionen auf einer Seite führen zu Widersprüchen. Zählen Sie die Vorkommen von application/ld+json im Quelltext und behalten Sie eine einzige Quelle.
Helfen strukturierte Daten bei der Sichtbarkeit in der KI-Suche?
Ja, indirekt, aber konkret. Wenn KI-Systeme die Entitäten einer Seite (Produkt, Marke, Preis, Bestand) eindeutig identifizieren können, zitieren sie diese Seite mit mehr Vertrauen. Product-, Organization- und FAQPage-Auszeichnung wirkt am besten zusammen mit klaren Überschriften, sichtbaren Frage-Antwort-Blöcken und aktuellen Datumsangaben.
Soll ich die Auszeichnung bei ausverkauften Produkten entfernen?
Nein. Setzen Sie availability auf https://schema.org/OutOfStock und lassen Sie die Seite online. Das Entfernen der Auszeichnung setzt die Rich-Result-Historie der Seite zurück; wenn der Bestand zurückkehrt, müssten Sie auf eine Neubewertung warten.
Quellen
- Google Search Central – Strukturierte Daten für Produkte (Übersicht)
- Google Search Central – Strukturierte Daten für Händlereinträge
- Google Search Central – Produktvarianten (ProductGroup)
- Google Search Central – Breadcrumb
- Google Search Central – FAQPage und die Änderung 2023
- Google Search Central – Organization (OnlineStore, Rückgaberegelung)
- Google Search Central – Richtlinien für Bewertungs-Snippets (self-serving reviews)
- Google – Fallstudien zu strukturierten Daten (Rotten Tomatoes, 25 % CTR)
- Schema.org – Product
- Shopify.dev – json-Liquid-Filter