Verkoop Meer met Structured Data in jouw Vendure Webshop

Niels
Leer hoe je jouw e-commerceverkoop kunt stimuleren met structured data in Vendure. Stapsgewijze handleiding in receptvorm, inclusief JSON-LD-voorbeelden en best practices voor productpagina's.

Verkoop Meer met Gestructureerde Data in je Vendure Webshop
Waarom Gestructureerde Data Belangrijk Is
We willen allemaal meer verkopen via onze online winkels, en iedereen zegt dat structured data belangrijker is dan ooit, vooral met de opkomst van LLM’s. Alsof gestructureerde data een paar jaar geleden niet nuttig was! Ik ga hier niet beweren dat deze gids een silver bullet is, maar duidelijk communiceren naar zoekmachines wat je verkoopt of bespreekt, is enorm waardevol. Dat was altijd al zo, en dat zal ook altijd zo blijven.
Structured data helpt Google begrijpen of jij iets aanbiedt waar mensen naar zoeken, en het helpt jou ervoor zorgen dat zoekmachines je producten en content correct interpreteren.
We gaan niet beginnen met een definitie van structured data, je weet waarschijnlijk al wat het is, of kunt het opzoeken in een van de vele SEO blogs. Hier richten we ons specifiek op e-commerce, Vendure en het gebruik van JSON-LD, en niets anders. Let's cook!
Benodigdheden
- Toegang tot een developer – Iemand die je kan helpen met de implementatie van structured data als je het zelf niet kunt. Maak developers aub niet chagrijnig; ze waarderen duidelijke instructies!
- Google’s Rich Result Tester of Schema Markup Validator – Houd deze open om je structured data te testen.
- Inzicht in je tech stack – Je wilt JSON-LD automatisch genereren voor alle pagina’s. In ons geval gebruiken we een headless setup met Vendure, AstroJS, en Directus CMS.
Voorbereiding: Mise en Place
Voordat je begint, audit je bestaande pagina’s en producten. Welke pagina’s zijn het belangrijkst voor SEO en conversie? Verzamel productdata zoals:
- Titels
- Prijzen
- Beschrijvingen
- Beschikbaarheid
- Beoordelingen
- Afbeeldingen
Dit is je basis voor structured data, zie het als het wassen en snijden van ingrediënten voordat je gaat koken.
Vendure-gebruikers: Maak Gebruik van je Productvelden
Als je je webshop runt op Vendure, is de eenvoudigste en betrouwbaarste manier om je JSON-LD te vullen het hergebruiken van bestaande productvelden in Vendure. De meeste informatie die je nodig hebt, zoals name
, description
, price
, images
en variants
, is al beschikbaar in het GraphQL-schema.
Door deze rechtstreeks te gebruiken, zorg je ervoor dat je gestructureerde data altijd up-to-date is en overeenkomt met je productcatalogus. Dus geen dubbele invoer of handmatige updates meer.
Een handige bron om de beschikbare productvelden in te zien is de officiële Vendure-documentatie over het GraphQL Product-object:
Vendure GraphQL API: Product Object
Instructies: JSON-LD toevoegen aan productpagina’s
- Maak een basistemplate – Voeg de noodzakelijke velden toe: naam, prijs, SKU, beschikbaarheid en beoordelingen.
- Koppel productvelden aan schema.org-properties – Zorg dat elk veld overeenkomt met de juiste JSON-LD-property.
- Automatiseer de injectie via je tech stack – Laat Vendure + Astro de JSON-LD toevoegen aan elke productpagina.
- Test elke pagina – Gebruik Google’s Rich Results Test of Schema Markup Validator om te controleren of alles correct werkt.
Basistemplate Genereren
Maak eerst een template die bepaalt welke velden in je JSON-LD verschijnen. Voeg minimaal toe:
name
– De producttiteldescription
– Korte, beschrijvende tekstprice
– Numerieke productwaardesku
– Uniek voorraadnummeravailability
– Op voorraad, uitverkocht, etc.images
– Ten minste één productafbeelding-URLaggregateRating
– Indien beschikbaar
Koppel Productvelden aan schema.org-properties
Zodra je template klaar is, moet je elk productveld koppelen aan de juiste schema.org-property. Zo weet Google precies wat elk gegeven betekent.
Varianten in Vendure + JSON-LD
Verkoop je producten in verschillende gewichten, maten of kleuren? In Vendure zijn dat varianten (elk met een eigen sku
, prijs en voorraad), beschikbaar via de GraphQL API als variants
(of productVariants
).
De duidelijkste, door Google goedgekeurde manier om dit op één URL weer te geven, is door het hoofdproduct te modelleren als een ProductGroup
, en elke optie als een Product
onder hasVariant
, met een terugverwijzing via isVariantOf
.
Voeg variesBy
toe om aan te geven op welke eigenschappen de varianten verschillen (bijv. "weight"
, "size"
, "color"
).
Waarom Deze Aanpak?
Elke variant wordt als een eigen item in de feed weergegeven. Zo blijft alles overzichtelijk, voorkom je dubbele of conflicterende markup, en volg je de variant-richtlijnen van Google.
Vendure → JSON-LD Variantkoppeling
Vendure (GraphQL) | JSON-LD Property | Opmerking |
---|---|---|
variant.product.name |
ProductGroup.name |
Titel van het hoofdproduct |
variant.product.slug → pagina-URL |
ProductGroup.url / @id |
Gebruik de canonieke product-URL als url en @id |
variant.product.description |
ProductGroup.description |
Algemene beschrijving, gedeeld door varianten |
variant.product.featuredAsset |
ProductGroup.image |
Een of meer absolute afbeeldings-URL’s |
variant.name |
Product.name (binnen hasVariant ) |
Variant-specifieke naam |
variant.sku |
sku |
Uniek per variant |
variant.price* + variants[].currencyCode |
offers.price + offers.priceCurrency |
Prijs in een Offer ; valuta in ISO-4217 (bijv. EUR ) |
variant.stockOnHand > 0 |
offers.availability |
Gebruik https://schema.org/InStock of https://schema.org/OutOfStock |
Gewicht/kleur/maten | variesBy + additionalProperty |
Gebruik PropertyValue of standaardvelden zoals color , size , etc. |
Voorbeeld
{
"@context": "https://schema.org",
"@type": "ProductGroup",
"name": "Voorbeeldproduct",
"description": "Verkrijgbaar in meerdere gewichten.",
"url": "https://voorbeeld.nl/product/voorbeeldproduct",
"image": [
"https://voorbeeld.nl/images/voorbeeld-500g.jpg",
"https://voorbeeld.nl/images/voorbeeld-1kg.jpg"
],
"variesBy": ["weight"],
"hasVariant": [
{
"@type": "Product",
"name": "Voorbeeldproduct 500g",
"sku": "VP500G",
"isVariantOf": {
"@type": "ProductGroup",
"@id": "https://voorbeeld.nl/product/voorbeeldproduct"
},
"offers": {
"@type": "Offer",
"price": "9.99",
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock"
},
"additionalProperty": [
{ "@type": "PropertyValue", "propertyID": "weight", "value": "500 g" }
]
},
{
"@type": "Product",
"name": "Voorbeeldproduct 1kg",
"sku": "VP1KG",
"isVariantOf": {
"@type": "ProductGroup",
"@id": "https://voorbeeld.nl/product/voorbeeldproduct"
},
"offers": {
"@type": "Offer",
"price": "17.99",
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock"
},
"additionalProperty": [
{ "@type": "PropertyValue", "propertyID": "weight", "value": "1 kg" }
]
}
]
}
Automatiseren met Vendure
Handmatig JSON-LD toevoegen aan elke productpagina is tijdrovend en foutgevoelig. Automatiseer het via je stack, bijvoorbeeld:
- Vendure + Astro: Haal productdata op via GraphQL en voeg JSON-LD dynamisch toe bij het genereren van pagina’s, zoals in het eerder benoemde voorbeeld.
- Headless CMS (zoals Directus): Bewaar aangepaste velden en voeg ze samen in je JSON-LD-template.
- Server-Side Rendering: Plaats JSON-LD direct in de
<head>
bij het renderen van de pagina.
Testen is Essentieel
Test altijd met:
- Google Rich Results Test
- Schema.org Validator
- Google Search Console
Zie het als het proeven van je gerecht voordat je het serveert, serveer geen kapotte markup.
Serveer Suggesties: Volgende Stappen
Na het implementeren van gestructureerde data:
- Monitor prestaties in Google Search Console
- Experimenteer met andere schema’s zoals
FAQPage
ofHowTo
voor contentpagina’s
Chef’s Tips: Veelgemaakte Fouten om te Vermijden
- Controleer altijd de JSON-LD-syntaxis; één komma te weinig kan alles breken!
Voorbeeld: Eifelgold Lavameel Gestructureerde Data
Hier is een exact JSON-LD-voorbeeld voor het product Eifelgold Lavameel van Wormenkwekerij Wasse:
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "Eifelgold lavameel 20 kg",
"image": "https://storage.googleapis.com/shops-wkw-assets-prod/presets/0b/lavameel-20kg-22140_preview.webp",
"description": "Bestel Eifelgold lavameel van topkwaliteit. 100% natuurlijk, rijk aan mineralen en perfect voor een gezonde moestuin. Snelle levering!",
"offers": {
"@type": "Offer",
"price": "19.90",
"priceCurrency": "EUR",
"priceValidUntil": "2026-10-02T11:30:17+00:00",
"availability": "http://schema.org/InStock"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.9",
"bestRating": "5",
"ratingCount": "29"
}
}
</script>
Deze aanpak maakt het eenvoudig om JSON-LD-generatie voor al je producten te automatiseren, zodat je gestructureerde data altijd nauwkeurig en volledig geoptimaliseerd blijft voor zoekmachines.