Product schema in WooCommerce: zichtbaar worden in Google met rich snippets

Product schema in WooCommerce is de motor achter sterren, prijzen en voorraadinfo in Google. Hier lees je hoe je het foutloos opzet.

· 28 juni, 2026 · 9 min lezen
In het kort
  • Product schema WooCommerce levert de sterren, prijs en voorraad in Google; het komt uit een blok JSON-LD.
  • WooCommerce en plugins doen een deel; controleer of prijs, voorraad en reviews echt kloppen.
  • Valideer altijd met de Rich Results Test en houd Search Console in de gaten.
In dit artikel

Volgens Google ontvangt een SERP-resultaat met een goed rich snippet gemiddeld een aanzienlijk hogere doorklik dan een kale tekstlink. Voor productpagina’s gaat het dan om sterrenbeoordelingen, prijs, voorraad en levertijd direct in het zoekresultaat. Die extra signalen zijn geen design-trucje van Google; ze komen rechtstreeks uit een blok JSON-LD dat op je productpagina staat. Of dat blok klopt, bepaalt of jouw shop ze krijgt of niet.

WooCommerce zet niet automatisch alle benodigde schema goed neer. Veel themes en SEO-plugins doen een deel van het werk, maar laten gaten vallen. In de praktijk zie ik shops waarbij de prijs er wel in staat, maar de voorraad ontbreekt. Of waar twee plugins allebei een Product-schema renderen en met elkaar in de knoop liggen.

Dit artikel laat zien hoe je product schema in WooCommerce goed opzet. Welke velden Google verwacht, hoe je dat via Yoast of Rank Math regelt, wanneer je naar een eigen template moet, en hoe je controleert of het werkt.

Rich snippet preview voor WooCommerce productpagina via product schema vanuit een tuinterras werkplek

Product schema WooCommerce: wat het precies is

Schema.org is een gedeelde woordenlijst die Google, Bing en andere zoekmachines gebruiken om de inhoud van een pagina te begrijpen. Voor producten heet het type Product. Daarbinnen zit een Offer (prijs, voorraad, valuta), eventueel AggregateRating (gemiddelde sterren), Review (losse reviews) en velden zoals brand, sku, gtin13, image.

De aanbevolen vorm is JSON-LD: een blokje JavaScript-data dat in de <head> of <body> van je pagina staat. Google leest dat en bouwt er rich snippets mee in de SERP. De alternatieven (microdata, RDFa) werken nog, maar JSON-LD is de standaard en het makkelijkst te beheren.

Wat een productpagina minimaal nodig heeft voor rich snippets:

  • name (de producttitel)
  • image (een of meer URL’s naar productfoto’s)
  • description (productbeschrijving)
  • sku (artikelnummer, uniek per product)
  • brand (merknaam)
  • offers met price, priceCurrency, availability, priceValidUntil

Voor rich snippets met sterren komt daar aggregateRating of losse review-blokken bij, mits je echte reviews hebt. Verzonnen sterren is een handhavingsovertreding en kan je site uit de SERP gooien.

Product-schema preview

Zie je rich snippet groeien

Zet velden aan en uit. Je ziet wat elk stuk Product-schema in Google laat verschijnen.

Jouw Shop
jouwshop.nl › product

Linnen kinderjurk groen – NonaKids

Luchtige linnen jurk voor kinderen, gemaakt voor warme dagen en dagelijks gebruik.

€ 49,95 Op voorraad 4,6 van 5, 128 reviews Merk: NonaKids Morgen in huis

Snippet toont nu: titel, beschrijving en prijs.

Dit is een weergave-voorbeeld. Test je echte pagina met de Google Rich Results Test.

Schema-velden

Interactieve versie, zet JavaScript aan. Hieronder staat een volledig voorbeeld-snipppet.

Jouw Shop
jouwshop.nl › product

Linnen kinderjurk groen – NonaKids

Luchtige linnen jurk voor kinderen, gemaakt voor warme dagen en dagelijks gebruik.

★★★★☆ 4,6 van 5, 128 reviews € 49,95 Op voorraad Merk: NonaKids Morgen in huis
  1. Naam + beschrijving. Verplicht. Basis van het Product-schema.
  2. Prijs. Verplicht voor prijsweergave. Laat prijs direct in Google zien.
  3. Voorraad. Optioneel, maar aangeraden. Laat zien of het leverbaar is.
  4. Beoordeling. Optioneel. Alleen met echte reviews.
  5. Merk. Optioneel. Geeft extra context.
  6. Levertijd. Optioneel. Kan levertijd tonen.

Wat WooCommerce zelf al doet

WooCommerce voegt sinds versie 3.0 een basisset schema toe via microdata op productpagina’s. Productnaam, prijs, voorraad en SKU worden meestal opgepakt. Maar er zit een aantal addertjes onder.

Eerste probleem: microdata zit in de HTML zelf, ingebakken in de templates. Als je theme die templates overschrijft (en de meeste premium themes doen dat), kan de microdata kwijt zijn. Tweede probleem: WooCommerce levert geen brand, en zonder brand toont Google geen rich snippet voor producten. Dat veld moet je apart instellen, vaak via een attribuut of een SEO-plugin.

Derde probleem: als je een SEO-plugin gebruikt die ook Product-schema rendert via JSON-LD, krijg je twee schemas op dezelfde pagina. Niet altijd een drama, maar het kan wel conflicten geven. Google kiest dan zelf wat hij gelooft.

In de praktijk werk ik altijd met één duidelijke bron voor het Product-schema: ofwel de SEO-plugin (Yoast of Rank Math) als die volledig is, ofwel een eigen template als er custom-velden in moeten.

Opzetten via Yoast SEO

Yoast SEO heeft sinds versie 14 een uitgebreid schema-framework. De Premium-versie met WooCommerce-uitbreiding rendert automatisch een Product-schema, inclusief offers en aggregateRating als die data beschikbaar is.

Wat je moet instellen:

  1. Yoast SEO en Yoast WooCommerce SEO Premium installeren. De gratis Yoast SEO doet basis-schema, maar voor compleet product-schema heb je de WooCommerce-extensie nodig.
  2. Brand-veld koppelen. Onder Yoast > Zoekuiterlijk > Productpagina’s kies je welk product-attribuut als brand wordt uitgelezen. Heb je nog geen brand-attribuut, maak er dan eerst eentje aan in WooCommerce > Producten > Attributen.
  3. Identifier instellen. Voor producten met een EAN-barcode of GTIN kies je hier het juiste attribuut. Zonder geldig identifier-veld toont Google geen sterren, ook al heb je reviews.
  4. WooCommerce-schema uitzetten. Onder Yoast > Zoekuiterlijk > Algemeen schakel je het standaard WooCommerce-microdata-schema uit. Dat voorkomt dubbele schemas.

Na deze instellingen krijg je per product automatisch een JSON-LD blok in de pagina. Check een productpagina via Bekijk paginabron en zoek naar application/ld+json. Je moet één blok zien met @type: Product.

Opzetten via Rank Math

Rank Math heeft een ingebouwde WooCommerce-module en doet veel van wat Yoast Premium kost in de gratis versie. De stappen lijken op die van Yoast.

  1. Rank Math installeren en WooCommerce-module activeren. Onder Rank Math > Dashboard > Modules.
  2. Product-schema-instellingen openen. Onder Rank Math > Titles & Meta > Producten staan de schema-velden. Hier kies je per type product (eenvoudig, variabel, gegroepeerd) welke schema-template geldt.
  3. Brand en GTIN koppelen. Onder Rank Math > Producten kies je welk attribuut als brand en welk als gtin wordt uitgelezen.
  4. Standaard WooCommerce-microdata uitzetten. Rank Math doet dit vaak automatisch, maar het is goed te checken via Rank Math > Algemene Instellingen > WooCommerce.

Rank Math toont op de productpagina zelf een schema-preview in de WordPress-editor. Dat is handig om snel te zien wat er gerenderd wordt.

JSON-LD structured data code voor WooCommerce productpagina met @type, offers en aggregateRating velden

Handmatig: een eigen JSON-LD blok

Soms is een plugin niet de juiste keuze. Bijvoorbeeld omdat je veel custom-velden hebt die je in schema wilt meegeven, of omdat een plugin een veld weglaat dat je nodig hebt.

Een minimaal JSON-LD blok voor een WooCommerce-product ziet er zo uit:

json

{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "Stanley/Stella Creator T-shirt heren bio-katoen",
  "image": [
    "https://voorbeeldshop.nl/wp-content/uploads/creator-tshirt-1.jpg",
    "https://voorbeeldshop.nl/wp-content/uploads/creator-tshirt-2.jpg"
  ],
  "description": "Bio-katoen heren T-shirt met ruime fit, geschikt voor bedrukking en dagelijks dragen.",
  "sku": "SS-CREATOR-BLUE-L",
  "brand": {
    "@type": "Brand",
    "name": "Stanley/Stella"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://voorbeeldshop.nl/product/creator-tshirt-blauw-l/",
    "priceCurrency": "EUR",
    "price": "24.95",
    "priceValidUntil": "2026-12-31",
    "availability": "https://schema.org/InStock"
  }
}

Dit zet je in een functie in je theme’s functions.php, of beter: in een mu-plugin, zodat het overleeft bij theme-updates. De data haal je dynamisch uit het WooCommerce-product-object via wc_get_product($post->ID).

Handmatig schema is iets dat ik in mijn werk regelmatig bouw voor shops met afwijkende producten. Een voorbeeld: een shop die abonnementen verkoopt naast losse producten. Het standaard Product-schema past niet op een abonnement, daar wil je vaak een Service– of SubscriptionService-type.

Validatie via de Google Rich Results Test

Nadat je schema staat, controleer je het via de officiële Google Rich Results Test. Plak de URL van een productpagina, druk op Test URL en wacht een paar seconden.

Wat je wilt zien:

  • “Page is eligible for rich results”
  • Een lijst met gedetecteerde items, in elk geval Product met Offer
  • 0 errors, 0 warnings (warnings mag soms, errors niet)

Veelvoorkomende meldingen en wat ze betekenen:

Missing field “brand”. Je hebt geen brand-veld gekoppeld in je SEO-plugin, of het attribuut is leeg. Vul het in via WooCommerce of stel het in de SEO-plugin.

Missing field “priceValidUntil”. Dit is een waarschuwing, geen fout. Voor producten waarvan de prijs vast staat, mag dit veld leeg blijven. Voor aanbiedingen vul je een einddatum in.

Either “review” or “aggregateRating” should be specified. Dit is een waarschuwing. Voeg sterren toe via een review-plugin (WooCommerce-reviews ingeschakeld zorgt vaak al voor automatische aggregateRating), of negeer als je geen reviews wil tonen.

Multiple Product items detected. Je hebt twee schemas op dezelfde pagina. Zet er een uit.

Na een wijziging duurt het meestal een paar dagen tot een paar weken voor Google de nieuwe schema oppikt en rich snippets toont. Geduld is hier onderdeel van het werk.

Search Console: wat zie je daar terug?

Naast de Rich Results Test geeft Google Search Console terugkoppeling over het product-schema op je shop. Onder Verbeteringen > Producten zie je per pagina of er fouten of waarschuwingen zijn.

Wat ik in mijn werk vaak controleer:

  • Aantal geldige producten versus het aantal producten in de shop. Een groot verschil wijst op een schema-probleem dat niet alleen één pagina raakt.
  • Trend van fouten in de tijd. Een plotselinge piek na een plugin-update is een teken dat de update iets gebroken heeft.
  • Specifieke foutmeldingen zoals “Missing field offers”. Die geven direct aan wat er ontbreekt.

Search Console werkt vertraagd: een fix vandaag verschijnt soms pas over een week of twee in het rapport. Voor snelle controle blijft de Rich Results Test het primaire instrument.

Google Rich Results Test toont valid product schema voor WooCommerce met detected items en properties

Schema buiten WooCommerce

Hetzelfde mechanisme werkt op andere shops, alleen anders ingericht. Shopify rendert standaard al productschema, vaak inclusief brand en offer. Voor maatwerk-shops in Laravel of een custom HubSpot-template bouw je het JSON-LD blok in je template-laag, met de productdata uit je eigen database of API.

Wat hetzelfde blijft over alle systemen: je hebt minstens name, image, description, sku, brand en offers nodig. En je controleert het via de Rich Results Test. De rest is uitvoeringsverschil.

Voor de officiële documentatie over wat Google accepteert, zie de pagina van Google Search Central over product structured data. Die wordt regelmatig bijgewerkt; het is het enige document waar de definitieve lijst van verplichte en aanbevolen velden in staat.

Wanneer schema-werk uit handen geven

Productschema is niet ingewikkeld als je shop standaard is en je SEO-plugin alles ondersteunt. Het wordt lastig wanneer:

  • Je twee of meer schema-bronnen tegelijk draait die met elkaar botsen
  • Je producten variabelen of abonnementen hebt die niet in het standaard Product-type passen
  • Je custom-velden via ACF gebruikt die niet door je SEO-plugin worden uitgelezen
  • Je Rich Results Test errors geeft die je niet kunt thuisbrengen

In die gevallen helpt het om iemand te laten meekijken die regelmatig met JSON-LD werkt en die je theme en plugin-stack kan lezen. Schema-fouten zijn vaak een uurtje werk om op te lossen, maar je moet weten waar je moet kijken.

Meer over de basis van productpagina-optimalisatie staat in mijn artikel over productpagina SEO voor WooCommerce. Voor andere webshop-onderwerpen zie de categorie webshop optimalisatie.

Serhii Lypii
Gratis meedenken

Product schema laten controleren

Stuur me een product-URL uit je shop en welke SEO-plugin je gebruikt. Ik draai hem door de Rich Results Test en mail je terug welke velden missen, of er conflicten zijn en wat ik direct zou oplossen.

Schema laten nakijken
Vond je dit nuttig? Deel het:
FAQ

Vragen die shopeigenaren stellen

Krijg ik gegarandeerd sterren in de SERP als mijn schema klopt?
Nee. Schema is een voorwaarde, geen garantie. Google bepaalt zelf of een snippet de moeite waard is om te tonen. Reviews op je shop hebben, voldoende reviews per product en een schema zonder errors maken de kans wel veel groter.
Heb ik Yoast Premium nodig voor product schema?
Voor compleet schema met brand en identifier wel. De gratis Yoast doet basis-schema, maar mist de WooCommerce-uitbreiding. Rank Math doet hetzelfde in de gratis versie, dus dat is een alternatief.
Mag ik AggregateRating handmatig invullen als ik weinig reviews heb?
Nee. Google's richtlijnen voor structured data verbieden dat expliciet. Verzonnen of opgepompte reviews kunnen je site uit rich snippets gooien, of in ergere gevallen uit de SERP zelf.
Wat doe ik met out-of-stock producten in schema?
Zet availability op https://schema.org/OutOfStock. De pagina blijft online, het schema klopt, en je behoudt de SEO-waarde voor wanneer het product terugkomt.
Hoe weet ik of mijn shop al rich snippets toont?
Zoek in Google naar een specifieke producttitel van je shop. Verschijnt er een resultaat met sterren, prijs of voorraad onder de link, dan werkt het. Werkt het niet, dan is de Rich Results Test je volgende stap.
Werkt schema ook voor variabele producten?
Ja, maar de implementatie verschilt. De meeste SEO-plugins renderen één schema voor het ouderproduct met een prijsrange. Wil je per variant een apart schema, dan moet je dat handmatig of via een gespecialiseerde plugin doen. Voor de meeste shops is de standaardaanpak voldoende.
Serhii Lypii
Over de auteur

Serhii Lypii

Freelance webmaster · Terneuzen

Sinds 2012 werk ik met websites en leverde ik ruim 210 projecten op. Ik help mkb-ondernemers met onderhoud, snelheid, beveiliging en praktische automatisering. Nuchter, zonder hype.

Ik schreef dit artikel op en werkte het voor het laatst bij op .

Meer over Lypii
Even sparren over je site?

Loop je ergens tegenaan of twijfel je over je site? Ik denk graag mee — kies hieronder hoe je contact opneemt.

Reactie binnen 4 uur op werkdagen
Navigatie
Home Over mij Kennisbank
Contact
+31 6 39 56 93 03 serhii@lypii.nl WhatsApp
Stuur een bericht