SEO Audit – Regel zelf je Google top positie

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, die wellicht ingaan tegen wat sommige andere SEO’s je vertellen. Zeker voor niet-technici is dit lastige stof, maar ik heb mijn best gedaan om het toch duidelijk uit te leggen.

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 vaHet 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, die wellicht ingaan tegen wat sommige andere SEO’s je vertellen. Zeker voor niet-technici is dit lastige stof, maar ik heb mijn best gedaan om het toch duidelijk uit te leggen.
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 (e-commerce, bibliotheken, vacatures, vergelijkers, 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 al heel snel met een enorm duplicate content probleem opgescheept zit (denk ook aan ‘crawl allowance’, zie comments). Daarnaast verdeel je de opgebouwde linkwaarde van je site over teveel pagina’s. Laat ik dat PageRank Verstuiving noemen (hier kom ik nog op terug).
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 linkwaarde te verdelen. Veel mensen noemen linkwaarde ook wel PageRank. Ik gebruik die discutabele term liever niet (er is – terecht – heel veel discussie over ‘PageRank’), maar als metafoor is het geschikt om mijn punt duidelijk te maken voor de niet-ingewijden. 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 kwadraat aan duplicate content URLs op je site erbij krijgt, en dat je de linkwaarde van je website dus ook verdeelt over teveel pagina’s. Al heel snel betekent dat miljoenen extra URLs die per URL 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.

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 [pdf]), 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? 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:

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

Ik heb een sterke voorkeur voor oplossing #2, maar soms, heel soms, is #1 goedkoper/sneller.
#1: genezen is goedkoper, maar goedkoop is duurkoop

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. Maar ruwweg kun je er het volgende over zeggen (vraag na aan je SEO specialist als je meer wil weten):

Canonicals: sturen linkwaarde naar een ‘canonical’ pagina. Nadeel hiervan is dat canonicals niet zo goed werken, vaak verkeerd geïmplementeerd worden en dat canonicals vaak verwijzen naar pagina’s die feitelijk een andere inhoud hebben. Gebruik ze trouwens ook NIET om je paginering problemen aan te pakken (zie mijn whitepaper [pdf]);
Noindex tags: geeft aan Google aan dat een bepaalde pagina niet getoond moet worden in de Google-index. Hiermee los je geen enkel probleem op: je hebt nog steeds duplicate pagina’s en je linkwaarde wordt nog steeds verstuifd. Ik snap ook niet waarom sommige SEO’s dit adviseren;
Webmaster tools parameter ignore: Dit werkt vaak niet en heeft vaak ongewenste gevolgen. Werkt trouwens ook alleen maar bij parameters in de URL. Laat dit met rust;
Nofollows: hiermee voorkom je dat linkwaarde overgedragen wordt via bepaalde links. Je voorkomt niet dat je surplus aan pagina’s geïndexeerd wordt. Het is ook niet zo dat de ‘rest’ van de linkwaarde van je site naar andere pagina’s gaat (‘it evaporates’, zoals Google zegt). Tenslotte zijn nofollows bedoeld om potentiële (comment)spam te markeren: dat ga je toch niet doen bij je eigen pagina’s?

#2: Voorkomen = beter dan genezen
In deze categorie schaar je JavaScript events en robots.txt Disallow regels.

Update: in de comments worden verscheidene interessante alternatieven besproken

JavaScript Events/POST ipv GET/Hashes/Cookies: duplicate content wordt veroorzaakt door een surplus aan URLs. Dit probleem los je efficiënt op als … je geen URLs hebt. Je zorgt er simpelweg voor dat de pagina’s die niet geïndexeerd mogen worden, ook niet geïndexeerd KUNNEN worden, omdat ze geen URL hebben.
Deze oplossing is de beste optie, maar wordt al snel complex als je rekening wil houden met een toekomst waarin je meer soorten pagina’s indexeerbaar wil maken.
Robots.txt Disallow: als je ervoor zorgt dat ieder paginatype herkenbaar is aan een bepaald URL-patroon, dan kun je met een robots.txt Disallow regel die regels blokkeren voor indexatie. Dit heeft een aantal flexibiliteit en usability voordelen (bv. linkbaarheid) ten opzichte van de JavaScript optie, maar heeft als nadeel dat deze pagina’s toch wel (enigszins) gespiderd worden en PageRank kunnen vergaren. Niettemin is dit een veel krachtiger optie dan bijvoorbeeld een Noindex.

Het hangt echt van de situatie af welke optie je het beste kunt gebruiken.
Stap 3: monitor populariteit & adapt accordingly

Ik heb al eens geschreven over ‘sweating your assets’ (zie mijn whitepaper pagina). Dat ging over teksten, maar dat principe geldt hier ook. Je kunt zowel de JavaScript Events als de robots.txt versie monitoren (robots.txt variant is makkelijker te herkennen in analytics). 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.catures 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 (e-commerce, bibliotheken, vacatures, vergelijkers, 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 al heel snel met een enorm duplicate content probleem opgescheept zit (denk ook aan ‘crawl allowance’, zie comments). Daarnaast verdeel je de opgebouwde linkwaarde van je site over teveel pagina’s. Laat ik dat PageRank Verstuiving noemen (hier kom ik nog op terug).

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 linkwaarde te verdelen. Veel mensen noemen linkwaarde ook wel PageRank. Ik gebruik die discutabele term liever niet (er is – terecht – heel veel discussie over ‘PageRank’), maar als metafoor is het geschikt om mijn punt duidelijk te maken voor de niet-ingewijden. 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 kwadraat aan duplicate content URLs op je site erbij krijgt, en dat je de linkwaarde van je website dus ook verdeelt over teveel pagina’s. Al heel snel betekent dat miljoenen extra URLs die per URL 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.

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 [pdf]), 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? 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?

Ik heb een sterke voorkeur voor oplossing #2, maar soms, heel soms, is #1 goedkoper/sneller.

#1: genezen is goedkoper, maar goedkoop is duurkoop

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. Maar ruwweg kun je er het volgende over zeggen (vraag na aan je SEO specialist als je meer wil weten):

  • Canonicals: sturen linkwaarde naar een ‘canonical’ pagina. Nadeel hiervan is dat canonicals niet zo goed werken, vaak verkeerd geïmplementeerd worden en dat canonicals vaak verwijzen naar pagina’s die feitelijk een andere inhoud hebben. Gebruik ze trouwens ook NIET om je paginering problemen aan te pakken (zie mijn whitepaper [pdf]);
  • Noindex tags: geeft aan Google aan dat een bepaalde pagina niet getoond moet worden in de Google-index. Hiermee los je geen enkel probleem op: je hebt nog steeds duplicate pagina’s en je linkwaarde wordt nog steeds verstuifd. Ik snap ook niet waarom sommige SEO’s dit adviseren;
  • Webmaster tools parameter ignore: Dit werkt vaak niet en heeft vaak ongewenste gevolgen. Werkt trouwens ook alleen maar bij parameters in de URL. Laat dit met rust;
  • Nofollows: hiermee voorkom je dat linkwaarde overgedragen wordt via bepaalde links. Je voorkomt niet dat je surplus aan pagina’s geïndexeerd wordt. Het is ook niet zo dat de ‘rest’ van de linkwaarde van je site naar andere pagina’s gaat (‘it evaporates’, zoals Google zegt). Tenslotte zijn nofollows bedoeld om potentiële (comment)spam te markeren: dat ga je toch niet doen bij je eigen pagina’s?

#2: Voorkomen = beter dan genezen

In deze categorie schaar je JavaScript events en robots.txt Disallow regels.

Update: in de comments worden verscheidene interessante alternatieven besproken

  • JavaScript Events/POST ipv GET/Hashes/Cookies: duplicate content wordt veroorzaakt door een surplus aan URLs. Dit probleem los je efficiënt op als … je geen URLs hebt. Je zorgt er simpelweg voor dat de pagina’s die niet geïndexeerd mogen worden, ook niet geïndexeerd KUNNEN worden, omdat ze geen URL hebben.
    Deze oplossing is de beste optie, maar wordt al snel complex als je rekening wil houden met een toekomst waarin je meer soorten pagina’s indexeerbaar wil maken.
  • Robots.txt Disallow: als je ervoor zorgt dat ieder paginatype herkenbaar is aan een bepaald URL-patroon, dan kun je met een robots.txt Disallow regel die regels blokkeren voor indexatie. Dit heeft een aantal flexibiliteit en usability voordelen (bv. linkbaarheid) ten opzichte van de JavaScript optie, maar heeft als nadeel dat deze pagina’s toch wel (enigszins) gespiderd worden en PageRank kunnen vergaren. Niettemin is dit een veel krachtiger optie dan bijvoorbeeld een Noindex.

Het hangt echt van de situatie af welke optie je het beste kunt gebruiken.

Stap 3: monitor populariteit & adapt accordingly

Ik heb al eens geschreven over ‘sweating your assets’ . Dat ging over teksten, maar dat principe geldt hier ook. Je kunt zowel de JavaScript Events als de robots.txt versie monitoren (robots.txt variant is makkelijker te herkennen in analytics). 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.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *