Gestructureerde gegevens helpen zoekmachines uw productpagina’s te begrijpen: wat het product is, wat het kost, of het op voorraad is en wat klanten ervan vinden. Met de juiste Product schema markup kunnen uw producten in aanmerking komen voor rijke resultaten zoals prijs, beschikbaarheid en beoordelingssterren, en voor verkopersvermeldingen in Google.
Deze gids biedt je kant-en-klare JSON-LD voorbeelden en legt de fouten uit die ik het vaakst zie.
Waarom JSON-LD?
Schema.org-markering kan worden geschreven als JSON-LD, Microdata of RDFa. Google raadt JSON-LD aan omdat het in een aparte <script> tag staat en niet mengt met je HTML, wat het gemakkelijker maakt om te onderhouden.
Basisproductvoorbeeld
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Trail Running Shoe X200",
"image": [
"https://www.example.com/images/x200-1.jpg",
"https://www.example.com/images/x200-2.jpg"
],
"description": "Lightweight trail running shoe with a grippy sole and waterproof upper.",
"sku": "X200-BLK-42",
"gtin13": "0123456789012",
"brand": {
"@type": "Brand",
"name": "ExampleBrand"
},
"offers": {
"@type": "Offer",
"url": "https://www.example.com/trail-running-shoe-x200",
"priceCurrency": "EUR",
"price": "129.95",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition"
}
}
</script>
Beoordelingen en beoordelingen toevoegen
Gebruik review markup alleen wanneer de beoordelingen echt en zichtbaar op de pagina zijn.
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": "87"
},
"review": [{
"@type": "Review",
"author": { "@type": "Person", "name": "Anna" },
"reviewRating": { "@type": "Rating", "ratingValue": "5" },
"reviewBody": "Great grip on wet rocks."
}]
Verzenddetails en retourbeleid
Voor verkoperslijsten kan Google verzend- en retourinformatie gebruiken. Voeg deze toe binnen de Offer:
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": { "@type": "MonetaryAmount", "value": "0", "currency": "EUR" },
"shippingDestination": { "@type": "DefinedRegion", "addressCountry": "NL" },
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 1, "unitCode": "DAY" },
"transitTime": { "@type": "QuantitativeValue", "minValue": 1, "maxValue": 2, "unitCode": "DAY" }
}
},
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "NL",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn"
}
Verzend- en retourbeleid kan ook op accountniveau in Google Merchant Center worden geconfigureerd, of met markup op organisatieniveau. Houd alle bronnen consistent.
Verkoopprijzen
Om een verkoop te tonen, gebruik de huidige verkoopprijs in price. Je kunt de oorspronkelijke prijs communiceren met een priceSpecification van het type UnitPriceSpecification en een priceType van https://schema.org/StrikethroughPrice. Zorg ervoor dat de prijzen overeenkomen met wat de bezoeker ziet.
Productvarianten
Voor producten met varianten (maat, kleur) ondersteunt Google ProductGroup met hasVariant en variesBy:
{
"@context": "https://schema.org",
"@type": "ProductGroup",
"name": "Trail Running Shoe X200",
"productGroupID": "X200",
"variesBy": ["https://schema.org/size", "https://schema.org/color"],
"hasVariant": [
{
"@type": "Product",
"sku": "X200-BLK-42",
"size": "42",
"color": "Black",
"offers": { "@type": "Offer", "price": "129.95", "priceCurrency": "EUR", "availability": "https://schema.org/InStock" }
},
{
"@type": "Product",
"sku": "X200-BLK-43",
"size": "43",
"color": "Black",
"offers": { "@type": "Offer", "price": "129.95", "priceCurrency": "EUR", "availability": "https://schema.org/OutOfStock" }
}
]
}
BreadcrumbList
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Shoes", "item": "https://www.example.com/shoes" },
{ "@type": "ListItem", "position": 2, "name": "Trail Running", "item": "https://www.example.com/shoes/trail-running" },
{ "@type": "ListItem", "position": 3, "name": "Trail Running Shoe X200" }
]
}
Organisatie (homepage)
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Example Store",
"url": "https://www.example.com",
"logo": "https://www.example.com/logo.png",
"sameAs": ["https://www.linkedin.com/company/example", "https://www.instagram.com/example"]
}
Veelvoorkomende fouten en hoe ze op te lossen
| Fout of waarschuwing | Oorzaak | Fix |
|---|---|---|
| Ontbrekend veld “offers”, “review” of “aggregateRating” | Product zonder een van deze | Voeg ten minste een Aanbieding toe |
| Ongeldig prijs of valuta | Prijs met valutasymbool of komma | Gebruik "129.95" en ISO-valuta "EUR" |
| Prijsverschil | De markupprijs verschilt van de zichtbare prijs | Genereer markup van dezelfde gegevens als de pagina |
| Dupliceren van productblokken | Thema en plugin/app genereren beide markup | Houd één complete bron. |
| Beoordelingen niet weergegeven | Beoordelingen niet zichtbaar op pagina, of zelfzuchtige markup | Markeer alleen echte, zichtbare beoordelingen |
| Beschikbaarheid onjuist | Gecachte markup na voorraadwijziging | Zorg ervoor dat de cache ongeldig wordt gemaakt bij voorraadupdates |
Hoe te testen
- Rich Results Test: controleert de geschiktheid voor Google rijke resultaten
- Schema Markup Validator (validator.schema.org): controleert de algemene Schema.org geldigheid
- Search Console verbeteringsrapporten: Productfragmenten en verkopersvermeldingen tonen fouten op de hele site
Platformnotities
- WooCommerce: WooCommerce en SEO-plugins genereren productmarkup; vermijd het gebruik van twee plugins die beide markup toevoegen.
- Shopify: de meeste thema’s bevatten productmarkup; beoordelingsapps voegen vaak een tweede blok toe (zie mijn Shopify SEO-checklist).
- Magento 2: Luma gebruikt Microdata; veel winkels schakelen over naar JSON-LD via een extensie of aangepaste sjablonen, wat een goed moment is om verzend- en retourgegevens toe te voegen.
Veelgestelde vragen
Verbetert gestructureerde data de rankings?
Niet direct. Het maakt pagina’s geschikt voor rijkere zoekresultaten, wat de doorklikratio kan verbeteren, en helpt zoekmachines en AI-systemen uw producten te begrijpen.
Kan ik beoordelingssterren aan elke pagina toevoegen?
Nee. Review markup mag alleen worden gebruikt voor echte beoordelingen over het specifieke product, zichtbaar op die pagina.
Heb ik GTIN’s nodig?
Niet altijd, maar het opnemen van GTIN, MPN en merk helpt Google om uw product te matchen en is belangrijk voor Merchant Center.
Heeft u gestructureerde gegevens nodig die werken?
Ik implementeer en repareer gestructureerde gegevens op WooCommerce, Shopify en Magento winkels, inclusief varianten, verzending en retouren. Bekijk mijn technische SEO-service of vraag een beoordeling aan.