Productfilters en SEO in PrestaShop: wat doe je met duizenden filter-URL’s?
Productfilters, ook wel facetnavigatie, zijn de filters in categorieën: kleur, maat, prijs, materiaal. Het SEO-probleem is dat elke filtercombinatie een nieuwe URL maakt. In PrestaShop zijn dat URL’s met de parameter `?q=`. Het plan is eenvoudig: kijk hoeveel Google er ziet, blokkeer onnodige parameters in robots.txt, en maak van de filters waar klanten echt naar zoeken echte categorieën.
Auteur: Het TellMyShop-team. Een gids voor eigenaren van PrestaShop-winkels: de oorzaak, de oplossing met de hand en hetzelfde werk in een gesprek met de chat.
Laatst bijgewerkt: · 6 min lezen
Waar komen duizenden filter-URL’s in PrestaShop vandaan?
Filters in categorieën worden geregeld door de module voor facetzoeken die met PrestaShop wordt meegeleverd. Als een klant een filter aanvinkt, voegt de module die keuze toe aan de URL van de categorie, bijvoorbeeld:
/12-sofas?q=Colour-Grey
/12-sofas?q=Colour-Grey/Material-Linen
/12-sofas?q=Colour-Grey/Material-Linen/Price-€-1000-2500
/12-sofas?q=Colour-Grey/Material-Linen&order=product.price.asc
Voor Google is elk van deze regels een aparte URL. Een categorie met vijf filters van elk een paar waarden levert honderden combinaties op, plus sorteringen en lijstpagina’s. In een webshop met enkele tientallen categorieën loopt dat op tot duizenden URL’s die bijna dezelfde producten tonen. Hoe de module zelf werkt, staat in de PrestaShop-documentatie over facetzoeken.
Google beschreef dit probleem in zijn artikel over facetnavigatie. Daarin staat dat filters de meest voorkomende bron van overmatig crawlen zijn die website-eigenaren melden. De crawler verspilt tijd aan filtercombinaties en bereikt nieuwe producten later.
Heeft jouw webshop dit probleem eigenlijk wel?
Niet elke webshop. Search Console geeft het antwoord, niet het aantal filters in de backoffice.
| Wat je ziet | Wat het betekent | Wat je doet |
|---|---|---|
Kleine webshop, een paar filters, weinig ?q=-URL’s in het paginarapport | Google redt het zelf | niets, een canonical naar de categorie is genoeg |
Veel ?q=-URL’s in het paginarapport, gemeld met een andere canonical | Google bezoekt filters maar toont ze niet | overweeg de parameter in robots.txt te blokkeren |
| Nieuwe producten doen er lang over om in Google te komen | de crawler verspilt tijd aan filters | blokkeer de filter- en sorteerparameters |
| Filter-URL’s verschijnen in de resultaten in plaats van de categorie | de signalen zijn gemengd | controleer de canonical en links naar filters |
| Mensen zoeken in Google naar combinaties als “grijze linnen bank” | er is vraag naar een gefilterde pagina | maak een categorie in plaats van het filter te indexeren |
Controleer ook of de filters überhaupt goed werken. Lege resultaten en verkeerde aantallen naast waarden zijn een apart probleem, besproken in het bericht PrestaShop-filters werken niet.
Het plan: hoe ruim je filters op voor Google?
Begin met gegevens en blokkeer als laatste. De volgorde is belangrijk, want een blokkade in robots.txt sluit Google af van alles onder die parameter.
- Tel de filter-URL’s. Kijk in Search Console, in het paginarapport, hoeveel URL’s
?q=bevatten en in welke staat ze zijn. Noteer een paar voorbeelden. - Kies de filters waar mensen naar zoeken. Bekijk de zoekopdrachten in het prestatierapport en wat klanten in de zoekfunctie van de webshop typen. Kleur en materiaal in één categorie kunnen vraag hebben. Een prijsklasse bijna nooit.
- Maak van die filters categorieën. Maak een subcategorie, bijvoorbeeld Linnen banken, wijs er producten aan toe en schrijf een korte beschrijving. Categoriebeschrijvingen voor Google bespreken we in het bericht over de categoriebeschrijving in PrestaShop.
- Vul productkenmerken in. Het filter en de nieuwe categorie werken alleen als producten hun kenmerken ingevuld hebben, bijvoorbeeld Materiaal. Lege kenmerken kun je in batches invullen.
- Blokkeer de rest in robots.txt. Voeg regels toe voor de filter- en sorteerparameters. Blokkeer lijstpagina’s niet als die de enige weg zijn waarlangs Google oudere producten bereikt.
- Controleer na een paar weken. Het aantal gecrawlde
?q=-URL’s moet dalen. Staan de nieuwe categorieën in Google, kijk dan of ze bezoek krijgen.
Een voorbeeld van robots.txt-regels voor de filter- en sorteerparameters:
Disallow: /*?q=
Disallow: /*&q=
Disallow: /*?order=
Disallow: /*&order=
Dit is een voorbeeld. Open voor gebruik je eigen bestand en kijk of er al vergelijkbare regels in staan. Onthoud ook dat de knop om robots.txt te genereren in de backoffice handmatige toevoegingen overschrijft. Meer over het bestand zelf lees je in het bericht over robots.txt in PrestaShop. Een voorzichtige aanpak van zulke blokkades staat ook in de samenvatting van de Google-documentatie door PPC Land.
Wat je niet doet met filter-URL’s
Een paar ideeën komen in webshops steeds terug en doen meestal kwaad:
- Noindex en een blokkade in robots.txt tegelijk. De crawler gaat een geblokkeerde pagina niet in, dus hij ziet de noindex niet. Kies één methode.
- Links naar filters in het menu en de footer. Wijst het menu naar
?q=Colour-Red, dan krijgt Google het signaal dat dit een belangrijke pagina is. Link naar categorieën. - Een hele categorie blokkeren in plaats van de parameter. Een te breed geschreven regel sluit ook de categorie zonder filters af.
- Alle filters indexeren omdat ze beschrijvingen hebben. Een beschrijving die op duizend combinaties is geplakt, maakt er geen goede pagina’s van. Kies er een paar en maak er categorieën van.
Hoe de chat helpt met filters in je webshop
Je chat (Claude of ChatGPT) begint bij wat Google ziet. Hij opent een categorie met filters zoals een browser dat doet, controleert de canonical, meta robots en het serverantwoord, leest daarna robots.txt en vergelijkt de regels met de filter-URL’s.
Jij: Search Console toont heel veel ?q=-URL’s in de categorie Banken. Wat moet ik daarmee?
Je chat: De filterpagina’s hebben een canonical naar de categorie Banken, dus ze concurreren er niet mee in de resultaten. Maar robots.txt heeft geen regel voor de filterparameter, dus Google bezoekt ze. Ik stel voor toe te voegen:
Je chat: Voordat we dat doen: 14 banken hebben het kenmerk Materiaal: Linnen. Wil je een aparte pagina Linnen banken, dan kan ik een subcategorie maken, voorlopig uitgeschakeld, en deze producten eraan toewijzen.
Jij: Eerst de subcategorie, dan robots.txt.
Je chat: Prima. Ik laat een voorbeeld van de subcategorie zien met de lijst van 14 producten. Robots.txt wijzig ik zodra je de schakelaar Onderhoud aanzet, met een back-up van het bestand.
oude versie: (geen regels voor filters)
nieuwe versie: Disallow: /*?q=
nieuwe versie: Disallow: /*&q=
De getallen in het voorbeeld zijn ter illustratie.
In TellMyShop Free opent de chat categorieën met filters zoals Google ze ziet en vertelt hij wat je in Search Console moet controleren. Hij slaat niets op. In TellMyShop Pro maakt hij categorieën, wijst hij producten toe en vult hij kenmerken in, direct na het activeren van de licentie, altijd met een voorbeeld en jouw goedkeuring. Een voorbeeldverzoek voor kenmerken staat in de use case productkenmerken invullen voor filters. Voor het wijzigen van robots.txt is de schakelaar Onderhoud nodig, voor 3 uur, en de module maakt voor het opslaan een back-up van het bestand. De use case een bestand repareren dat Google blokkeert laat zien hoe.
TellMyShop heeft geen toegang tot Search Console. De rapporten lees je zelf of je plakt voorbeeld-URL’s in de chat. Pro-pakketten staan op de pagina prijzen.
Vragen en antwoorden
Schaden PrestaShop-filters je posities in Google?
Filters zelf niet. Problemen ontstaan als Google duizenden filtercombinaties bezoekt in plaats van nieuwe producten. In een kleine webshop met een paar filters hoef je meestal niets te doen. Bij een grote catalogus loont het om die URL’s te beperken.
Is het genoeg als een filterpagina een canonical naar de categorie heeft?
Een canonical helpt, omdat die Google vertelt welke URL in de resultaten hoort. Maar hij houdt de crawler niet tegen. Toont Search Console een heel groot aantal URL’s met een filterparameter, dan is een canonical alleen niet genoeg.
Blokkeer ik filters in robots.txt of geef ik ze noindex?
Wil je niet dat Google filter-URL’s bezoekt, blokkeer de parameter dan in robots.txt. Noindex werkt alleen als de crawler de pagina kan bereiken, dus de twee methodes combineer je niet op dezelfde URL’s.
Hoe geef ik een zoekterm als “leren banken” een eigen pagina?
Maak een subcategorie of een aparte categorie met de passende producten, en schrijf er een eigen beschrijving voor. Zo’n pagina heeft een vaste URL, titel en inhoud, en een pagina met een aangevinkt filter heeft dat niet.
Kan TellMyShop filter-URL’s blokkeren?
TellMyShop Pro maakt een robots.txt-regel klaar in een voorbeeld en slaat die op zodra je de schakelaar Onderhoud aanzet, met een back-up van het bestand. TellMyShop Free laat zien hoe Google pagina’s met filters ziet, maar verandert niets.
PrestaShop is een geregistreerd handelsmerk van PrestaShop SA. Claude is een handelsmerk van Anthropic PBC. ChatGPT en OpenAI zijn handelsmerken van OpenAI. TellMyShop is niet gelieerd aan deze bedrijven.