Shopify loste filterduplicatie al op. Je meta description niet.
Adviezen over categoriepagina SEO op Shopify gaan meestal over filters en dubbele content. Dat probleem heeft het platform al opgelost. Wij hebben op 12 augustus 2026 zeventien Nederlandse Shopify-winkels doorgemeten: op alle zeventien wijst een gefilterde collectie-URL netjes terug naar de kale categoriepagina. Geen enkele uitzondering.
Wat wél stukgaat, staat een laag lager en kost geen ontwikkelwerk. Bij 7 van de 17 shops is de meta description van de categoriepagina onbruikbaar. Zes serveren helemaal geen tag. Eén serveert een tag met zeven tekens erin. In alle zeven gevallen is de oorzaak identiek: één leeg tekstveld in de Shopify-admin.
Je betaalt dus voor uren aan een probleem dat het platform zelf afhandelt, terwijl het veld dat je categoriepagina zichtbaar maakt leeg blijft. En sinds mei 2026 hangt aan datzelfde veld een derde functie die vrijwel niemand invult: de context die AI-agenten van je winkel te zien krijgen.
Hoe wij dit gemeten hebben, en waar de meting ophoudt
Wij hebben achttien Nederlandse webshops geselecteerd waarvan de Shopify-herkomst is bevestigd via de powered-by-responseheader. Per shop pakten we de eerste echte collectie uit sitemap_collections_1.xml. Dat is bewust geen redactionele keuze: zo voorkomen we dat we de mooiste categoriepagina van elke winkel uitkiezen.
De keerzijde is dat een deel van de gemeten pagina's randcollecties zijn, met slugs als test-collection of no-category. Voor de canonical-meting maakt dat niets uit, want dat gedrag komt uit het platform en niet uit de redactie. Voor de meta description is het een reële beperking: een winkel kan zijn hoofdcategorieën wél hebben ingevuld en zijn restcollecties niet. Lees de aantallen hieronder dus als een ondergrens voor wat er goed staat, niet als een oordeel per merk.
Eén domein viel af. Dat adres beantwoordt elk pad met de homepage-HTML, inclusief /agents.md, dus daar valt geen collectiepagina en geen agentbestand te meten. De steekproef is daarom zeventien in plaats van achttien.
Dit is een steekproef van zeventien gemeten shops, geen uitspraak over de Nederlandse e-commerce als geheel. We noemen de aantallen daarom als aantallen en niet als marktcijfer. Elk cijfer hieronder komt uit die meting of uit een primaire bron die we linken.
Wat Shopify al voor je regelt op je categoriepagina's
Twee beschermingslagen staan standaard aan, en ze werken. De eerste is de canonical-tag. Wij hebben per shop meerdere URL-varianten opgehaald en gekeken welke canonical eruit komt.
| URL-variant | Canonical die Shopify uitserveert | Resultaat |
|---|---|---|
/collections/x?filter.v.availability=1 |
de kale /collections/x |
17 van de 17 |
/collections/x?sort_by=price-descending |
de kale /collections/x |
17 van de 17 |
/collections/x?page=2 |
zichzelf, mét ?page=2 |
16 van de 17 |
De tweede laag zit in de robots.txt. Bij alle zeventien shops staan de Shopify-regels die sorteer-URL's en meervoudige filtercombinaties uitsluiten er nog gewoon in. Geen enkele shop heeft ze weggehaald. Bij vijf meertalige winkels staan diezelfde regels meerdere keren in het bestand, ook in een variant met taalprefix, wat het bestand langer maakt maar niets aan de strekking verandert.
Dat tweede patroon is preciezer dan het lijkt: het grijpt pas in bij twee of meer filters tegelijk. Eén filter blijft dus crawlbaar, maar canonicaliseert naar de basispagina. Dat is coherent ontworpen, geen gat.
Staat "filter-indexatie afvangen" of "canonicals inrichten op collecties" als post op je offerte voor een Shopify-winkel, dan betaal je voor werk dat het platform al doet. Vraag welke URL het probleem laat zien. De enige faalmodus die je wél serieus moet controleren, is een thema dat de canonical-tag zelf overschrijft. Dat komt voor, en het is met één request per sjabloontype vast te stellen.
Waarom canonicaliseren naar pagina 1 juist een fout is
Van de zeventien gemeten shops houdt pagina 2 van een collectie bij zestien zijn eigen canonical. De ene afwijker hebben we nagelopen: die collectie heeft geen tweede pagina, dus er valt niets naar te canonicaliseren.
Dat zestien-op-zeventien is geen zwakte van het platform maar precies wat je wilt. Pagina 2 toont andere producten dan pagina 1. Wie pagina 2 naar pagina 1 laat canonicaliseren, vertelt Google dat die producten geen eigen vindbare pagina nodig hebben. Bij een collectie van driehonderd artikelen verdwijnt op die manier het overgrote deel van je assortiment uit je eigen categoriestructuur.
Toch zingt het advies "canonicaliseer paginatie naar de eerste pagina" nog steeds rond in Nederlandse SEO-content. Het is een overblijfsel uit de tijd van rel=prev/next, en het is precies het type advies dat schade doet zodra iemand het uitvoert op een winkel waar het al goed stond.
Hier zit meteen een test voor je eigen shop. Open een collectie met meer dan één pagina, ga naar pagina 2 en bekijk de broncode. Staat er een canonical zonder ?page=2, dan heeft iemand het thema aangepast en heb je een echt probleem. Staat ?page=2 er wel in, dan is dit onderdeel klaar en kun je het van je lijst schrappen. Hoe je de rest van je technische basis nagaat, staat in onze checklist voor SEO op webshops.
Het echte gat in categoriepagina SEO: 7 van de 17 mist een meta description
Zelfde meting, ander veld. Wij hebben op elke gemeten collectiepagina de meta name="description" uitgelezen. De uitkomst valt in drie groepen uiteen.
| Situatie | Aantal | Wat je ziet in de broncode |
|---|---|---|
| Gevuld en bruikbaar | 10 van de 17 | Een zin van ruwweg 120 tot 330 tekens over de categorie |
| Tag volledig afwezig | 6 van de 17 | Geen meta name="description" in de head |
| Aanwezig maar leeg | 1 van de 17 | content="- Patta", zeven tekens |
Dat laatste geval is het scherpste bewijsstuk, omdat het zichtbaar maakt wat er onder de andere zes gebeurt. Op de tops-collectie van Patta staat in de broncode een streepje en de merknaam, en verder niets. Het thema gebruikt een patroon in de trant van "collectiebeschrijving, streepje, winkelnaam". Bij een lege collectiebeschrijving blijft alleen het staartje over. De zes shops zonder tag draaien een thema dat in datzelfde geval helemaal niets uitserveert. Dat is dus geen nalatigheid van de winkelier maar een themapatroon dat op een leeg veld stukloopt.
De oorzaak is bij alle zeven identiek en het is geen technische fout: het veld collection.description is niet ingevuld. Dat is een tekstvak in de Shopify-admin, geen ontwikkelticket. Wie dit als "technische SEO" op de begroting zet, verkoopt het verkeerde werk.
Wat het kost om het te laten staan, laat zich niet uit onze meting aflezen, want wij hebben geen zoekresultaten vastgelegd. Wat wel vaststaat: zonder eigen omschrijving stelt Google er zelf een samen uit de paginatekst, en op een categoriepagina zonder inleiding bestaat die paginatekst uit productnamen en prijzen. Je laat de belangrijkste regel van je zoekresultaat dan over aan de toevallige volgorde van je collectie.
Eén leeg veld, drie opbrengsten
De reden dat wij hier zo op hameren, is de stapeling. collection.description is niet één veld met één functie, maar één veld met drie afnemers: de bezoeker die bovenaan de categoriepagina leest waarom jouw assortiment zo is samengesteld, Google dat er in vrijwel elk Shopify-thema de meta description uit haalt, en de agentbestanden die verderop in dit artikel aan bod komen.
Een categoriepagina zonder inleiding is een filterresultaat, geen pagina met een standpunt. Dat verschil is precies waar merkopbouw en vindbaarheid elkaar raken: de tekst die een bezoeker overtuigt, is dezelfde tekst die je zoekresultaat leesbaar maakt.
Eén schrijfronde over je twintig belangrijkste collecties raakt daarmee drie kanalen tegelijk. Wij nemen die ronde inmiddels standaard mee in elke Shopify-oplevering, en bij bestaande shops is het meestal het eerste dat we aanpakken, nog voor er aan het thema wordt gesleuteld. Hoe dat past in een bredere bouw staat bij onze webshopbouw en in de opzet van projecten als Drivv.
Wat onze meting toevoegt aan het agentbestand
Wat /agents.md is en hoe je het overschrijft, hebben we uitgewerkt in merkpositionering voor AI-agenten. Kort: elke Shopify-winkel serveert het bestand, en sinds de changelog van 28 mei 2026 kun je het met een eigen sjabloon overschrijven.
Deze meting bevestigt dat beeld op een grotere set en voegt er twee dingen aan toe.
Het eerste is bewijs dat de inhoud autogegenereerd is, zonder dat we dat hoeven aan te nemen. Eén winkel in de set mist als enige het blok over winkelvoorwaarden, en precies die winkel heeft geen voorwaarden gepubliceerd. De inhoud volgt de winkeldata, niet een keuze van de eigenaar.
Het tweede is dat het bestand niet dood in een map ligt. Bij een van de gemeten shops noemt het sitemap-indexbestand als eerste vermelding een aparte sitemap voor agent-ontdekking, met daarin precies één URL: het eigen /agents.md, met een wekelijkse verversingsfrequentie. Shopify wijst agenten er dus actief naartoe.
Wat er in die fabrieksversie staat, is voor een merk teleurstellend. De tekst stuurt agenten naar Shopify's eigen infrastructuur: een aankoopskill, een protocol-endpoint, een productinterface. Over jouw positionering, je categorieën of waarom een koper bij jou moet zijn, staat er niets.
llms.txt verkopen als SEO is onzin, agents.md invullen is dat niet
Google is hier ondubbelzinnig over. In de eigen AI-documentatie staat dat het prima is om llms.txt-bestanden aan te maken voor andere diensten, maar dat dit de zichtbaarheid in Google Search niet helpt en niet schaadt, omdat Google Search ze negeert. Dezelfde pagina ruimt nog twee aannames op: content in stukjes knippen "voor AI", en gestructureerde data als voorwaarde voor generatieve zoekresultaten.
Toch bieden meerdere Nederlandse bureaus llms.txt op dit moment aan als losse SEO-dienst. Dat is geen kwestie van interpretatie. Het staat er letterlijk anders.
Tegelijk is agents.md geen Google-kanaal. Het is de rail voor agent-gedreven aankopen, en die wordt door Shopify zelf aan crawlers aangeboden. Dat onderscheid maakt vrijwel niemand in de Nederlandse markt, en het is het enige onderscheid dat hier telt.
| Bestand | Wie leest het | Effect op je Google-positie | Zinvol om in te vullen |
|---|---|---|---|
llms.txt |
Externe diensten die het bestand ondersteunen | Geen, Google negeert het | Alleen als vervolg op agents.md |
agents.md |
Agenten die via Shopify kopen | Geen | Ja, dit is de plek voor merkcontext |
collection.description |
Bezoeker, Google én agents.md | Direct, via de meta description | Ja, dit is de eerste actie |
Wij bieden llms.txt daarom niet aan als SEO-dienst. Wat we wél doen is de merk-, categorie- en retourcontext in gewone taal in agents.md zetten, zodat een agent iets zinnigs over de winkel kan doorgeven. Hoe dat samenhangt met de opbouw van je categoriepagina's staat in ons stuk over GEO-ready categoriepagina's.
Shopify knijpt bots af die hun requests niet ondertekenen
Nog een verandering die stil is doorgevoerd en die je audit raakt. Shopify meldde op 7 mei 2026 dat het strengere rate limits toepast op bots en agenten die de Storefront API en door Shopify gehoste winkelpagina's benaderen. Bots die hun requests niet ondertekenen, vallen in de strengste categorie. In dezelfde aankondiging staat dat merchants die hun eigen winkel willen crawlen kant-en-klare Web Bot Auth-handtekeningen in de Shopify-admin vinden.
Dat verklaart een klasse storingen die eruitziet als een crawlfout. Draai je een crawler over een Shopify-winkel en krijg je halverwege een muur van 429-antwoorden, dan is de winkel niet stuk en je crawler ook niet. Je zit in de strengste bucket omdat je niet ondertekent.
De volgorde die wij nu aanhouden: eerst de handtekening uit de admin van de klant halen, dan pas de audit draaien. Onze eigen meting van deze week liep sequentieel met een pauze van een tot twee seconden per request en kreeg geen enkele 429. Dat is geen bewijs dat de handtekening de oplossing is, maar het past bij het beeld.
Eén verwant punt uit dezelfde changelog, want dat kost anders stille schade. Shopify bracht op 17 juni 2026 een nieuw collectiemodel uit. De aankondiging vermeldt dat collecties die de nieuwe mogelijkheden gebruiken, in oudere API-versies worden weggefilterd omdat het oude model ze niet kan weergeven. Een SEO-, feed- of exporttool op een oudere API-versie ziet die collecties dus niet, zonder foutmelding. Ze ontbreken gewoon. Check op welke versie je apps draaien voor je conclusies trekt uit een export.
De volgorde die wij aanhouden
In zes jaar Oase Creative hebben we genoeg audits gezien die technisch klopten en commercieel niets opleverden. Deze meting legt uit waarom dat gebeurt: het deel van SEO dat het makkelijkst te automatiseren is, is ook het deel dat het platform al heeft opgelost. Daar gaan de uren heen, want daar rolt een rapport uit.
Op een Shopify-shop draaien wij de volgorde daarom om. Eerst de collectiebeschrijvingen voor de belangrijkste categorieën, omdat dat één actie is met drie opbrengsten. Daarna agents.md met echte merkcontext in plaats van de fabrieksversie. Pas daarna het thema, en dan specifiek de twee dingen die echt stuk kunnen: een thema dat de canonical overschrijft, en apps op een oude API-versie die collecties missen.
Wat we niet meer doen is uren begroten op filter- en sorteerduplicatie. Bij zeventien van de zeventien gemeten shops was daar niets aan de hand. Voert een audit dat toch op als bevinding, zonder een URL waar het misgaat, dan is het een sjabloonbevinding.
Een categoriepagina die uitlegt hoe jij je assortiment hebt samengesteld, doet werk dat een technische fix nooit doet. Wil je zien hoe je shop ervoor staat, dan kijken we in een SEO-traject eerst naar deze drie velden voor we aan iets anders beginnen.
Veelgestelde vragen
Moet ik filter-URL's op Shopify blokkeren voor Google?
Nee. Shopify serveert op een gefilterde collectie-URL al de canonical van de kale collectie. Wij maten dat bij 17 van de 17 Nederlandse Shopify-shops, zonder uitzondering. Daarnaast staat in de robots.txt van diezelfde 17 shops de Shopify-regel die sorteer-URL's uitsluit nog gewoon aan.
Waarom canonicaliseert Shopify pagina 2 van een collectie naar zichzelf?
Omdat pagina 2 andere producten toont dan pagina 1. Een canonical naar pagina 1 zou die producten uit de index duwen. Bij 16 van de 17 gemeten shops houdt pagina 2 zijn eigen canonical. De ene afwijker bleek bij natelling geen tweede pagina te hebben.
Wat is het grootste SEO-gat op een Shopify-categoriepagina?
Een ontbrekende of lege meta description. Bij 7 van de 17 gemeten Nederlandse shops was die onbruikbaar: 6 hadden helemaal geen tag en 1 serveerde alleen de merknaam met een streepje ervoor. De oorzaak is in alle gevallen hetzelfde lege veld in de Shopify-admin.
Wat is /agents.md op een Shopify-winkel?
Een markdown-bestand dat elke Shopify-winkel automatisch serveert met instructies voor AI-agenten. Sinds 28 mei 2026 kun je het overschrijven met een eigen template. Bij alle 17 shops die wij konden meten stond de door Shopify gegenereerde tekst er nog in.
Helpt een llms.txt-bestand mijn positie in Google?
Nee. Google schrijft in de eigen AI-documentatie dat het die bestanden negeert en dat ze de zichtbaarheid niet helpen en niet schaden. Voor agent-gedreven aankopen via Shopify ligt dat anders, want dat loopt niet via Google Search.
