
Structured data voor webshops: schema markup die Google en AI-systemen begrijpen
Structured data is geen rankingfactor. Het is de manier waarop je een machine vertelt wat er op een pagina staat: dit is een product, dit kost het, zo snel wordt het geleverd, zo kun je het retourneren. Dat levert sterren, prijzen en levertijden in de zoekresultaten op, en een catalogus die Google en AI-systemen zonder gissen kunnen lezen. Wij bouwen het in je templates en controleren of het klopt met wat de bezoeker ziet.
- Product, Offer, verzend- en retourbeleid, reviews, breadcrumbs en Organization
- Gegenereerd uit dezelfde data als je pagina en je Merchant Center-feed
- Gevalideerd per template, en gemonitord in Search Console
Wat is structured data voor een webshop?
Structured data, ook wel schema markup genoemd, is een gestandaardiseerde beschrijving van de inhoud van een pagina in het vocabulaire van schema.org. Google raadt JSON-LD aan: een blok code in de HTML dat niet zichtbaar is voor bezoekers, maar wel voor zoekmachines. Voor een webshop beschrijft het producten, prijzen, voorraad, verzendkosten, retourvoorwaarden, reviews, de plek van een pagina in je categoriestructuur en wie je als bedrijf bent.
Google zegt zelf dat structured data geen directe rankingfactor is. Het effect zit ergens anders. Met correcte markup kom je in aanmerking voor rijke weergaven, zoals prijs, beschikbaarheid en reviewsterren bij een productresultaat, en voor de gratis productvermeldingen in Google Shopping. Een resultaat met prijs en levertijd trekt een ander soort klik dan een kale blauwe link.
De tweede reden is begrip. Zoekmachines en AI-systemen moeten uit miljoenen pagina's halen wat een product is, wat het kost en of het leverbaar is. Expliciete, consistente data maakt dat minder foutgevoelig. Dat is precies waar het in de praktijk misgaat: markup die een andere prijs noemt dan de pagina, of een product dat 'op voorraad' meldt terwijl het al weken uitverkocht is.
Welke schema markup een webshop nodig heeft
Niet elk schema.org-type levert iets op. Dit zijn de types die voor webshops relevant zijn, en wat ze in de zoekresultaten doen.
| Type | Waar | Wat het oplevert | Aandachtspunt |
|---|---|---|---|
| Product + Offer | Productpagina | Prijs, beschikbaarheid en productvermeldingen in Google | Prijs en voorraad moeten gelijk zijn aan de zichtbare pagina |
| ProductGroup (varianten) | Productpagina met maten of kleuren | Google begrijpt welke varianten bij elkaar horen | Elke variant met eigen SKU, GTIN en prijs waar die afwijkt |
| OfferShippingDetails en MerchantReturnPolicy | Productpagina of Organization-niveau | Verzendkosten, levertijd en retourtermijn bij je resultaat | Moet overeenkomen met je voorwaarden en Merchant Center |
| AggregateRating en Review | Productpagina met echte reviews | Reviewsterren bij productresultaten | Alleen reviews die op de pagina zichtbaar zijn, niet over je eigen bedrijf |
| BreadcrumbList | Product- en categoriepagina's | Begrip van je structuur; pad in het resultaat op desktop | Het pad moet overeenkomen met de zichtbare breadcrumbs |
| Organization | Homepage of over-ons | Logo, contactgegevens, verwijzingen naar je profielen elders | Eén consistente beschrijving, overal dezelfde naam en gegevens |
Plan een vrijblijvend gesprek over je project
Een half uur via video met de mensen die het werk ook echt doen. Kies hieronder een moment dat jou past.
- Direct met het vaste team, geen tussenlagen
- Concrete feedback op je huidige situatie of plannen
- Eerlijk advies, ook als het antwoord "niet doen" is
- Indicatie van kosten en tijdlijn
Plan een gratis Tech Check
Vrijblijvend jouw uitdagingen bespreken
Of bel direct: 0591-239 299
Product en Offer: het fundament
Een productpagina zonder Product-markup laat Google zelf raden wat de prijs is. Soms gaat dat goed, vaak pakt het een vanafprijs, een prijs uit een cross-sellblok of de prijs exclusief btw. Met Product en een daarin genest Offer leg je het vast: naam, afbeelding, merk, SKU, GTIN, prijs, valuta, beschikbaarheid en conditie.
Een minimaal Offer-blok ziet er zo uit: {"@type": "Offer", "price": "89.95", "priceCurrency": "EUR", "availability": "https://schema.org/InStock", "itemCondition": "https://schema.org/NewCondition"}. Let op de punt als decimaalteken en de volledige URL bij availability. Dat zijn precies de details waar een handgeschreven template op struikelt.
Google onderscheidt twee soorten weergaven. Product snippets zijn de rijke resultaten bij een gewone zoekopdracht, met prijs en sterren. Merchant listings zijn de productvermeldingen in Shopping en de productblokken; die vragen meer velden, zoals een concreet aanbod met prijs. In Search Console krijg je voor beide een apart rapport, met fouten en waarschuwingen per URL.
Bij producten met varianten gebruik je ProductGroup met hasVariant en variesBy. Zo snapt Google dat een shirt in vijf maten één product is met vijf aanbiedingen, in plaats van vijf losse pagina's die elkaar beconcurreren. Dat sluit aan op hoe je canonicals voor varianten hebt ingericht; die twee moeten hetzelfde verhaal vertellen.
Verzending en retouren: de velden die bijna iedereen vergeet
Steeds meer productresultaten tonen niet alleen een prijs, maar ook verzendkosten en de retourtermijn. Die informatie haalt Google uit je structured data of uit de instellingen in Merchant Center. Ontbreekt het, dan krijg je in Search Console waarschuwingen voor shippingDetails en hasMerchantReturnPolicy, en mis je een vergelijkingspunt dat klanten wel zien bij je concurrent.
Je kunt die gegevens per product meegeven met OfferShippingDetails (kosten, bestemming, verwerkings- en levertijd) en MerchantReturnPolicy (termijn, methode, kosten). Google ondersteunt een retourbeleid ook op Organization-niveau, zodat je het niet op elke productpagina hoeft te herhalen. Wat je kiest, hangt af van je situatie: één beleid voor alles kan centraal, afwijkende voorwaarden per productgroep horen bij het product.
Voor Nederland en België betekent dit vaak twee bestemmingen met verschillende verzendkosten en levertijden. Die moeten in de markup en in Merchant Center hetzelfde zijn. Tegenstrijdige informatie is erger dan geen informatie.
Wat niet meer werkt, de eerlijke versie
Veel artikelen en plugins adviseren nog markup die voor webshops niets meer oplevert in de zoekresultaten. Wat je moet weten.
FAQ rich results
Sinds augustus 2023 toont Google FAQ-rich results alleen nog voor gezaghebbende overheids- en gezondheidssites. Een webshop krijgt er geen uitklapvragen meer mee. FAQPage-markup kan nog helpen bij begrip door machines, maar verwacht er geen extra ruimte in Google van.
Lees verder →HowTo rich results
Verdwenen uit de zoekresultaten. Stappenplannen op je blog markeren als HowTo levert geen weergave meer op.
Lees verder →Sitelinks-zoekvak
Google heeft het zoekvak onder resultaten eind 2024 uitgefaseerd. WebSite-markup met SearchAction hoeft daarvoor niet meer, al kan WebSite-markup nog dienen voor je sitenaam.
Lees verder →Reviews over je eigen bedrijf
Reviewsterren op basis van reviews over je eigen organisatie, op je eigen site, toont Google niet. Productreviews op productpagina's wel, mits ze echt op de pagina staan.
Lees verder →Structured data per platform
Elk platform levert iets standaard mee. Vrijwel nooit is dat genoeg.
Het meest voorkomende probleem bij Magento en Shopify zijn dubbele blokken. Het thema genereert Product-markup, een reviewapp doet het ook en een SEO-extensie nog een keer. Google krijgt dan drie versies van hetzelfde product, met elk net andere velden. Wij brengen het terug naar één bron die alle velden bevat.
Belangrijk bij elk platform: render de markup server-side. Markup die pas via JavaScript wordt toegevoegd, wordt wel verwerkt, maar later en minder betrouwbaar. Bij Hyvä, Shopify en een Laravel-SSR-opzet is server-side de standaard; bij headless-frontends moet je erop letten.
| Platform | Standaard aanwezig | Wat meestal ontbreekt | Onze aanpak |
|---|---|---|---|
| Magento 2 met Luma | Beperkte, verouderde markup in het thema | Volledige Offer-data, varianten, verzending, retouren, breadcrumbs | JSON-LD uit een eigen module, gevoed door catalogusdata |
| Magento 2 met Hyvä | Afhankelijk van het thema en gebruikte modules | Consistentie tussen extensies; vaak dubbele of ontbrekende blokken | Eén bron van markup, dubbelingen verwijderd |
| Shopify | Product-markup via het thema, vaak met de structured_data-filter | Verzending, retouren, GTIN's, reviews uit een app op de juiste plek | Thema-aanpassing in Liquid, metafields voor ontbrekende velden |
| Laravel of headless | Niets, tenzij je het bouwt | Alles | Server-side gerenderde JSON-LD vanuit het datamodel |
Structured data en Merchant Center: één bron van waarheid
Google vergelijkt je productfeed in Merchant Center met wat het op je pagina en in je markup ziet. Klopt de prijs of beschikbaarheid niet, dan kunnen producten worden afgekeurd. Merchant Center kan prijs en beschikbaarheid ook automatisch bijwerken op basis van je structured data. Dat werkt alleen als die markup betrouwbaar is.
Daarom laten we feed, pagina en markup uit dezelfde data komen. In Magento betekent dat dezelfde prijsberekening, inclusief klantgroep en btw-weergave. In Shopify dezelfde variant en dezelfde valuta per market. Een feedtool die een eigen prijslogica heeft, is een bekende bron van afkeuringen.
Ook GTIN's en merknamen horen hier bij. Ze helpen Google en AI-systemen om jouw product te koppelen aan hetzelfde product bij andere verkopers. Zonder identifier is je product een losse pagina; met identifier is het een aanbod voor een bekend product.
De rol van structured data in AI-zoekmachines en GEO
AI Overviews gebruiken de gewone Google-index. ChatGPT search leunt onder meer op de Bing-index. Beide zoekmachines verwerken structured data, en Google bouwt er onder meer zijn productkennis mee op. Wat je markup doet voor Google en Bing, werkt dus indirect door in de antwoorden die AI-systemen geven.
Of taalmodellen JSON-LD zelf rechtstreeks lezen, is niet publiek bevestigd. Wees sceptisch bij iedereen die beweert dat schema markup je gegarandeerd in ChatGPT krijgt. Wat wel vaststaat: een product met een duidelijke naam, merk, GTIN, prijs, beschikbaarheid en levertijd is makkelijker te vergelijken en te citeren dan een product waarvan een systeem die gegevens uit de lopende tekst moet halen.
Organization-markup met sameAs-verwijzingen naar je profielen elders helpt zoekmachines je merk als één entiteit te herkennen. Dat is de basis voor merkvermeldingen in AI-antwoorden. Meer over die kant staat op onze pagina over GEO.
Zo valideren we structured data
Markup die één keer gevalideerd is, kan een week later stuk zijn door een thema-update of een nieuwe app. Validatie is daarom een proces, geen vinkje.
Bij de bouw
- Rich Results Test van Google per template: product, variantproduct, categorie, homepage
- Schema Markup Validator voor syntax en schema.org-conformiteit
- Vergelijking van markup met de zichtbare prijs, voorraad en breadcrumbs
- Controle op dubbele blokken uit thema, apps en extensies
Randgevallen
- Uitverkochte producten met OutOfStock in plaats van verdwenen markup
- Producten met speciale prijs, tier prices of klantgroepprijzen
- Producten zonder reviews: geen lege AggregateRating
- Meerdere valuta of landen: juiste priceCurrency per store view of market
Na livegang
- Search Console-rapporten Product snippets en Merchant listings
- Merchant Center-diagnose op afwijkingen tussen feed en pagina
- Steekproef na elke thema- of app-update
Onze aanpak voor structured data
Van inventaris tot monitoring, in je eigen platform gebouwd.
- 1
Inventaris per template
We crawlen je shop en halen alle bestaande markup op. Welke types, uit welke bron, met welke fouten en waarschuwingen.
- 2
Datamapping
Per veld bepalen we waar de data vandaan komt: prijs, GTIN, merk, verzendregels, retourbeleid, reviews. Ontbrekende velden worden attributen of metafields.
- 3
Eén bron van markup
Dubbele blokken uit thema's en apps gaan eruit. De markup komt uit één module of één snippet die alle types bevat.
- 4
Implementatie
JSON-LD server-side in Magento, Shopify of Laravel, inclusief varianten, verzending, retouren, breadcrumbs en Organization.
- 5
Validatie en randgevallen
Testen per template en per randgeval, en vergelijken met de zichtbare pagina en de Merchant Center-feed.
- 6
Monitoring
Search Console en Merchant Center volgen op nieuwe fouten, en controleren na updates. Afwijkingen lossen we op in de code.
Wat je opgeleverd krijgt
- Inventaris van alle bestaande markup per template, met bron en fouten
- Datamapping per schema-veld naar je catalogusdata
- JSON-LD voor Product, Offer, ProductGroup, verzending, retouren, reviews, BreadcrumbList en Organization
- Opgeruimde dubbele markup uit thema's, apps en extensies
- Testverslag per template en per randgeval
- Afstemming tussen structured data en Merchant Center-feed
- Ingerichte monitoring via Search Console-rapporten
- Korte documentatie: welke velden waar vandaan komen en wat je zelf kunt beheren
Waarom Coding.nl voor structured data
In de code, niet in een plugin
We bouwen markup in je thema of module, gevoed door je eigen data. Geen extra extensie die bij de volgende update andere markup genereert.
Kennis van de catalogus
Varianten, klantgroepprijzen, multi-store en meerdere valuta: we weten hoe Magento en Shopify die data opslaan, en dus hoe je het correct beschrijft.
Eerlijk over het effect
Geen beloftes over rankings of gegarandeerde AI-vermeldingen. Wel correcte markup die in aanmerking komt voor rijke weergaven en betrouwbaar leesbaar is.
Vast team, korte lijnen
Dezelfde mensen bouwen en onderhouden je shop. Breekt een update de markup, dan zien en herstellen wij het.

Verder lezen
- ›Structured data voor e-commerce — Product, Offer en FAQ schema
- ›Productpagina SEO: de checklist voor webshops
- ›AI shopping productdata: maak je catalogus vindbaar en koopbaar
- ›Magento 2 + Google Merchant Center — feed optimalisatie
- ›Google Shopping optimalisatie — van feed tot conversie
- ›Uitverkochte producten en SEO: laten staan, redirect of 410?
- ›Entiteiten-SEO: je webshop als merk-entiteit voor Google en AI
- ›ChatGPT shopping: zo worden je producten zichtbaar
- ›Google Search Console voor webshops: de rapporten die tellen
Veelgestelde vragen
Weten wat je structured data nu echt vertelt?
Vraag een SEO-audit aan. We halen alle markup uit je shop op, vergelijken die met je pagina's en Merchant Center, en laten zien welke fouten en ontbrekende velden je zichtbaarheid kosten.