Verkoop Meer met Structured Data in jouw Vendure Webshop

Niels null

Niels

6 min lezen , ~4 ~uur om te bouwen

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 Structured Data in jouw Vendure Webshop

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

  1. Maak een basistemplate – Voeg de noodzakelijke velden toe: naam, prijs, SKU, beschikbaarheid en beoordelingen.
  2. Koppel productvelden aan schema.org-properties – Zorg dat elk veld overeenkomt met de juiste JSON-LD-property.
  3. Automatiseer de injectie via je tech stack – Laat Vendure + Astro de JSON-LD toevoegen aan elke productpagina.
  4. 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 producttitel
  • description – Korte, beschrijvende tekst
  • price – Numerieke productwaarde
  • sku – Uniek voorraadnummer
  • availability – Op voorraad, uitverkocht, etc.
  • images – Ten minste één productafbeelding-URL
  • aggregateRating – 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:

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 of HowTo 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.