WooCommerce SEO is alles wat je doet om de product- en categoriepagina's van een WooCommerce-webshop te laten ranken in Google. Omdat WooCommerce op WordPress draait, zit een deel in de WordPress-basis: indexering, sitemaps en een SEO-plugin. De rest is specifiek voor WooCommerce: de permalinkbasis voor producten, de basis voor categorieën en tags, attribuutarchieven en filters, variabele producten, Product structured data en de productvelden waar elke pagina uit bestaat.
Kort samengevat: kies een stabiele permalinkbasis voordat je catalogus groeit, houd dunne tag- en attribuutarchieven uit de index, bouw filters op globale attributen, geef elke variatie een eigen SKU en GTIN, zorg dat precies één plugin Product schema uitvoert, en vul de velden die een productpagina toont. Hieronder lopen we elke stap door met de echte instellingen en veldnamen uit WooCommerce. Wil je eerst de hele webshop doorlichten, gebruik dan onze SEO-audit checklist voor webshops.
Wat WordPress en WooCommerce standaard al voor SEO doen
Een verse WooCommerce-installatie is minder kaal dan veel mensen denken. Standaard krijg je:
- Aanpasbare slugs: elk product, elke productcategorie en elke producttag heeft een slug die je in de editor kunt wijzigen.
- Een XML-sitemap: WordPress maakt sinds versie 5.5 een eenvoudige sitemap op /wp-sitemap.xml. Yoast SEO en de meeste andere SEO-plugins zetten die uit en publiceren hun eigen sitemap.
- Product structured data: WooCommerce zet JSON-LD Product-markup op elke productpagina, met naam, omschrijving, SKU, hoofdafbeelding en een aanbieding op basis van prijs en voorraadstatus.
- Een barcodeveld: sinds WooCommerce 9.2 staat op het tabblad Voorraad een veld "GTIN, UPC, EAN of ISBN" (WooCommerce). Daarvoor had je een plugin nodig, of zette je de EAN in het SKU-veld.
Wat de basis niet doet: een aparte SEO-titel en meta description per product, bepalen welke archieven geïndexeerd worden, en merk of barcodes per variatie in de markup. Daarvoor installeer je Yoast SEO, Rank Math of een vergelijkbare plugin.
Controleer vóór alles één WordPress-instelling: Instellingen > Lezen > "Zoekmachine zichtbaarheid". Een testomgeving die live gaat terwijl "Zoekmachines ontmoedigen om deze site te indexeren" nog aangevinkt staat, is een van de vaakste redenen dat een nieuwe WooCommerce-webshop helemaal geen organisch verkeer krijgt.
Caching, afbeeldingen en plugins: de snelheid van je WooCommerce-webshop
Snelheid is het onderdeel waar de meeste algemene WooCommerce SEO-gidsen mee beginnen, en het telt vooral via de Core Web Vitals. Google meet laden (Largest Contentful Paint, goed binnen 2,5 seconde), reactiesnelheid (Interaction to Next Paint, goed onder 200 milliseconden) en visuele stabiliteit (Cumulative Layout Shift, goed onder 0,1), en zegt dat goede scores aansluiten bij wat de rankingsystemen belonen (Google Search Central). In een WooCommerce-webshop maken vier dingen het meeste verschil:
- Een paginacache met de juiste uitzonderingen. Cache product- en categoriepagina's, maar nooit Winkelwagen, Afrekenen of Mijn account: volgens WooCommerce moeten die dynamisch blijven omdat ze klantgegevens tonen (WooCommerce-documentatie voor developers).
- Afbeeldingen op weergaveformaat uploaden. Een leveranciersfoto van 4.000 pixels die de browser verkleint, is de gebruikelijke oorzaak van een trage Largest Contentful Paint op productpagina's. Verklein en comprimeer vóór het uploaden, of gebruik een plugin die WebP serveert.
- Minder plugins die op elke pagina laden. Sliders, pop-ups en uitbreidingen van paginabouwers laden hun scripts vaak op de hele site, ook op productpagina's die ze niet gebruiken.
- Overal HTTPS, met redirects vanaf oude http://-URL's, zodat productlinks en afbeeldingen niet door elkaar via beide protocollen laden.
Permalinks voor producten: kies een basis voordat je catalogus groeit
Onder Instellingen > Permalinks biedt WooCommerce vier opties voor productpermalinks (WooCommerce-documentatie). Voor het gewassen linnen dekbedovertrek dat we in dit artikel als voorbeeld gebruiken, levert dat op:
Opties voor productpermalinks in WooCommerce
| Standaard | voorbeeld.nl/product/gewassen-linnen-dekbedovertrek/ | Nee |
|---|---|---|
| Winkelbasis | voorbeeld.nl/winkel/gewassen-linnen-dekbedovertrek/ | Nee |
| Winkelbasis met categorie | voorbeeld.nl/winkel/dekbedovertrekken/gewassen-linnen-dekbedovertrek/ | Ja |
| Custom basis | Elk voorvoegsel dat je zelf invult, zoals voorbeeld.nl/beddengoed/gewassen-linnen-dekbedovertrek/ | Nee |
De optie met categorie in de URL ziet er netjes uit, maar koppelt elke product-URL aan een categorie. Verhuis je het dekbedovertrek bij een assortimentsronde van "Dekbedovertrekken" naar "Linnen beddengoed", dan verandert de URL. De standaardbasis of winkelbasis houdt product-URL's stabiel, hoe vaak je de categorieboom ook omgooit, en stabiele URL's houden hun links en rankinggeschiedenis. Een zoekwoord in de URL is een klein signaal; een vergeten redirect is een groot probleem.
Twee regels uit de WooCommerce-documentatie zijn hier belangrijk. De productbasis mag niet gelijk zijn aan een taxonomiebasis: een productbasis "winkel" en een categoriebasis "winkel" botsen. En elke wijziging van een basis verandert bestaande URL's, dus oude links en geïndexeerde pagina's geven een 404 zolang je geen redirects toevoegt. Geven productpagina's direct na een wijziging een 404, sla de permalinkpagina dan nog een keer op; dan worden de rewrite rules opnieuw opgebouwd.
Productcategorieën, tagpagina's en attribuutarchieven
WooCommerce maakt drie soorten archiefpagina's, en die verdienen elk een andere aanpak.
- Productcategorieën (/product-categorie/dekbedovertrekken/ in een Nederlandstalige installatie): je belangrijkste landingspagina's voor brede zoekopdrachten zoals "linnen dekbedovertrek". Laat ze indexeren, geef de belangrijkste een intro met echte koopinformatie en houd de boom ondiep genoeg zodat elke categorie genoeg producten bevat. De basis wijzig je onder Instellingen > Permalinks, bij Optioneel, bijvoorbeeld in /categorie/.
- Producttags (/product-tag/...): meestal ter plekke aangemaakt door wie het product bewerkt, met honderden bijna lege pagina's als gevolg, zoals "linnen", "Linnen" en "linen". Houd een korte lijst tags aan die bij echte zoekopdrachten passen, of zet tagarchieven op noindex in je SEO-plugin.
- Attribuutarchieven: een globaal attribuut krijgt alleen eigen pagina's als je onder Producten > Attributen "Archieven inschakelen?" aanvinkt. Dan toont voorbeeld.nl/kleur/salie/ alle saliegroene producten. Dat werkt voor een of twee attributen waar mensen op zoeken, zoals materiaal, en levert voor de rest dunne pagina's op.
Globale pa_-attributen of aangepaste productattributen
Bij attributen komen WooCommerce SEO en productdata samen. WooCommerce kent twee soorten:
- Globale attributen maak je aan onder Producten > Attributen, met een lijst waarden (termen) die je op meerdere producten gebruikt. Hun taxonomienaam begint met pa_ (pa_kleur, pa_maat). Alleen globale attributen voeden de productfilterblokken en -widgets, attribuutarchieven en consistente keuzelijsten voor variaties.
- Aangepaste productattributen typ je in op het tabblad Attributen van één product. Ze verschijnen bij Aanvullende informatie, maar je kunt ze niet hergebruiken, er niet op filteren en de spelling niet gelijk houden tussen producten.
Een catalogus met aangepaste attributen eindigt met "Salie", "saliegroen" en "Salie Groen" op drie producten, en een kleurfilter dat niet te bouwen is. Zet alles waar klanten op filteren of zoeken in een globaal attribuut met een vaste lijst waarden, en bewaar vrije aangepaste attributen voor details die maar bij één product horen.
Filters maken ook URL's. De attribuutfilters van WooCommerce voegen per attribuut een filter_-parameter toe aan de categorie-URL, zoals ?filter_kleur=salie, en elke combinatie van kleur, maat en prijs is weer een adres dat Google kan crawlen. De meeste webshops houden filtercombinaties uit de index en laten de categoriepagina's ranken. Een paar combinaties met veel vraag kun je uitbouwen tot echte landingspagina's met eigen links en tekst. In ons artikel over faceted navigation en SEO lees je hoe je dat per filter beslist.
Variabele producten: één indexeerbare URL, veel SKU's
Een variabel product in WooCommerce is één pagina met variaties eronder. Variaties krijgen geen eigen permalink, en dat is gunstig voor SEO: links, reviews en rankinggeschiedenis komen samen op één URL. De data per variatie blijft wel belangrijk, want Google Shopping, merchant listings en je eigen filters lezen die uit.
Elke variatie heeft een eigen afbeelding, SKU, "GTIN, UPC, EAN of ISBN", normale prijs en actieprijs, voorraadinstellingen en omschrijving (WooCommerce). Voor het dekbedovertrek in drie maten en drie kleuren zijn dat negen variaties, elk met:
- Een eigen SKU en GTIN. Een saliegroen overtrek van 200x220 en een antraciet overtrek van 240x220 zijn verschillende handelsartikelen met verschillende barcodes. In onze gids over GTIN, UPC en EAN lees je welke code waar hoort.
- Een variatiefoto per kleur, zodat de hoofdfoto wisselt als een klant salie kiest in plaats van zand.
- Alleen echte opties gemarkeerd als "Gebruik voor variaties". Maat en kleur zijn opties; materiaal en draaddichtheid zijn gewone attributen op het hoofdproduct.
- Alleen een standaardkeuze als die helpt. Zet "Standaard formulierwaarden" op de bestseller als die er duidelijk is. Anders toont de pagina de prijsrange, en dat is eerlijk.
De richtlijnen van Google voor structured data van productvarianten vragen dat elke variant via een eigen URL vooraf te selecteren is, meestal met parameters, en dat de groep één canonieke URL zonder variantkeuze houdt. WooCommerce selecteert opties vooraf op basis van attribute_-parameters in de URL, bijvoorbeeld /product/gewassen-linnen-dekbedovertrek/?attribute_pa_kleur=salie&attribute_pa_maat=200x220. Gebruik zulke URL's als variantlink in je Merchant Center-feed en houd de canonical op de URL van het hoofdproduct.
Volgens de WooCommerce-documentatie passen de keuzelijsten zich boven 30 variaties niet meer aan eerdere keuzes aan en tonen ze alle opties, zodat klanten combinaties kunnen kiezen die niet bestaan (WooCommerce). Heeft een product 6 maten, 8 kleuren en 2 stoffen (96 variaties), overweeg dan om het per stof te splitsen. Twee producten met heldere namen werken meestal beter voor klanten én Google dan één pagina met een lange lijst combinaties.
Product schema in Yoast SEO en Rank Math vergeleken
Omdat WooCommerce al Product-markup uitvoert, draait de keuze voor een plugin om wat er wordt toegevoegd en of je niet met twee Product-entiteiten op één pagina eindigt.
Productschema uit WooCommerce, Yoast SEO en Rank Math
| WooCommerce zelf | Een eenvoudige Product-entiteit met naam, omschrijving, SKU, afbeelding en aanbiedingen, plus beoordelingen als reviews aanstaan | Geen identifiers of merk per variatie | Niets, standaard aanwezig |
|---|---|---|---|
| Yoast SEO + Yoast WooCommerce SEO | Koppelt het product aan de rest van de schema-graph van Yoast (Yoast) | Per variatie velden voor GTIN8, GTIN12/UPC, GTIN13/EAN, GTIN14/ITF-14 en MPN, die in de structured data verschijnen | De add-on WooCommerce SEO |
| Rank Math | Schematype WooCommerce Product per product gekozen op het tabblad Schema; prijs, SKU en voorraadstatus komen uit WooCommerce (Rank Math) | Merk uit een producttaxonomie die je kiest onder General Settings > WooCommerce | Een GTIN-sleutel kiezen (Pro) |
Welke je ook gebruikt: open de broncode van één productpagina en zoek op application/ld+json. Je wilt één Product-entiteit waarvan prijs, valuta, beschikbaarheid, GTIN en merk overeenkomen met wat op de pagina staat. Wil je zien hoe complete markup voor jouw producttype eruitziet, maak dan een voorbeeld met onze productschema generator en vergelijk.
De plugin is alleen de printer. Is het merk leeg of staat de GTIN in een eigen veld dat de plugin niet uitleest, dan blijft de markup onvolledig, welke plugin je ook installeert.
De productvelden in WooCommerce die je rankings bepalen
Het meeste SEO-werk in een WooCommerce-webshop gebeurt in de producteditor. Veld voor veld:
- Productnaam: wordt de H1 en de standaardtitel. Zet het producttype en een bepalend kenmerk erin ("Gewassen linnen dekbedovertrek") en laat maat en kleur aan de variaties over.
- Slug: wordt bij de eerste keer opslaan uit de naam gemaakt. Maak hem korter voordat je publiceert, want later wijzigen vraagt om een redirect.
- Productomschrijving: de hoofdtekst op het tabblad Beschrijving. Zet erin wat een koper wil weten: materiaal, weving, stofgewicht, sluiting, wasvoorschrift en exacte afmetingen. Leverancierstekst die elke andere reseller ook gebruikt, voegt weinig toe.
- Korte productbeschrijving: staat in de meeste thema's naast de prijs. Twee of drie regels met de feiten die de aankoop bepalen.
- SEO-titel en meta description: pluginvelden in Yoast of Rank Math. Bouw ze op uit attributen in plaats van de plugin de eerste zin van de omschrijving te laten afkappen.
- Productafbeelding en galerij: alt-tekst wordt per afbeelding in de mediabibliotheek opgeslagen, dus één foto op 20 producten heeft één alt-tekst. Beschrijf wat er op de foto staat.
- SKU en "GTIN, UPC, EAN of ISBN": op het tabblad Voorraad van het hoofdproduct en van elke variatie.
- Attributen: waar mogelijk globaal, met "Toon op de productpagina" aangevinkt voor specificaties die klanten vergelijken.
- Categorieën: wijs één primaire categorie toe die past bij de broodkruimel die je wilt. Yoast en Rank Math hebben daar allebei een instelling voor.
- Gerelateerde producten: upsells en cross-sells leggen links tussen verwante producten, zodat crawlers ook producten diep in de catalogus vinden.
- Productzichtbaarheid: "Winkel en zoekresultaten", "Alleen winkel", "Alleen zoekresultaten" of "Verborgen". Verborgen producten zijn nog steeds via hun URL bereikbaar, dus een verborgen testproduct kan alsnog in Google belanden.
Wil je weten waarom elk van deze elementen telt, los van het platform, lees dan onze gids voor productpagina SEO.
Voor en na: één linnen dekbedovertrek in WooCommerce
Zo kwam het dekbedovertrek binnen via een leveranciersimport, naast hetzelfde product na een opschoning waarvoor geen nieuwe plugin nodig was. Na de opschoning is Dekbedovertrekken de primaire categorie, met Linnen beddengoed als tweede categorie.
Eén linnen dekbedovertrek, voor en na de opschoning
| Naam | Dekbedovertrek linnen 240x220 salie NIEUW | Gewassen linnen dekbedovertrek |
|---|---|---|
| Slug en URL | dekbedovertrek-linnen-240x220-salie-nieuw | /product/gewassen-linnen-dekbedovertrek/ |
| Omschrijving | Een leveranciersalinea van 40 woorden die elke reseller ook heeft | Weving, stofgewicht, afmetingen per maat, wasvoorschrift en waarom gewassen linnen vanaf de eerste nacht zacht aanvoelt |
| Attributen | Eén aangepast attribuut, "Kleur: salie | zand | antraciet", niet bruikbaar als filter | Globaal pa_kleur (Salie, Zand, Antraciet) en pa_maat (140x220, 200x220, 240x220) voor de variaties; materiaal (100% linnen), stofgewicht (165 g/m²) en sluiting (kokosknopen) als zichtbare attributen op het hoofdproduct |
| Variaties | Negen, zonder SKU's of GTIN's, allemaal met dezelfde zandkleurige foto | Negen, met SKU's van LDC-SAL-140 tot LDC-ANT-240, elk een eigen GTIN-13 en één foto per kleur |
| SEO-titel | Leeg, dus de plugin gebruikte de eerste 155 tekens van de omschrijving | Gewassen linnen dekbedovertrek, 140 tot 240 cm, 3 kleuren |
| Meta description | Leeg, dus de plugin gebruikte de eerste 155 tekens van de omschrijving | Dekbedovertrek van 100% gewassen linnen, 165 g/m², met sluiting van kokosknopen. In 140x220, 200x220 en 240x220, in salie, zand en antraciet. Wasbaar op 40 °C. |
Het product doet nu mee in de kleur- en maatfilters, voert een complete Product-entiteit uit en toont een meta description die voor het zoekresultaat is geschreven, in plaats van een afgekapte zin.
Zeven sluiproutes in WooCommerce die je organisch verkeer kosten
- De productbasis wijzigen in een live webshop zonder redirects. Alle geïndexeerde product-URL's breken tegelijk.
- Producttags laten woekeren. Honderden tagarchieven met één product verspillen crawlbudget en interne links.
- Filterbare kenmerken als aangepaste attributen opslaan. Geen filter, geen attribuutarchief, geen consistente waarden.
- Twee of drie bronnen van Product-markup. WooCommerce, een SEO-plugin en een reviewplugin zetten elk een eigen entiteit neer, soms met verschillende prijzen.
- Een paginabouwer-template dat de omschrijving overslaat. Toont het producttemplate het veld Beschrijving niet, dan komt je tekst nooit op de pagina.
- Uitverkochte producten verwijderen. Laat tijdelijk onbeschikbare producten online staan met de status niet op voorraad; stuur producten die uit het assortiment gaan door naar de beste vervanger of categorie.
- Leveranciersteksten ongewijzigd publiceren. Als dezelfde alinea op tientallen webshops staat, heeft Google weinig reden om jouw pagina hoger te zetten.
Andere platformen hebben hun eigen versie van deze problemen. Draai je meer dan één webshop, vergelijk dan met onze Shopify SEO checklist en de Magento SEO gids.
SEO-velden voor WooCommerce in bulk vullen met WISEPIM
Het meeste werk hierboven is veldwerk, herhaald voor elk product en elke variatie. WISEPIM koppelt met WooCommerce via de REST API. Een import haalt namen, SKU's, prijzen, omschrijvingen en korte beschrijvingen, voorraad, afbeeldingen, attributen, categorieën, tags en variaties op, plus merk, EAN en SEO-velden. In WISEPIM vul je ontbrekende attributen, omschrijvingen, SEO-titels en meta descriptions aan met AI, controleer je de volledigheid met Quality Guard en exporteer je het resultaat terug, inclusief de SEO-titel en meta description van Yoast als je webshop Yoast gebruikt. Variaties gaan terug onder hun hoofdproduct.
Je koppelt je webshop via de WooCommerce-koppeling en werkt op het gratis plan met maximaal 100 producten.

