Hoe je robots.txt gebruikt om de indexatie en kwaliteit van je website te verbeteren

Met de Panda update heeft Google ons duidelijk gemaakt dat de algehele kwaliteit van je website belangrijk is, als dat al niet zo was. Low quality content of duplicate content wordt afgestraft. Waar je eerder de kans had dat de verkeerde pagina slechter rankte, zul je nu merken dat je hele website minder goed vindbaar zal zijn in de zoekresultaten. De verhouding tussen ‘slechte’ content en ‘goede’ content is iets waar je tegenwoordig extra aandacht aan zult moeten besteden. In dit artikel leg ik je uit hoe je de kwaliteitsverhouding van je content kunt verbeteren door gebruik te maken van robots.txt.

Wat is robots.txt

Voor degene onder ons die niet weten wat robots.txt is, volgt hier een uitleg volgens Google:

Met een robots.txt-bestand beperkt u de toegang tot uw site voor zoekmachinerobots die het internet crawlen. Deze robots zijn geautomatiseerd en voordat ze een site bezoeken, controleren ze eerst of er een robots.txt-bestand is waardoor ze bepaalde pagina’s niet kunnen crawlen.

Met je robots.txt kun je dus aangeven wat een bot wel of niet mag bezoeken. In bovenstaand stuk is te lezen dat een bot allereerst kijkt naar de aanwezigheid van een robots.txt. Deze dient altijd in de root van de website te staan, zodat het bestand bereikbaar is op http://www.domein.nl/robots.txt. Heb jij meerdere subdomeinen, dan heeft ieder subdomein een aparte robots.txt.

User-agent

Een robots.txt bestaat uit enkele simpele instructies voor een bot. Met de instructie ‘user-agent’ kun je regels instellen die per user-agent verschillen. Een user-agent volgens WikiPedia is het computerprogramma dat bij een netwerkfunctie of protocol hoort. De user-agent van Google voor het crawlen van webpagina’s heet ‘Googlebot’, die voor bijvoorbeeld Google Afbeeldingen heet ‘Googlebot-Images’. Wil je alle bots dezelfde instructies geven, start je robots.txt dan met:

User-agent: *

Pagina’s toestaan

Met de instructie ‘Allow’ kun je folders of pagina’s toestaan voor een bot. Standaard worden alle pagina’s toegestaan, maar voor de volledigheid wordt deze instructie vaak vermeld in een robots.txt.

Allow: /

Pagina’s weigeren

Wil je bepaalde delen van je website uitsluiten voor Google, dan kun je gebruik maken van ‘disallow’ instructies. Dit kunnen pagina’s zijn die je, vanwege de inhoud liever niet in de index ziet. Maar ook pagina’s van lage kwaliteit, of pagina’s met bijvoorbeeld duplicate content. Dit artikel zal verder ingaan op deze laatste twee.

Disallow: /folder/
Disallow: /pagina.html

Filters

Het gebruik van filters is vooral gemakkelijk voor een bezoeker. Door filters kan een bezoeker een selectie van honderden producten snel terug dringen tot een meer overzichtelijke selectie van bijvoorbeeld 10 producten. Deze 10 producten voldoen aan de selectiecriteria van een bezoeker zoals bijvoorbeeld kleur, prijs, gewicht of maat.

Filters

Filters kunnen echter voor veel verschillende pagina’s zorgen. Er kunnen namelijk meerdere filters actief zijn, waardoor er verschillende URLs gecreëerd worden. Deze URLs zijn meestal ook voor een zoekmachine bereikbaar en bevatten vrij weinig unieke content. Gekeken naar de kwaliteit van je website, zorgen filters voor veel low-quality content en slurpen ze je crawl budget flink op. Een goede reden dus om deze uit te sluiten. Sluit overigens niet alle filters uit, maar kijk vooral naar de filters die niet veel toevoegen qua content of waar mensen niet naar zoeken. Dit laatste weet je doordat je bij het bouwen van je website uiteraard ook een grondige keyword analyse hebt gedaan.

Het uitsluiten van filters kan er als volgt uit zien:

# Filters
Disallow: /*kleur=
Disallow: /*maat=
Disallow: /*materiaal=

Paginering

Paginering, het opdelen van content over meerdere pagina’s, kan ook voor low-quality content en duplicate content zorgen. Robots.txt kan daarbij helpen, maar vaak is een juiste technische implementatie in combinatie met de robots meta tag een betere oplossing.

Paginering

Stel je heb een categorie ‘heren schoenen’ opgedeeld over 5 pagina’s. De URL van pagina 1 is http://www.domein.nl/heren/schoenen en de URL van pagina 2 is http://www.domein.nl/heren/schoenen?p=2. Wanneer je vervolgens weer teruggaat naar pagina 1, dan zou de URL overeen moeten komen met de eerste, echter zie je in de praktijk vaak de volgende URL http://www.domein.nl/heren/schoenen?p=1. Nu begrijp je vast wel dat dit niet de meest ideale situatie is, 2 verschillende URLs voor dezelfde pagina. Met robots.txt kun je deze laatste variant uitsluiten:

# Paginering
Disallow: /*p=1$

Let op het $ teken aan het einde. Vergeet je dit teken, dan sluit je ook pagina 10, 11, 12 en verder uit, omdat deze overeenkomen met de disallow instructie. Zoals ik eerder zei is een juiste technische implementatie beter. Je zorgt er dan voor dat een URL als ?p=1 niet bestaat, maar gebruikt de URL van de betreffende categorie.

De pagina’s 2 en verder voegen qua content vrij weinig waarde toe aan je website. Uiteraard wil je wel dat een zoekmachine alle producten kan vinden en wil je eventuele waarde van inkomende links doorgeven. De pagina’s hoeven echter niet in de index van Google voor te komen, om zo de kwaliteit van pagina’s in Google’s index te verbeteren. Dit doe je door op pagina 2 en verder de robots meta tag te gebruiken:

 

Sortering

Een volgend obstakel in de missie naar het verbeteren van de geïndexeerde kwaliteit van je website is sortering. Op veel e-commerce websites zie je opties als ‘sorteer op prijs’ of ‘toon 20 producten per pagina’.

Sortering

Na het kiezen van een dergelijke optie, zie je dat er vaak parameters aan een URL worden toegevoegd, bijvoorbeeld ‘dir=asc’ of ‘order=price’. Wanneer parameters aan een URL worden toegevoegd, dan wordt er in feite een unieke URL gecreëerd, dit in dit geval vrijwel dezelfde content (in een andere volgorde) toont. Je begrijpt vast waar ik naar toe wil, want dit is wederom duplicate of low-quality content. Het uitsluiten van sortering kan als volgt:

# Sorting
Disallow: /*dir=
Disallow: /*order=
Disallow: /*limit=

Zoekresultaten

Op de meeste websites is het mogelijk te zoeken naar bepaalde content of producten. Een open souce systeem als Magento biedt ook deze mogelijkheid, echter zie je de zoekopdrachten vaak terug in de index van Google. Ook dit wil je liever niet, het zijn namelijk pagina’s die weinig toevoegen aan je website. Daarom is het verstandig preventief alle zoekresultaten op een website uit te sluiten voor een zoekmachine als Google.

#Search
Disallow: /catalogsearch/
Disallow: /*s=

In het laatste voorbeeld (/*s=) dient s vervangen te worden door de parameter die aan een URL wordt toegevoegd wanneer je op de website een zoekopdracht uitvoert.

Session ID’s

Wanneer je in bijvoorbeeld een webshop artikelen in een winkelmandje plaatst, dan worden deze artikelen gedurdende je bezoek ‘onthouden’ door de webshop. Dit gebeurt door een unieke identifier aan jouw bezoeksessie te koppelen. Deze ID’s worden onthouden door ze op te slaan in een cookie, of door ze op te nemen als parameter in de URL. Deze laatste methode zorgt ervoor dat er per sessie (per bezoek aan een website) een nieuwe ID wordt toegekend, kortom, per sessie allemaal nieuwe URLs met dezelfde content. In praktijk levert dit problemen op. Een bot ziet iedere sessie nieuwe URLs met dezelfde content. De bot crawlt een x aantal pagina’s per keer, en het zal daarom vrij lang duren voordat jouw producten eens een keer in de index van Google verschijnen.

Een aantal open source systemen gebruiken herkenbare session ID’s. Zo gebruikt Magento SID, osCommerce gebruikt osCsid en gebruikt Zen Cart zenid. Het uitsluiten van deze parameters is een eerste stap, maar vaak kan er in het systeem gekozen worden session ID’s via cookies of URLs te gebruiken. Kies dan uiteraard voor het eerste.

# Session ID’s
Disallow: /*SID=
Disallow: /*osCsid=
Disallow: /*zenid=

XML Sitemap

Het gebruik van een HTML of XML sitemap is vaak handig voor een zoekmachine. Op een pagina wordt een compleet overzicht gegeven van alle URLs op jouw website. Een XML sitemap is vaak beter, wanneer het gaat om een groot aantal URLs, zoals je vaak ziet bij webshops. De locatie van de XML sitemap is echter niet direct door een zoekmachine te achterhalen. De locatie van de sitemap kun je bekend maken door deze te uploaden in Google Webmaster Tools (Siteconfiguratie > Sitemaps), maar je kunt de locatie ook als regel toevoegen aan je robots.txt. Op deze manier weet iedere bot waar hij de XML sitemap kan vinden. Het vermelden van de locatie van de sitemap doe je als volgt:

# Sitemap
Sitemap: http://www.domein.nl/sitemap.xml

Parameters ontdekken in Google Webmaster Tools

Nadat je je website nagelopen hebt op eventuele duplicatie of low-quality content problemen, kun je Google Webmaster Tools gebruiken om te zien of je robots.txt volledig is. Via Siteconfiguratie > URL-parameters > URL-parameters configureren vind je een overzicht aan parameters die Google ontdekt heeft tijdens het crawlen. Rechts naast iedere parameter vind je een link ‘bewerken’, die je in staat stelt zelf regels in te stellen via Webmaster Tools, of voorbeeld URLs te bekijken. Controleer dus of je alle belangrijke parameters hebt uitgesloten die problemen kunnen geven.

Parameters ontdekken in Google Webmaster Tools

Test je robots.txt in Google Webmaster Tools

Is je robots.txt eenmaal klaar, dan kun je deze online plaatsen. Verstandiger is om de regels eerst te testen, want je wilt niet dat je per ongeluk alle belangrijke content uit gaat sluiten. Gelukkig biedt Google Webmaster Tools de mogelijkheid je robots.txt te testen aan een x aantal URLs. Wil je er zeker van zijn dat je niet per ongeluk iets uitsluit, kopieer dan in Google Analytics de top 50 of 100 bestemmingsURLs via organisch verkeer en test deze. Je kunt het testen door naar Siteconfiguratie > Crawlertoegang te gaan.

Test je robots.txt in Google Webmaster Tools

Kopieer je robots.txt en plak deze in de eerste tekstbox, plak vervolgens je top x bestemmingsURLs in de tweede tekstbox. Nadat je op ‘testen’ hebt geklikt zie je per regel of een bot is toegestaan of verboden is de URL te crawlen.