Terug naar kennisbank

Magento SEO

Magento-productvarianten en structured data: parent, simple product en ProductGroup

Een configureerbaar Magento-product lijkt voor de klant één productpagina met keuzes voor kleur, maat of uitvoering. Achter die pagina kunnen tientallen simple products zitten, ieder met een eigen SKU, voorraad, prijs, afbeelding en soms zelfs een eigen GTIN. Precies daar gaat structured data…

Geschreven doorMagentoSEO.nl
Gepubliceerd
Leestijd10 min

GratisHandmatige SEO-analyse

Vraag jouw analyse aan
Inhoudsopgave (14)
  1. 01Waarom Magento-producttypen SEO-technisch relevant zijn
  2. 02Parent en child: wie bezit welke informatie?
  3. 03Wat ProductGroup oplost
  4. 04Eerst kiezen: één productpagina of meerdere variantpagina’s
  5. 05Een vereenvoudigd JSON-LD-model
  6. 06De productdatamatrix: één waarheid per veld
  7. 07Configurable products: de belangrijkste controles
  8. 08Grouped en bundle products zijn niet hetzelfde als varianten
  9. 09Structured data, zichtbare pagina en feed moeten overeenkomen
  10. 10Testcases voor een Magento-variantimplementatie
  11. 11Veelvoorkomende fouten
  12. 12Zo brief je de webbouwer of implementatiepartner
  13. 13Valideren in vier lagen
  14. 14De kern: beschrijf wat de klant werkelijk koopt

Goede productmarkup begint daarom niet met een Schema.org-plugin. Eerst moet duidelijk zijn wat het parentproduct vertegenwoordigt, welke gegevens bij de varianten horen en welke variant een bezoeker daadwerkelijk kan selecteren en kopen.

Goed om vooraf te weten: MagentoSEO.nl bouwt of wijzigt geen structured-data-module en past geen Magento-template aan. Wij analyseren producttypen en databronnen, maken de gewenste mapping en testcases, briefen de webbouwer of implementatiepartner en valideren daarna de zichtbare pagina, JSON-LD en productfeed.

Waarom Magento-producttypen SEO-technisch relevant zijn

Magento kent meerdere producttypen. Die zijn commercieel handig, maar ze hebben niet allemaal dezelfde relatie tussen pagina, SKU, prijs en voorraad.

ProducttypePraktische betekenisBelangrijk SEO- en datavraagstuk
Simple productEén rechtstreeks verkoopbare uitvoeringKloppen SKU, GTIN, prijs, voorraad en URL voor precies dit artikel?
Configurable productEen parent met selecteerbare simple variantenWordt de groep plus iedere relevante variant juist beschreven?
Grouped productEen presentatie van losse producten die apart gekocht kunnen wordenZijn de onderdelen zelfstandige producten en URL’s?
Bundle productDe klant stelt een combinatie samenWelke prijs en beschikbaarheid zijn vooraf werkelijk te beloven?
Virtual productNiet-fysiek product zonder verzendingZijn levering, voorraad en producteigenschappen logisch weergegeven?
Downloadable productDigitaal product met downloadbare onderdelenSluiten aanbod, prijs en leveringsinformatie aan op het digitale product?

De grootste valkuil is doen alsof ieder Magento-producttype hetzelfde is. Een configurable parent is vaak niet het voorraadartikel dat wordt geleverd. De simple variant is dat wel. Een bundle kan geen vaste prijs hebben wanneer keuzes de totaalprijs veranderen. Een grouped product is eerder een verzameling losse aanbiedingen dan één klassieke variantgroep.

Structured data moet de werkelijkheid van de pagina beschrijven, niet de gewenste eenvoud van de implementatie.

Parent en child: wie bezit welke informatie?

Bij een configureerbaar product kun je de gegevens grofweg verdelen.

Gegevens die vaak op parentniveau horen

  • merk;

  • algemene productnaam;

  • algemene beschrijving;

  • materiaal als dit voor alle varianten gelijk is;

  • reviews als die werkelijk voor de hele productfamilie gelden;

  • de eigenschappen waarop het product varieert;

  • parent-SKU of productgroep-ID;

  • algemene categorie en toepassing.

Gegevens die vaak op variantniveau horen

  • unieke SKU;

  • GTIN, EAN of ander artikelnummer;

  • kleur, maat, uitvoering of capaciteit;

  • variantafbeelding;

  • actuele prijs wanneer varianten verschillen;

  • voorraadstatus;

  • variant-URL of selecteerbare URL-state;

  • variant-specifieke naam of beschrijving.

De woorden “vaak” zijn belangrijk. De echte eigendomsmatrix hangt af van het assortiment en de inrichting. Wanneer materiaal een variantkeuze is, hoort het materiaal op variantniveau. Wanneer alle maten dezelfde prijs hebben, mag de prijs nog steeds per Offer worden geleverd, zolang die gelijk blijft en actueel is.

Wat ProductGroup oplost

Google ondersteunt structured data voor productvarianten met ProductGroup en onderliggende Product-entiteiten. De officiële richtlijn voor productvarianten beschrijft ProductGroup als de groep met gemeenschappelijke eigenschappen en Product als iedere variant.

Belangrijke onderdelen zijn:

  • name: de algemene productnaam;

  • productGroupID: de identifier van de groep, vaak de parent-SKU;

  • variesBy: de eigenschappen waarop varianten verschillen, zoals kleur of maat;

  • hasVariant: de onderliggende Product-varianten;

  • sku: de unieke variant-SKU;

  • gtin: de unieke productidentifier van de variant;

  • offers: prijs, valuta, beschikbaarheid en aankoop-URL van de variant.

Google noemt voor een single-page variantopzet het nesten van varianten onder ProductGroup een compacte en natuurlijke representatie. Dat is geen verplicht technisch recept voor iedere Magento-shop. De keuze hangt af van de URL- en paginavorm.

Eerst kiezen: één productpagina of meerdere variantpagina’s

Model A: alle varianten op één URL

De klant opent bijvoorbeeld /wollen-jas.html en kiest kleur en maat. De pagina herlaadt niet; afbeelding, prijs en voorraad kunnen dynamisch veranderen.

Dan kan de structured data bestaan uit:

  • één ProductGroup voor de jas;

  • variesBy voor kleur en maat;

  • meerdere Product-varianten onder hasVariant;

  • per variant een eigen SKU, GTIN, afbeelding en Offer;

  • een variantselectie in de Offer-URL, bijvoorbeeld met queryparameters, als die URL de selectie betrouwbaar kan herstellen.

De HTML hoeft niet bij iedere klik volledig nieuwe markup in de DOM te schrijven om het concept geldig te maken. Wel moet de initiële markup de aangeboden varianten correct representeren en mag de zichtbare pagina die informatie niet tegenspreken.

Model B: varianten hebben eigen indexeerbare URL’s

Een kleur of uitvoering heeft een afzonderlijke pagina, bijvoorbeeld:

  • /wollen-jas-groen.html;

  • /wollen-jas-lichtblauw.html.

Dan moet je bepalen of die URL’s zelfstandig nuttig en indexeerbaar zijn. De Google-documentatie laat ook een multi-page opzet zien. De ProductGroup wordt dan op variantpagina’s herhaald en de relatie met andere varianten wordt via hasVariant, isVariantOf of URL-verwijzingen duidelijk gemaakt.

Dit model vraagt extra discipline:

  • iedere pagina heeft een logische self-canonical als zij zelfstandig mag indexeren;

  • variantpagina’s mogen niet allemaal naar een generieke parent canonicaliseren als je juist zelfstandige indexatie verwacht;

  • titel, afbeelding, zichtbare selectie, prijs en voorraad horen bij de geopende variant;

  • interne links moeten de relevante variant-URL gebruiken;

  • sitemap en feed moeten dezelfde URL-strategie volgen.

Model C: één pagina, maar iedere selectie krijgt een URL-state

De pagina blijft conceptueel één productpagina, terwijl een parameter of fragment een gekozen variant kan openen. Dit kan prettig zijn voor delen, feeds en campagnes. Test dan of:

  • de geselecteerde variant server-side of na rendering betrouwbaar zichtbaar is;

  • de URL in een nieuwe sessie dezelfde variant activeert;

  • Google de state kan begrijpen waar dat nodig is;

  • de canonicalstrategie bewust gekozen is;

  • Merchant Center op de juiste variant landt.

Een URL die ?kleur=groen&maat=l bevat maar altijd de standaard zwarte maat M toont, is geen bruikbare variantlink.

Een vereenvoudigd JSON-LD-model

Onderstaand voorbeeld laat de relatie zien. Het is geen kant-en-klare implementatie voor iedere Magento-shop; veldnamen, variantdekking en Offer-details moeten aansluiten op de werkelijke output.

{ "@context": "https://schema.org", "@type": "ProductGroup", "name": "Wollen herenjas", "productGroupID": "JAS-4400", "brand": { "@type": "Brand", "name": "Voorbeeldmerk" }, "variesBy": [ "https://schema.org/color", "https://schema.org/size" ], "hasVariant": [ { "@type": "Product", "name": "Wollen herenjas groen maat M", "sku": "JAS-4400-GRN-M", "gtin13": "8712345678901", "color": "Groen", "size": "M", "image": "https://shop.nl/media/jas-groen.jpg", "offers": { "@type": "Offer", "url": "https://shop.nl/wollen-herenjas.html?kleur=groen&maat=m", "price": "149.95", "priceCurrency": "EUR", "availability": "https://schema.org/InStock" } } ] }

De kwaliteit zit niet in het aantal velden. De kwaliteit zit in de overeenkomst met de werkelijkheid.

De productdatamatrix: één waarheid per veld

Maak vóór implementatie een matrix met de bron en het gewenste niveau.

VeldParent of variant?Mogelijke bronKritische controle
ProductnaamBeideMagento of PIMVariantnaam is specifieker dan groepsnaam
SKUVariant, plus groeps-ID voor parentERP, PIM of MagentoUniek en stabiel
GTIN/EANVariantERP of PIMHoort bij de werkelijk geleverde uitvoering
MerkMeestal parentPIM of Magento-attribuutExacte schrijfwijze blijft gelijk
Kleur en maatVariantMagento-attributenWaarden zijn zichtbaar en semantisch bruikbaar
PrijsVariant of berekend aanbodMagento-prijslogicaKomt overeen met zichtbare prijs en checkout
VoorraadVariantMSI, ERP of voorraadbronSelecteerbare variant heeft actuele status
AfbeeldingVariant waar mogelijkDAM, PIM of MagentoDe gekozen variant toont dezelfde uitvoering
URLParent of variantmodelMagento storefrontHerstelt de juiste productselectie
ReviewsParent of variantReviewplatformAggregatie past bij wat zichtbaar wordt getoond

Als twee systemen “eigenaar” van hetzelfde veld zijn, is er geen eigenaarschap. Kies per veld één primaire bron en beschrijf welke systemen alleen doorgeven of presenteren.

Configurable products: de belangrijkste controles

Iedere verkoopbare variant heeft een unieke identifier

Gebruik geen parent-EAN voor alle maten en kleuren. Een GTIN identificeert een concreet handelsartikel. Wanneer de geleverde uitvoering een eigen barcode heeft, hoort die bij de variant.

Niet-selecteerbare varianten worden niet als beschikbaar verkocht

Een variant kan administratief bestaan maar niet verkoopbaar zijn in de betreffende website, voorraadbron of klantgroep. De markup mag niet InStock zeggen terwijl de gebruiker die variant niet kan kiezen.

Prijsbereik is geen variantprijs

“Vanaf € 99” kan op groepsniveau nuttig zijn, maar een Offer voor maat XL moet de prijs van maat XL beschrijven. Controleer ook klantgroepsprijzen, catalog price rules, staffelprijzen en storeviewvaluta. De openbare markup moet passen bij wat een gewone bezoeker op die URL werkelijk kan kopen.

Afbeeldingen volgen de gekozen variant

Wanneer blauw wordt geselecteerd maar structured data en feed de rode hoofdafbeelding gebruiken, ontstaat een inhoudelijk conflict. Dat kan ook conversie schaden doordat Shopping-verkeer op een andere uitvoering denkt te landen.

Variant-URL’s zijn reproduceerbaar

Open de URL in een incognitovenster, op mobiel en zonder bestaande cookies. Dezelfde variant moet geselecteerd zijn. Dit is een simpele maar zeer waardevolle acceptatietest.

Grouped en bundle products zijn niet hetzelfde als varianten

Grouped product

Een grouped product kan meerdere zelfstandige producten presenteren die apart worden toegevoegd. Denk aan drie formaten van een opslagbak die ook elk een eigen productpagina hebben. Dat is niet per definitie één ProductGroup met klassieke varianten. Beoordeel:

  • hebben de onderdelen zelfstandige SKU’s en URL’s?

  • worden ze los gekocht en geleverd?

  • verschillen ze alleen op één variantdimensie of zijn het afzonderlijke producten?

  • welke entiteit toont de prijs en beschikbaarheid?

Bundle product

Bij een bundle kiest de klant onderdelen. De uiteindelijke prijs en voorraad kunnen afhangen van de gekozen combinatie. Vermijd een Offer die een vaste volledige prijs of beschikbaarheid claimt wanneer dat vóór de selectie niet waar is.

Breng eerst in kaart:

  • vaste of dynamische prijs;

  • verplichte en optionele onderdelen;

  • minimale en maximale totaalprijs;

  • voorraadlogica van ieder onderdeel;

  • URL waarop de gekozen configuratie kan worden hersteld;

  • wat Magento, feed en checkout als verkoopartikel registreren.

Structured data, zichtbare pagina en feed moeten overeenkomen

Google legt in de inleiding tot Product structured data uit dat productinformatie zowel via structured data als via Merchant Center-feeds kan worden aangeleverd. Beide gebruiken vergroot de mogelijkheden en helpt Google informatie te begrijpen en verifiëren.

Dat maakt consistentie belangrijker. Vergelijk per variant:

  • zichtbare productnaam;

  • geselecteerde kleur, maat of uitvoering;

  • SKU en GTIN;

  • zichtbare prijs;

  • voorraadstatus;

  • hoofdafbeelding;

  • canonical en Offer-URL;

  • structured data;

  • productfeed;

  • uiteindelijke checkoutregel.

Een Rich Results Test die groen wordt, bewijst alleen dat de markup syntactisch kan worden verwerkt. Het bewijst niet dat de data commercieel correct is.

Testcases voor een Magento-variantimplementatie

Neem minimaal de volgende gevallen op:

TestcaseVerwachte uitkomst
Standaardvariant opentZichtbare data, JSON-LD en feedregel beschrijven dezelfde variant
Andere kleur wordt gekozenAfbeelding, selectie en relevante data blijven logisch
Duurdere maat wordt gekozenVariant-Offer toont de juiste prijs
Variant is uitverkochtNiet selecteerbaar of duidelijk uitverkocht; markup zegt niet InStock
Variant staat in backorderZichtbare levertijd en availability sluiten op elkaar aan
Variant-URL wordt los geopendPrecies dezelfde variant wordt hersteld
Product staat in meerdere storeviewsValuta, taal, URL en beschikbaarheid passen bij de storeview
Klant is niet ingelogdPublieke markup gebruikt geen verborgen klantgroepsprijs
Parent heeft geen eigen voorraadGroepsmarkup doet geen onjuiste voorraadclaim
GTIN ontbreekt bij enkele variantenGeen verzonnen of gekopieerde identifier

Veelvoorkomende fouten

Eén generieke Product met parent-SKU

De pagina heeft vijftig varianten, maar JSON-LD noemt alleen de parent als één Product met één prijs en één voorraadstatus. Daarmee verdwijnt precies de informatie die de koopbare artikelen onderscheidt.

Alle varianten dezelfde GTIN geven

Dit maakt de data niet completer, maar fout. Laat een identifier weg wanneer die werkelijk ontbreekt en los de brondata afzonderlijk op.

Frontend en JSON-LD gebruiken andere prijsbronnen

De zichtbare prijs wordt berekend na promoties, terwijl JSON-LD een basistarief uit een ander veld gebruikt. Controleer prijsregels, belastingen, valuta, klantgroepen en cache.

Alleen de eerste beschikbare variant markeren

Een implementatie kan technisch makkelijk de standaardvariant pakken, maar dat is onvoldoende wanneer andere varianten eigen URL’s of Feedregels hebben.

Markup na JavaScript onvolledig of dubbel

Een thema, tagmanager en extensie kunnen ieder Product-markup toevoegen. Dan staan er meerdere entiteiten met afwijkende prijzen of SKU’s. Inventariseer alle bronnen en kies één beheerste implementatie.

Varianten indexeren zonder unieke waarde

Eigen URL’s voor iedere maat leveren zelden sterke landingspagina’s op wanneer titel, tekst, afbeeldingen en zoekintentie vrijwel gelijk zijn. Kies zelfstandige variantpagina’s alleen wanneer ze gebruikers en zoekmachines echt iets afzonderlijks bieden.

Zo brief je de webbouwer of implementatiepartner

Een goede briefing bevat:

  • overzicht van gebruikte Magento-producttypen;

  • keuze voor single-page, multi-page of URL-state per productgroep;

  • parent-childmapping per veld;

  • bronhouder van SKU, GTIN, prijs, voorraad, afbeelding en URL;

  • gewenste ProductGroup, Product en Offer-relatie;

  • regels voor uitverkochte en niet-zichtbare varianten;

  • storeview-, valuta- en klantgroepsgedrag;

  • relatie met canonical, sitemap en productfeed;

  • testproducten met bekende uitzonderingen;

  • acceptatiecriteria voor broncode, gerenderde HTML en variantselectie;

  • proces voor monitoring na releases en data-imports.

Vraag ook welke component de markup genereert en hoe updates worden getest. Is dat het thema, een extensie, een server-side module, een headless storefront of tagmanager? Zonder dit antwoord is onderhoud na de eerste oplevering kwetsbaar.

Valideren in vier lagen

Laag 1: syntaxis

Gebruik de Rich Results Test en een Schema.org-validator. Controleer fouten én waarschuwingen, maar voeg niet blind ieder aanbevolen veld toe.

Laag 2: inhoud

Vergelijk de entiteiten met de zichtbare pagina. Controleer handmatig verschillende varianten, prijzen, voorraadstanden en afbeeldingen.

Laag 3: dataketen

Volg een variant van PIM of ERP via Magento naar storefront, JSON-LD, feed en checkout. Zoek waar waarden worden getransformeerd of gecachet.

Laag 4: productiegedrag

Monitor na implementatie Search Console, Merchant Center-diagnostiek, feedafkeuringen, prijs- en voorraadmismatches en wijzigingen na deployments.

De kern: beschrijf wat de klant werkelijk koopt

De parent maakt het assortiment begrijpelijk. De simple variant is vaak het concrete artikel dat wordt verkocht, geleverd en op voorraad gehouden. Structured data moet die twee niveaus verbinden zonder de commerciële werkelijkheid plat te slaan.

Begin daarom met producttypen, identifiers en eigenaarschap. Kies daarna een URL- en variantmodel. Laat pas vervolgens de markup bouwen en controleer die naast de zichtbare pagina en de feed.

Wil je weten of jouw Magento-productvarianten correct worden begrepen en of prijs, voorraad, SKU, GTIN en URL overal overeenkomen? Vraag een Magento-analyse aan. Wij maken de parent-childmapping, leggen de gewenste output vast voor je webbouwer en valideren de implementatie met representatieve producten en uitzonderingen.

Lees je dit met een Magento-shop in gedachten? Wij helpen dagelijks Magento-shops met technische SEO, contentstrategie, linkbuilding en zoekwoordonderzoek.

Deel dit artikel
LinkedInXE-mail

MagentoSEO.nl

Onderdeel van Marketingcollega — SEO voor Magento & e-commerce.

Gratis SEO-analyse aanvragen
MagentoSEO logo

Klaar voor meer verkopen uit SEO?

Plan een gratis analyse - persoonlijk, handmatig, door een Magento SEO specialist.