Schema.org structured data
Automatische strukturierte Daten JSON-LD (Schema.org) auf Produktseiten. Sie helfen Suchmaschinen, Rich Snippets in den Ergebnissen anzuzeigen.
Automatische Generierung
Abschnitt betitelt „Automatische Generierung“Strukturierte Daten werden auf Produktseiten automatisch generiert. Es ist nicht nötig, zusätzliche SEO-Plugins für strukturierte Produktdaten zu installieren - Polski for WooCommerce erledigt dies eigenständig.
Wenn Sie ein SEO-Plugin verwenden (Yoast, Rank Math, SEOPress), integriert sich Polski for WooCommerce damit und ergänzt die Daten, anstatt sie zu duplizieren.
Typ Product
Abschnitt betitelt „Typ Product“Auf jeder Produktseite wird ein Product-Objekt generiert, das Folgendes enthält:
{ "@context": "https://schema.org", "@type": "Product", "name": "Premium Cotton T-shirt", "description": "T-shirt made from certified organic cotton, sizes S-XXL.", "image": [ "https://yourstore.com/wp-content/uploads/tshirt-1.jpg", "https://yourstore.com/wp-content/uploads/tshirt-2.jpg" ], "sku": "TSH-001", "gtin13": "5901234123457", "brand": { "@type": "Brand", "name": "MyBrand" }, "manufacturer": { "@type": "Organization", "name": "Producer XYZ Sp. z o.o.", "address": { "@type": "PostalAddress", "streetAddress": "ul. Fabryczna 1", "addressLocality": "Warsaw", "postalCode": "00-001", "addressCountry": "PL" }, "url": "https://xyz.pl" }, "countryOfOrigin": { "@type": "Country", "name": "PL" }, "offers": { ... }, "aggregateRating": { ... }}Product-Felder
Abschnitt betitelt „Product-Felder“| Schema.org-Feld | Datenquelle | Erforderlich |
|---|---|---|
name |
WooCommerce-Produktname | Ja |
description |
Kurzbeschreibung des Produkts | Ja |
image |
Hauptbild + Galerie | Ja |
sku |
Produkt-SKU | Nein |
gtin13 / gtin8 |
GTIN/EAN-Feld aus Polski | Nein |
brand |
Hersteller/Marke aus Polski | Nein |
manufacturer |
GPSR-Herstellerdaten | Nein |
countryOfOrigin |
Ursprungsland aus GPSR | Nein |
category |
Produktkategorie | Nein |
material |
Attribut “material” (falls vorhanden) | Nein |
color |
Attribut “color” (falls vorhanden) | Nein |
weight |
WooCommerce-Produktgewicht | Nein |
Typ Offer
Abschnitt betitelt „Typ Offer“Jedes Produkt enthält ein verschachteltes Offer-Objekt mit Preis- und Verfügbarkeitsinformationen:
{ "@type": "Offer", "url": "https://yourstore.com/product/cotton-tshirt/", "price": "89.00", "priceCurrency": "PLN", "priceValidUntil": "2026-12-31", "availability": "https://schema.org/InStock", "itemCondition": "https://schema.org/NewCondition", "seller": { "@type": "Organization", "name": "My Store" }, "shippingDetails": { "@type": "OfferShippingDetails", "deliveryTime": { "@type": "ShippingDeliveryTime", "handlingTime": { "@type": "QuantitativeValue", "minValue": 1, "maxValue": 2, "unitCode": "d" }, "transitTime": { "@type": "QuantitativeValue", "minValue": 1, "maxValue": 3, "unitCode": "d" } }, "shippingDestination": { "@type": "DefinedRegion", "addressCountry": "PL" } }, "hasMerchantReturnPolicy": { "@type": "MerchantReturnPolicy", "merchantReturnDays": 14, "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", "returnMethod": "https://schema.org/ReturnByMail" }}Offer-Felder
Abschnitt betitelt „Offer-Felder“| Schema.org-Feld | Datenquelle |
|---|---|
price |
Produktpreis |
priceCurrency |
WooCommerce-Währung |
priceValidUntil |
Enddatum der Aktion |
availability |
Lagerstatus |
itemCondition |
Immer NewCondition |
seller |
Shop-Name aus den Einstellungen |
deliveryTime |
Lieferzeit aus Polski |
hasMerchantReturnPolicy |
Widerrufsrecht aus Polski |
Zuordnung der Verfügbarkeit
Abschnitt betitelt „Zuordnung der Verfügbarkeit“| WooCommerce-Status | Schema.org |
|---|---|
instock |
https://schema.org/InStock |
outofstock |
https://schema.org/OutOfStock |
onbackorder |
https://schema.org/BackOrder |
Typ Offer für variable Produkte
Abschnitt betitelt „Typ Offer für variable Produkte“Variable Produkte generieren ein AggregateOffer mit einer Preisspanne:
{ "@type": "AggregateOffer", "lowPrice": "69.00", "highPrice": "129.00", "priceCurrency": "PLN", "offerCount": 6, "availability": "https://schema.org/InStock", "offers": [ { "@type": "Offer", "price": "69.00", "sku": "TSH-001-S", "availability": "https://schema.org/InStock" } ]}Typ AggregateRating
Abschnitt betitelt „Typ AggregateRating“Wenn ein Produkt Bewertungen hat, wird ein AggregateRating-Objekt generiert:
{ "@type": "AggregateRating", "ratingValue": "4.5", "bestRating": "5", "worstRating": "1", "ratingCount": 23, "reviewCount": 18}Die Daten stammen aus dem WooCommerce-Bewertungssystem. Wenn das Modul Verifizierte Bewertungen aktiv ist, werden nur Bewertungen aus bestätigten Käufen berücksichtigt.
Typ Review
Abschnitt betitelt „Typ Review“Einzelne Bewertungen werden als Review-Objekte generiert:
{ "@type": "Review", "author": { "@type": "Person", "name": "Jan K." }, "datePublished": "2025-05-20", "reviewRating": { "@type": "Rating", "ratingValue": "5", "bestRating": "5" }, "reviewBody": "Excellent material quality, highly recommend."}Lebensmittelprodukte - NutritionInformation
Abschnitt betitelt „Lebensmittelprodukte - NutritionInformation“Für Produkte aus dem Lebensmittelmodul wird ein NutritionInformation-Objekt generiert:
{ "@type": "NutritionInformation", "calories": "250 kcal", "fatContent": "12 g", "saturatedFatContent": "3 g", "carbohydrateContent": "30 g", "sugarContent": "5 g", "proteinContent": "8 g", "sodiumContent": "0.8 g", "fiberContent": "2 g", "servingSize": "100 g"}Filtern der strukturierten Daten
Abschnitt betitelt „Filtern der strukturierten Daten“Änderung des gesamten Objekts
Abschnitt betitelt „Änderung des gesamten Objekts“add_filter('polski/schema/product', function (array $schema, WC_Product $product): array { // Add a custom field $schema['award'] = 'Product of the Year 2025'; return $schema;}, 10, 2);Änderung des Offer
Abschnitt betitelt „Änderung des Offer“add_filter('polski/schema/offer', function (array $offer, WC_Product $product): array { // Add warranty information $offer['warranty'] = [ '@type' => 'WarrantyPromise', 'durationOfWarranty' => [ '@type' => 'QuantitativeValue', 'value' => 24, 'unitCode' => 'MON', ], ]; return $offer;}, 10, 2);Deaktivieren von Schema.org für ausgewählte Produkte
Abschnitt betitelt „Deaktivieren von Schema.org für ausgewählte Produkte“add_filter('polski/schema/enabled', function (bool $enabled, int $product_id): bool { // Disable for products in the "temporary" category if (has_term('temporary', 'product_cat', $product_id)) { return false; } return $enabled;}, 10, 2);Validierung der strukturierten Daten
Abschnitt betitelt „Validierung der strukturierten Daten“Testen Sie die strukturierten Daten Ihres Shops mit:
- Google Rich Results Test - offizielles Google-Tool
- Schema.org Validator - Schema.org-Validator
Im WordPress-Debug-Modus (WP_DEBUG = true) protokolliert das Plugin Warnungen zu fehlenden erforderlichen Schema.org-Feldern in debug.log.
Integration mit SEO-Plugins
Abschnitt betitelt „Integration mit SEO-Plugins“Polski for WooCommerce erkennt gängige SEO-Plugins und passt sein Verhalten an:
| Plugin | Verhalten |
|---|---|
| Yoast SEO | Ergänzt das vorhandene Yoast-Schema um Polski-Felder |
| Rank Math | Ergänzt das Rank-Math-Schema um Polski-Felder |
| SEOPress | Ergänzt das SEOPress-Schema um Polski-Felder |
| Keines | Generiert das vollständige Schema eigenständig |
Im Konfliktfall (Duplizierung strukturierter Daten) verwenden Sie den Filter:
add_filter('polski/schema/standalone', '__return_false'); // Disable standalone generationFehlerbehebung
Abschnitt betitelt „Fehlerbehebung“Google zeigt keine Rich Snippets an - Rich Snippets können mehrere Wochen nach der Indexierung erscheinen. Stellen Sie sicher, dass die Daten die Validierung im Rich Results Test bestehen.
Duplizierung strukturierter Daten - wenn ein anderes Plugin ein Product-Schema generiert, verwenden Sie den Filter polski/schema/standalone, um die eigenständige Generierung zu deaktivieren.
Keine Bewertungen in Schema.org - das Produkt muss mindestens 1 Bewertung mit einer Sternebewertung haben.
Probleme melden: github.com/wppoland/polski/issues