Een webshop maakt vanzelf meerdere adressen voor dezelfde pagina: een kleurvariant, een sortering op prijs, een filter op merk, een pagina met een tracking-parameter erachter. Google ziet die als losse URL’s met bijna dezelfde inhoud. Met een canonical vertel je welke versie in de zoekresultaten hoort. Google zegt zelf dat geen van de methodes verplicht is en dat het vaak zelf een canonical kiest. De keuze is dan alleen niet altijd de jouwe.

Wat dubbele URL’s kosten

Volgens Google kunnen signalen als links verspreid raken over de versies, en kost het crawlen van duplicaten tijd die Google niet aan je echte pagina’s besteedt. Bij een shop met veertig producten en zes filters loopt het aantal combinaties snel op. Google waarschuwt in zijn uitleg over filternavigatie dat het crawlen van gefilterde URL’s veel serverbronnen kost en nieuwe pagina’s trager laat ontdekken.

Drie manieren om een voorkeur aan te geven

Google noemt ze in volgorde van invloed.

  1. Een permanente redirect van het duplicaat naar de voorkeurs-URL. Dat is het sterkste signaal en past als je een adres definitief opheft, bijvoorbeeld de http-versie of de versie zonder www.
  2. Een rel=canonical in de head van de duplicaatpagina, of als HTTP-header bij bestanden zoals pdf’s. Google beschouwt dit als sterk signaal, niet als bevel. Bij tegenstrijdige signalen negeert Google hem soms.
  3. Het opnemen van de URL in je sitemap. Dat is het zwakste signaal, maar het is makkelijk te onderhouden.

Kies per pagina één voorkeursadres en laat alle drie naar dezelfde URL wijzen. Zet op de voorkeurspagina zelf een canonical naar zichzelf, gebruik absolute URL’s met https, en link intern altijd naar die versie. Webshopsystemen als Shopify en WooCommerce zetten vaak al een canonical, maar controleer wat er bij jouw thema werkelijk in de broncode staat.

Wat je per situatie doet

SituatieWat Google adviseert
Productvariant (kleur, maat) met eigen URLCanonical naar de hoofdproductpagina
Filterpagina die niet in Google hoeftCrawlen blokkeren in robots.txt, of canonical naar de ongefilterde lijst
Filterpagina die wel in Google moetEigen URL met & als scheidingsteken, vaste volgorde van filters, 404 bij lege combinaties
Pagina 2, 3 enzovoort van een categorieElke pagina een eigen URL en een canonical naar zichzelf
Sessie-ID of tracking in de URLNiet intern naar linken

Varianten van één product

In Google’s advies voor webshop-URL’s krijgt elke variant een eigen URL, als pad (/t-shirt/groen) of als parameter (/t-shirt?kleur=groen). Bij optionele parameters is de URL zonder parameter de canonical. Een variantpagina wijst dus naar de hoofdpagina.

Dat is verstandig als de varianten bijna identiek zijn. Zoeken mensen apart op een variant, zoals ‘rode hardloopschoenen’, dan is dat een afweging die voor jouw shop anders kan uitpakken. Een eigen pagina met eigen tekst en foto’s voor die variant is dan een optie, en dan zet je geen canonical naar de hoofdpagina. Die redenering is mijn eigen conclusie en geen regel van Google. Hoe je zoektermen per pagina verdeelt, staat in het artikel over zoekwoordonderzoek voor je webshop.

Filters en sortering

Hoeven gefilterde pagina’s niet in Google, dan noemt Google drie opties: crawlen blokkeren met robots.txt (terwijl productpagina’s en één ongefilterde lijst bereikbaar blijven), een canonical naar de ongefilterde versie, of nofollow op de links ernaartoe. Dat laatste noemt Google op lange termijn minder effectief, omdat elke link naar die URL het attribuut moet hebben.

Een blokkade in robots.txt en een canonical op dezelfde URL werken elkaar tegen. Google kan een geblokkeerde pagina niet openen en leest de canonical dus niet. Kies per filterparameter een van de twee. Google zegt bovendien dat je robots.txt niet moet gebruiken om een canonical te kiezen, omdat geblokkeerde URL’s toch in de index kunnen komen, zij het zonder inhoud.

Wil je dat een filtercombinatie wel gevonden wordt, zoals ‘halfautomaat espressomachine’, behandel die dan als een gewone pagina. Google adviseert het standaard-& als scheidingsteken, omdat komma’s en puntkomma’s vaak niet als scheiding worden herkend. Houd bij filters in het pad de volgorde gelijk en geef een 404 terug bij combinaties zonder resultaten.

Paginering

Maak van pagina 1 niet de canonical voor de hele reeks. In de uitleg over paginering zegt Google dat elke pagina een eigen URL en een eigen canonical hoort te hebben, en dat je met gewone a href-links naar de volgende pagina verwijst. Google gebruikt rel=prev en rel=next niet meer. Bepaal ook of de eerste pagina met of zonder ?page=1 bereikbaar is, en gebruik overal dezelfde vorm.

Noindex is geen canonical

Google raadt af om noindex te gebruiken om binnen je eigen site een canonical te kiezen, omdat noindex de pagina volledig uit de zoekresultaten houdt. Voor pagina’s die er helemaal niet in horen, zoals een lege categorie of een gesorteerde lijst, is noindex wel een gebruikelijke oplossing. Het gaat om het verschil tussen weg moeten en samenvoegen met een andere pagina.

Controleren in Search Console

Open de URL-inspectie voor een productpagina en vergelijk ‘User-declared canonical’ met ‘Google-selected canonical’. Zijn die verschillend, dan heeft Google je voorkeur niet gevolgd. In het indexeringsrapport voor pagina’s vind je dat terug als ‘Duplicate, Google chose different canonical than user’. De status ‘Duplicate without user-selected canonical’ betekent dat de pagina geen canonical heeft opgegeven en Google een andere pagina koos.

Begin met één categorie. Open drie filter- of variant-URL’s uit je eigen site, bekijk in de broncode waar de canonical naartoe wijst en inspecteer ze in Search Console. Wijst een variant naar zichzelf en wil je dat niet, pas dan de instelling in je thema of plugin aan.