Als je website gebruik gemaakt wordt van 'faceted search' of 'filtered navigation', dan is het opletten geblazen!

Het gebruik van faceted search (of 'filtered navigation') is zowel een vloek als een zegen voor SEO. In dit artikel leg ik uit waarom dat zo is en geef ik je een aantal tips.

Wat is faceted search

Voor degenen die niet weten wat het is: het is in feite het aan- en uitzetten van filters waarmee je een zoekopdracht op een website kunt uitbreiden of juist inkaderen. Vergelijk het met het aloude 'geavanceerd zoeken', maar dan on steroids, en waarbij allerlei filters geactiveerd en gecombineerd worden zodra je erop klikt.

Een voorbeeld. Stel je tikt op een vacaturesite het keyword 'psycholoog' in. Je krijgt dan alle vacatures van psychologen die die website heeft, maar je wil het inkaderen, bijvoorbeeld op regio. Je ziet een lijst met regio's staan waarin vacatures voor psychologen beschikbaar zijn. Je klikt dan bijvoorbeeld op 'Gelderland'. Het zoekresultaat ververst en je krijgt alleen vacatures te zien voor psychologen in Gelderland, en dus juist niet voor de rest van de regio's in Nederland. Naast Gelderland wil je ook in Noord-Brabant kijken. Je klikt 'Noord-Brabant' aan en ziet dan resultaten van Gelderland EN Noord-Brabant.

Ik ga het hier niet verder uitleggen, want er zijn veel betere handleidingen online, maar raad je wel aan om je erin te verdiepen voordat je verder leest, zeker als je werkt met database websites waarbij zoekresultaten essentieel zijn (classifieds, e-commerce, etc.)

Waarom faceted search?

Veel websites, en dan vooral degenen met grote databases waarbij veel zoekopdrachten op de site worden uitgevoerd, gebruiken dit systeem om de gebruikerservaring van hun website te verbeteren. Als je het als SEO nog niet bent tegengekomen (en je werkt met grotere opdrachtgevers), dan zal dat zeker nog gaan gebeuren.

Vloek: duplicate content & pagerank verstuiving

Maar waarom is het een potentiële vloek voor zoekmachine optimalisatie? Omdat je, als je niet uitkijkt, je site simpelweg teveel URLs heeft. Dat betekent bijvoorbeeld:

  • Google geeft je belangrijkste URLs wellicht niet genoeg waarde.
  • Of wijzigingen in je site worden niet snel genoeg opgepikt.
  • Lang niet alle pagina's / URLs die je hebt, zijn überhaupt vindbaar.
  • Interne kannibalisatie a.g.v. duplicatie content.

Etc.

Enkele typische problemen

Stel je hebt een vacaturesite met de volgende filters:

  • 2 regio's: Arnhem, Nijmegen
  • 2 salarisschalen: 1, 2
  • 2 typen banen: fulltime, interim

Nu verwerk je die filters standaard in de URL en je kunt meerdere filters tegelijk aanzetten. Je bent bijvoorbeeld web developer en je zoekt een full-time baan in Nijmegen tegen salarisschaal 1. Als URL zou je dan bijvoorbeeld kunnen krijgen:

/?regio=nijmegen&salaris=1&type=fulltime

Of wat eleganter:

/regio.nijmegen/salaris.1/type.fulltime/

Probleem 1: volgorde

Het eerste probleem is dat de volgorde van de filters vaak niet uitmaakt voor het systeem dat de zoekopdracht uitvoert en serveert op je website. Als je deze parameters omdraait, krijg je veelal hetzelfde resultaat te zien:

/type.fulltime/salaris.1/regio.nijmegen/

Stel je eens voor wat dit voor duplicate content issues doet als je 50 filters hebt op je site. Dit kun je deels oplossen door altijd een vaste volgorde en prioriteit van filters aan te houden, maar dan ben je er nog niet.

Probleem 2: meerdere filters van hetzelfde type

Want dan heb je natuurlijk de mogelijkheid dat iemand zowel op Arnhem als Nijmegen filtert:

/regio.nijmegen/regio.arnhem/salaris.1/type.fulltime/

Stel nu dat er slechts 1 vacature beschikbaar was bij allebei de zoekopdrachten, namelijk 1 dienstbetrekking in Nijmegen. Dat levert toch precies dezelfde content op. We hebben nu al drie URLs voorbij zien komen waarbij de content van de pagina precies hetzelfde was. En dan is dit nog een extreem simpel voorbeeld...

Probleem 3: versterkend effect

En dan heb je nog de problemen die je toch al vaak hebt met duplicate content issues, bijvoorbeeld onnodige parameters, extra slashes, session-id's, case-insensitivity, het gebruik van willekeurige categorienamen in URLs, etc., etc.

PageRank Verstuiving

Je website als geheel heeft een bepaalde hoeveelheid 'SEO-waarde' te verdelen (laten we dat voor het gemak 'PageRank' noemen). Hoe meer pagina's je hebt, hoe minder je te verdelen hebt per pagina. Je verstuift het tot er niks meer overblijft, als het ware. Dit verdelen moet je zo effectief mogelijk doen. Daarbij kun je dus geen surplus aan URLs gebruiken!

Conclusie: potentiële vloek

Kort gezegd komt het erop neer dat wanneer je faceted search via URLs afhandelt, je voor iedere filter een aanzienlijke groei aan URLs op je site erbij krijgt, en dat je de linkwaarde van je website dus ook verdeelt over steeds meer pagina's. Al heel snel betekent dat miljoenen extra URLs die minder en minder unieke content bevatten, met elkaar concurreren, en minder en minder autoriteit overhebben om te concurreren met pagina's van andere sites.

Je begrijpt dat dit problematisch zou zijn.

Zegen: contextuele navigatie

Maar faceted search kan ook een zegen zijn voor SEO, mits je het goed aanpakt! Het is belangrijk om dit te herhalen: alleen als je het goed aanpakt.

Waar het namelijk ook voor zorgt, is dat je een gebruikersvriendelijke, contextafhankelijke navigatie hebt voor een hele grote (database) site die alle content heel eenvoudig beschikbaar maakt, en dat ook slechts binnen een beperkt aantal clicks.

We moeten ook niet vergeten dat - naast 'in-tekst' links - juist de links in je navigatiemenu de meeste waarde te verdelen hebben (meer bijvoorbeeld dan footerlinks).

Op iedere willekeurige pagina van je site heb je gerelateerde links staan, en die verwijzen alleen maar naar pagina's die ook relevant zijn voor waar je je op dat moment op de site bevindt. Dat is dus aanzienlijk beter dan een statisch navigatiemenu dat op elke pagina van je site hetzelfde is. Het helpt zoekmachines als Google om te begrijpen wat de inhoudelijke (semantische) context is van een bepaalde pagina. Dat is een belangrijke SEO factor.

Waar veel database-sites problemen hebben met het überhaupt makkelijk bereikbaar maken van hun grote hoeveelheden content (bijvoorbeeld door paginering), lost een faceted search (of: faceted navigatie) dat probleemloos op, en doet dat op een manier die de context van een pagina beter versterkt dan traditionele navigatiesystemen. En dat is zeker een zegen.

Stappenplan SEO en faceted search

Maar hoe zorg je nu dat je gebruik kunt maken van de usability en (mogelijke) SEO-voordelen van een faceted search systeem, zonder last te hebben van de duplicate content issues en het beschikbare crawl- en PageRank budget? Hieronder een stappenplan. Het hangt van de complexiteit van je site en organisatie af of de uitvoer net zo eenvoudig is.

Stap 1: welke typen pagina's wel, en welke niet?

In der Beschränkung zeigt sich erst der Meister: welke typen pagina's wil je gebruiken om Google te bestormen, en welke niet? En zeg nu niet 'allemaal', want dan moet je het stukje onder Vloek: duplicate content nogmaals lezen! Meestal weet je intuïtief al welke (typen) filters het meest gezocht worden, op je site en/of op het web. Niet zelden is dat maar een beperkt aantal. Maar als je het precies wil weten, moet je eens een goede inhoudelijke blik werpen op de statistieken van je site.

Stap 2: hoe doen we de uitvoer?

Als je weet welke typen pagina's wel, en welke niet geïndexeerd mogen worden, moet je bepalen HOE je dit gaat doen. En juist hier lopen de meningen bij SEO's uiteen. Ruwweg komt het meningsverschil hierop neer:

  1. ga je achteraf vertellen tegen Google wat er met het surplus aan pagina's moet gebeuren;
  2. of vertel je het vooraf?

#1: achteraf

In deze categorie vallen allerlei middelen zoals het gebruik van canonicals, noindex tags, webmaster tools parameter ignoring en nofollows. Het gaat buiten het bestek van dit artikel om die uitgebreid te beschrijven. Ik vind het ook geen goede oplossingen, dus negeer ze verder.

#2: vooraf

Ik kan hier van alles beschrijven (heb ik in vorige versies van dit artikel ook gedaan), maar eigenlijk is het gebruik van robots.txt Disallow regels het meest effectief.

Als je ervoor zorgt dat ieder paginatype herkenbaar is aan een bepaald URL-patroon, dan kun je met een robots.txt Disallow regel vrij eenvoudig die regels blokkeren voor indexatie. Zo simpel is het.

Zo kun je met robots.txt:

  • Een blacklist maken. Je sluit in principe alle faceted search URLs uit voor indexatie, maar niet een aantal uitzonderingen. Zo kun je dus heel precies controleren wat je 'in Google' wil hebben!
  • Of je gebruikt een paar eenvoudige wildcards waarmee je tegen Google zegt: indexeer alles tot en met niveau 2, maar negeer alles wat dieper ligt:
Disallow: /*/*/*/

Dit zijn twee voorbeelden van aanpassingen die ik in de praktijk al uitgevoerd heb en oh verrassing: het werkte kei goed ;)

Stap 3: monitor populariteit & adapt accordingly

Als blijkt dat bepaalde filters vaak gebruikt worden / populair zijn en genoeg unieke content bevatten, dan kun je overwegen om deze ook in Google op te laten nemen. Dit is een reactieve vorm van SEO, maar zeer verantwoord.