Duplicate content in webshops: filters, sorteringen en varianten netjes oplossen
Duplicate content in een webshop komt zelden van gekopieerde teksten en bijna altijd van je eigen techniek: filters, sorteeropties en kleurvarianten maken honderden URL's met vrijwel dezelfde inhoud. Je lost het op met drie ingrepen: een zelfverwijzende canonical op pagina's die mogen ranken, `noindex, follow` op filtercombinaties die niemand zoekt, en één duidelijke keuze over varianten. Hieronder staat precies welke pagina in welke categorie hoort en hoe je in tien minuten controleert of het klopt.
Waarom duplicate content in een webshop bijna altijd van filters komt
Neem een schoenenwebshop met 900 producten. De categorie dames sneakers heeft filters voor maat (12 opties), kleur (9), merk (14) en prijsklasse (5). Alleen die vier filters leveren al 12 × 9 × 14 × 5 = 7.560 combinaties op. Zet je daar vier sorteeropties naast (prijs oplopend, prijs aflopend, nieuwste, populair), dan staan er 30.240 URL's klaar voor één categorie.
Op 95 procent van die pagina's staan dezelfde producten, dezelfde categorietekst en dezelfde titel. Google moet ze wel ophalen om dat te ontdekken.
Dat kost je twee dingen. Ten eerste crawlbudget: in Search Console zie je bij zo'n webshop vaak 2.000 tot 4.000 opgehaalde URL's per dag. Gaat daar de helft naar filtercombinaties, dan kan het tien dagen duren voordat 40 nieuwe producten worden opgepikt. Ten tweede kiest Google zelf welke variant hij toont, en dat is regelmatig `?sort=prijs-aflopend` in plaats van je nette categoriepagina.
Welke pagina's mogen in Google en welke niet
Maak een lijstje. Dat is saaier dan een plug-in installeren, maar het voorkomt dat je later je eigen instellingen niet meer snapt.
Wel indexeren:
- Categoriepagina's zonder parameters: `/dames/sneakers`
- Filterpagina's waar echt op gezocht wordt en die genoeg producten hebben, bijvoorbeeld `/dames/sneakers/wit`. Mijn vuistregel: minimaal 50 zoekopdrachten per maand in Nederland, minimaal 8 producten, en een eigen titel en H1.
- Productpagina's, één per product.
Niet indexeren:
- Alles met een sortering, weergave of paginagrootte: `?sort=`, `?view=`, `?per_page=`
- Twee of meer filters tegelijk: maat 39 én wit én merk X
- Maatfilters. Niemand zoekt op "sneakers maat 39 wit dames" in aantallen die de moeite waard zijn, en je voorraad wisselt te snel.
- Interne zoekresultaten: `?q=`
- Winkelwagen, kassa, account, verlanglijst
Bij een woonwebshop met 40 categorieën betekent dit in de praktijk: ongeveer 40 categoriepagina's plus 60 tot 120 filterpagina's mogen ranken. De rest krijgt `noindex, follow`. Van tienduizenden indexeerbare URL's naar een paar honderd.
Canonical instellen zonder dat je iets stuk maakt
Een canonical is geen bevel, het is een sterk advies aan Google: "dit is de hoofdversie". Drie regels houden het simpel.
Regel 1: elke pagina die mag ranken, krijgt een canonical naar zichzelf. Dus `/dames/sneakers` verwijst naar `/dames/sneakers`, inclusief hoofdletters, slashes en https. Precies zoals je hem intern linkt.
Regel 2: parametervarianten verwijzen naar de schone versie. `/dames/sneakers?sort=prijs-aflopend` krijgt een canonical naar `/dames/sneakers`. Je hoeft die pagina's daarnaast niet op `noindex` te zetten; kies er één. Gebruik je `noindex`, dan is de canonical naar een andere pagina overbodig en soms verwarrend.
Regel 3: bij paginering geen canonical naar pagina 1. `/dames/sneakers?page=3` verwijst naar zichzelf. Zet je hem naar pagina 1, dan raakt Google de producten op pagina 3 uit het oog. Dat merk je pas na maanden, als producten diep in een categorie geen enkele indruk meer krijgen.
Waar het misgaat: shops die de canonical op de hele site hardcoded naar de homepage laten wijzen (komt vaker voor dan je denkt na een thema-update), of die canonical naar een pagina met een 301-redirect of een 404 laten verwijzen. Controleer dit met de broncode van vijf pagina's: zoek op `rel="canonical"` en kijk of de URL klikbaar werkt.
Varianten: één productpagina of per kleur een aparte pagina
Een bouwwebshop met spaanplaatschroeven in 14 lengtes hoeft geen 14 productpagina's. Eén pagina met een keuzelijst, één canonical, één set beoordelingen. Al je linkwaarde komt op dezelfde plek terecht.
Bij kleur is het anders. Verkoop je een bank in negen stoffen en zoeken mensen op "hoekbank antraciet", dan is een eigen URL per kleur logisch: `/hoekbank-milo-antraciet`. Voorwaarde: eigen foto's, eigen titel, eigen eerste alinea. Kopieer je alleen de beschrijving en verander je het woord "antraciet", dan heb je negen pagina's die om dezelfde zoekopdracht vechten en geen enkele die wint.
Rekenvoorbeeld: die bank haalt 120 bezoekers per maand uit Google op één gebundelde pagina. Splits je naar negen kleuren zonder unieke inhoud, dan zie ik in de praktijk vaak 9 × 8 tot 15 bezoekers, dus ongeveer hetzelfde bezoek verdeeld over negen pagina's die allemaal net te zwak zijn om op pagina 1 te komen. Splits alleen als je per variant daadwerkelijk zoekvraag ziet. Voor je advertenties geldt hetzelfde: je productfeed heeft liever één sterke pagina dan negen halve.
Parameters en robots.txt: de fout die de meeste webshops maken
De klassieker: filterpagina's blokkeren in `robots.txt` én er `noindex` op zetten. Dat werkt niet. Google mag de pagina dan niet ophalen, dus hij ziet de `noindex` nooit, en de URL kan alsnog in de index blijven staan zonder omschrijving.
Praktische aanpak:
- Zet `noindex, follow` in de HTML van filter- en sorteercombinaties die je niet wil. Laat crawlen toe.
- Wacht vier tot acht weken tot Google ze uit de index heeft gehaald. Bij een shop met 30.000 van die URL's duurt dat langer dan bij 800.
- Pas daarna kun je zwaar vervuilde paden in `robots.txt` blokkeren om crawlbudget te sparen, bijvoorbeeld `Disallow: /*?sort=`.
- Link filtercombinaties intern niet met gewone links als je ze niet geïndexeerd wil hebben. Een filter dat via een POST-verzoek of JavaScript werkt zonder eigen URL is het schoonst, maar dat is geen verbouwing die je op een dinsdagmiddag doet.
Zorg daarnaast voor één versie van elke URL: https, met of zonder `www`, en zonder overbodige slash. Verwijs de rest met een 301. Drie versies van je homepage die alle drie laden, is duplicate content in zijn simpelste vorm.
Hoe je in tien minuten controleert of het werkt
Vier checks, elke maand:
- Search Console, rapport Pagina's. Kijk naar "Duplicaat, Google heeft een andere canonieke pagina gekozen dan de gebruiker". Staan daar categoriepagina's tussen, dan negeert Google je canonical omdat de inhoud te veel lijkt op een andere pagina.
- Aantal geïndexeerde pagina's versus je aantal producten. Heb je 900 producten en 40 categorieën, dan verwacht je ruwweg 1.000 tot 1.200 geïndexeerde URL's. Zie je 14.000, dan lekt er ergens een parameter.
- Zoek in Google op `site:jouwshop.nl inurl:sort`. Nul resultaten is goed.
- Crawlstatistieken in Search Console. Ligt het aantal opgehaalde URL's per dag structureel boven het aantal pagina's dat je hebt, dan crawlt Google vooral ruis.
Wil je dit soort controles niet elke maand zelf doen: Formyx houdt dagelijks je technische SEO in de gaten, stelt aanpassingen voor binnen grenzen die jij bepaalt en kan alles terugdraaien.
Veelgestelde vragen
Straft Google duplicate content in een webshop af?
Er is geen boete. Het probleem is verdunning: je linkwaarde en zoekwoorden verdelen zich over meerdere bijna identieke URL's, Google kiest soms de verkeerde en je crawlbudget gaat naar pagina's die niets opleveren. Het effect is een categoriepagina die op plek 14 blijft hangen in plaats van plek 6.
Moet ik filterpagina's blokkeren in robots.txt of op noindex zetten?
Begin met `noindex, follow` en laat crawlen toe, zodat Google de instructie kan lezen. Pas als de URL's uit de index zijn, kun je paden met `?sort=` of `?view=` in `robots.txt` blokkeren om crawlbudget te besparen.
Moet elke kleurvariant een eigen URL krijgen?
Alleen als er per kleur zoekvraag is en je unieke foto's, titel en tekst maakt. Bij maten, lengtes en aantallen bundel je altijd op één productpagina met een keuzelijst.
Lees ook
Bloggen voor een webshop: welke onderwerpen verkopen en welke alleen verkeer brengenSnelheid van je webshop: welke Core Web Vitals echt tellen voor je omzetLokaal aanbevolen worden door AI: zo noemt ChatGPT je winkel in je eigen stadProducttitels in je feed: wat AI-assistenten ervan makenLaat Formyx het bijhouden
SEO, Google Ads, Meta, backlinks en AI-zichtbaarheid elke dag gecontroleerd en bijgestuurd. 14 dagen gratis proberen, geen betaalgegevens nodig. Daarna vanaf €40 per maand excl. btw.
Gratis proberen →