Faceted navigation en SEO — duplicate content voorkomen
Terug naar blog

Faceted navigation en SEO — duplicate content voorkomen

AuthorRuthger Idema
24 juni 20268 min leestijd

Faceted navigation genereert makkelijk honderdduizenden duplicate URL's. Leer hoe je indexbloat voorkomt met canonicals, noindex en robots.txt in Magento en Shopify.

Faceted navigation en SEO — duplicate content voorkomen

Een webshop met 10.000 producten en gefilterde navigatie kan makkelijk 500.000 indexeerbare URL's aanmaken. De meeste daarvan zijn duplicaten. Google crawlt ze allemaal, verspilt je crawl budget en verdeelt je linkwaarde over pagina's die nooit zullen ranken. Faceted navigation is een van de meest onderschatte SEO-risico's in e-commerce — en tegelijk een van de meest waardevolle kansen als je het goed aanpakt.

Wij zien bij klanten met Magento 2 en Shopify regelmatig dat meer dan 70% van de gecrawlde URL's afkomstig zijn van layered navigation. Dat zijn URL's als /dames-schoenen?kleur=blauw&maat=38&merk=nike. Nutteloos voor SEO. Schadelijk voor je indexering.


Wat is het probleem precies?

Faceted navigation — ook wel layered navigation of gefilterde navigatie — laat bezoekers producten filteren op kleur, maat, merk, prijs en andere attributen. Elke combinatie van filters genereert een unieke URL. Met 10 kleuren, 15 maten en 20 merken zit je al snel op 3.000 combinaties per categorie — en dat is nog zonder prijsfilters.

Het gevolg:

  • Indexbloat: Google indexeert pagina's zonder zoekvraag, zonder unieke content, zonder inkomende links.
  • Duplicate content: /schoenen?kleur=blauw en /schoenen?kleur=blauw&maat=38 tonen grotendeels dezelfde producten.
  • Crawl budget verspilling: Googlebot besteedt tijd aan filter-URL's in plaats van aan je echte categorie- en productpagina's.
  • Gesplitste linkwaarde: Externe links naar /schoenen delen hun waarde met honderden filter-varianten.

Welke facetten wil je indexeren?

Niet alle gefilterde pagina's zijn slecht voor SEO. Sommige hebben zoekvraag-potentieel en verdienen een eigen plek in de index. De sleutel is het onderscheid maken tussen SEO-waardevolle facetten en ruis.

Indexeer wel

Facetten die overeenkomen met echte zoekopdrachten van gebruikers zijn indexeerbaar. Denk aan:

  • Merknaam: /nike-schoenen of /schoenen/nike
  • Categorie + merk: /dames-schoenen/adidas
  • Categorie + type materiaal: /leren-handtassen

Wij zien bij klanten dat merk-gecombineerde categoriepagina's doorgaans 15-40% van het organisch verkeer genereren. Die pagina's verdienen een canonical URL, een eigen H1, eigen meta description en unieke introductietekst.

Indexeer niet

  • Kleurfilters (tenzij de kleur de primaire zoekintentie is, zoals "rode jurk")
  • Maatfilters
  • Prijsranges
  • Combinaties van meerdere attributen (kleur + maat + merk)
  • Sorteervolgorde (?sort=prijs_asc)
  • Paginering via parameters (?p=3)

De stelregel: als niemand op die filtercombinatie googelt, hoeft Google er ook niet in te staan.


Technische aanpak: canonical, noindex en robots

Er zijn drie mechanismen om crawler-zichtbaarheid te beheersen. Ze werken op verschillende lagen en vullen elkaar aan.

MechanismeWerkingWanneer inzetten
rel=canonicalVerwijst link equity naar de canonieke URLGefilterde pagina's met lichte dubbeling
noindex meta tagPagina niet opnemen in index, wel crawlenFilter-URL's zonder SEO-waarde
robots.txt disallowPagina helemaal niet crawlenZware parameters die crawl budget kosten
URL-parameters in GSCGoogle informeren over parametergedragAanvullend, verouderd maar nog bruikbaar
Canonical is de meest gebruikte aanpak voor faceted navigation. Een gefilterde pagina verwijst naar de bovenliggende categoriepagina als canonical. Google weet dan: de linkwaarde gaat naar /dames-schoenen, niet naar /dames-schoenen?kleur=blauw. Noindex gebruik je wanneer de pagina wel gecrawld mag worden (voor interne functionaliteit), maar niet geïndexeerd. Nadeel: Google besteedt nog steeds crawl budget aan die pagina. Robots.txt is de zwaarste maatregel. Gebruik dit alleen voor parameters die geen enkele SEO-waarde hebben en massaal worden gegenereerd — zoals sessie-ID's, tracking-parameters of sorteerparameters.

Parameter-handling: de praktijk

De grootste valkuil is inconsistentie. Sommige filters gebruiken /path/waarde, andere ?parameter=waarde. Die inconsistentie maakt geautomatiseerde regels moeilijker toe te passen.

Kies één strategie en voer die consequent door:

Optie A: Schone URL's voor SEO-facetten, parameters voor de rest

SEO-facetten (merk, type) krijgen een schone URL-structuur: /schoenen/nike. Alle andere filters worden als query parameter toegevoegd en krijgen een noindex of canonical naar de schone URL.

Optie B: Alles via parameters, canonical naar categorie

Eenvoudiger te implementeren. Alle filter-URL's zijn parameters. De categoriepagina heeft een self-referencing canonical. Filter-URL's krijgen een canonical die verwijst naar de categoriepagina. Geen enkel filter wordt geïndexeerd — tenzij je handmatig uitzonderingen maakt voor waardevolle combinaties.

Optie A levert meer potentieel SEO-voordeel, maar vraagt meer technische discipline. Optie B is robuuster en veiliger voor grote catalogi.


Concrete regelset voor Magento 2

Magento 2 heeft ingebouwde layered navigation die standaard filtercombinaties als indexeerbare URL's aanmaakt. Dat wil je niet.

Stap 1: Canonical instellen op categoriepagina

In Magento 2 ga je naar Stores > Configuration > Catalog > Search Engine Optimization en zet je Use Canonical Link Meta Tag For Categories op Yes. Dit zorgt dat gecrawlde filter-URL's een canonical naar de categoriepagina terugsturen.

Stap 2: Robots-tag voor filter-URL's

Voeg via je theme of een module logica toe aan catalog_category_layered.xml om een noindex, follow meta tag te injecteren wanneer URL-parameters aanwezig zijn:

xml
<!-- Magento 2 layout XML — head.phtml override -->
<?php if ($block->getRequest()->getParam('cat')
    || $block->getRequest()->getParam('price')
    || $block->getRequest()->getParam('color')): ?>
<meta name="robots" content="noindex, follow" />
<?php endif; ?>

Gebruik je een aparte SEO-module (Mageworx, Amasty SEO Toolkit), dan beheer je dit via de moduleconfig zonder templatewijzigingen.

Stap 3: Robots.txt blokkeren voor zware parameters

Voeg toe aan je robots.txt:

txt
Disallow: /*?*sort=
Disallow: /*?*p=
Disallow: /*?*product_list_order=
Disallow: /*?*product_list_dir=

Sorteer- en pagineringsparameters hebben geen SEO-waarde. Ze uit de robots.txt houden is de efficiëntste maatregel.

Stap 4: Waardevolle facetten uitzonderen

Wil je merkpagina's wel indexeren? Maak dan voor die combinaties een aparte categorie of landingspagina aan in Magento 2, met een eigen URL, eigen content en eigen meta data. Dat is beter dan gefilterde URL's indexeerbaar maken.

Meer over de technische SEO-aanpak voor Magento 2 lees je op de Magento overzichtspagina.


Concrete regelset voor Shopify

Shopify gebruikt standaard query parameters voor alle collectiefilters: /collections/schoenen?filter.p.m.merk=Nike. Die URL's zijn standaard indexeerbaar — tenzij je dat afvangt.

Stap 1: Canonical in het theme

Shopify's standaard themes zetten een canonical naar de collectie-URL zonder parameters. Controleer of jouw theme dit correct doet in theme.liquid:

liquid
{% comment %} Canonical tag — theme.liquid {% endcomment %}
<link rel="canonical" href="{{ canonical_url }}" />

Shopify vult canonical_url automatisch in als de collectie-URL zonder filters. In de praktijk werkt dit correct voor de meeste Shopify themes — maar verifieer het via Google Search Console of een crawl-tool.

Stap 2: Robots.txt.liquid aanpassen

Shopify laat je de robots.txt.liquid aanpassen. Voeg toe:

liquid
{% comment %} Blokkeer filter-parameters {% endcomment %}
Disallow: /collections/*?*filter.
Disallow: /collections/*?*sort_by=

Dit voorkomt dat Googlebot crawl budget besteedt aan alle filtercombinaties.

Stap 3: Waardevolle filterpagina's als aparte collectie

Net als bij Magento: als een merk-categorie-combinatie zoekvraag-potentieel heeft, maak er dan een aparte collectie van in Shopify — met eigen content, eigen URL, eigen meta tags. Niet via filters.

Meer over Shopify SEO-configuratie lees je op de Shopify overzichtspagina.


Crawl budget: wanneer is het een prioriteit?

Kleine webshops (onder de 1.000 producten) merken weinig van crawl budget problemen. Voor hen is faceted navigation SEO-management meer "hygiëne" dan urgentie.

Grote catalogi (10.000+ producten) zien het effect direct in Google Search Console. Symptomen:

  • Veel gecrawlde URL's die nooit worden geïndexeerd
  • Lage verhouding geïndexeerd/gecrawld
  • Trage doorstroom van nieuwe producten naar de index

Wij zien bij Magento-klanten met grote catalogi dat na een correcte canonical + robots.txt implementatie de verhouding gecrawlde/geïndexeerde pagina's met 40-60% verbetert. Nieuwe producten verschijnen sneller in de index.


Wat je niet moet doen

Een aantal aanpakken die regelmatig fout gaan:

JavaScript-only filters zonder server-side canonicals. Als Googlebot de canonical alleen via JavaScript laadt, is er een risico dat die wordt genegeerd. Zet canonicals altijd server-side in de HTML. Alle filters blokkeren via robots.txt. Dan kan Google die pagina's niet crawlen en verwerkt hij de canonical niet. Gebruik robots.txt alleen voor parameters zonder enige SEO-waarde. Inconsistente canonical implementatie. Sommige pagina's hebben een self-referencing canonical, andere verwijzen naar de categorie. Google raakt verward en negeert canonicals vaker. Kies één strategie en pas die overal toe. Vertrouwen op Google Search Console URL-parameters tool. Die tool is officieel verouderd en wordt door Google niet meer actief onderhouden. Bouw niet op GSC-parameterinstellingen als primaire oplossing.

Meten of het werkt

Implementatie is stap één. Meten is stap twee.

Gebruik Google Search Console: check de Coverage rapportage op "Excluded" URL's. Een daling in "Crawled – currently not indexed" pagina's is een goed teken. Gebruik een crawl-tool (Screaming Frog, Sitebulb) om te verifiëren dat filter-URL's de juiste canonical of noindex bevatten.

Verwacht niet dat resultaten direct zichtbaar zijn. Google herindexeert gecrawlde pagina's doorgaans over weken tot maanden. Houd een baseline bij voor en na de implementatie.

Heb je een complexe catalogus of wil je dit professioneel aanpakken? Neem dan contact op — wij kijken graag mee.


Veelgestelde vragen

Wat is het verschil tussen canonical en noindex bij faceted navigation?

Een canonical zegt: "deze pagina bestaat, maar de linkwaarde hoort bij een andere URL." De pagina kan nog steeds in de index terechtkomen als Google de canonical negeert. Een noindex zegt: "indexeer deze pagina niet." Gebruik canonical als de gefilterde pagina vergelijkbare content heeft als de categorie. Gebruik noindex als de pagina echt geen indexeerbaar doel dient.

Moet ik alle filter-URL's blokkeren in robots.txt?

Niet alle. Blokkeer alleen parameters die zeker geen SEO-waarde hebben en veel crawl budget kosten: sortering, paginering, sessie-ID's, tracking-parameters. Filter-URL's met potentiële SEO-waarde blokkeer je niet via robots.txt, want dan kan Google de canonical ook niet verwerken.

Hoe weet ik welke facetten indexeerbaar zijn?

Kijk of er zoekvolume is op de combinatie van categorie + attribuutwaarde. Tools als Ahrefs, Semrush of Google Keyword Planner helpen daarbij. Als er maandelijks meer dan 50-100 zoekopdrachten zijn op "nike dames schoenen" of "leren handtassen zwart", heeft een aparte landingspagina zin. Zo niet, dan noindex.

Werkt dit anders voor Magento dan voor Shopify?

De SEO-logica is hetzelfde. De technische implementatie verschilt. Magento 2 biedt meer controle via layout XML, module-configuratie en server-side logica in PHP. Shopify is beperkter: je hebt theme.liquid en robots.txt.liquid, maar minder granulariteit. Complexe catalogi zijn daarom technisch eenvoudiger te beheren in Magento — mits goed geconfigureerd.

Ruthger Idema

Geschreven door Ruthger Idema

15+ jaar ervaring in e-commerce development. Gespecialiseerd in Magento, Shopify en Laravel maatwerk.

Meer over ons team →
Deel dit artikel:

Wil je jouw e-commerce naar het volgende niveau?

Plan een vrijblijvend gesprek met onze experts over Magento, Shopify of Laravel maatwerk.

Plan een Tech Check