Een van de eerste dingen die je moet weten als webmaster is weten hoe robots.txt werkt. Wat doet robots.txt precies? Met robots.txt laat je de spiderbots weten welke pagina's en mappen wel in de zoekmachine index mogen worden opgenomen, en welke pagina's en mappen niet niet mogen worden geïndexeerd.
robots.txt basics
robots.txt (kleine letters allemaal) is in feite een simpel text bestand. Je plaatst dit bestand altijd in je webserver root directory. Met andere woorden, als je domein www.seoking.nl is, dan vind je robots.txt op www.seoking.nl/robots.txt. Nooit in subdirectories zoals www.seoking.nl/map/robots.txt. Hetzelfde geldt voor subdomeinen. Als je subdomein poker.seoking.nl is, dan staat je robots.txt op poker.seoking.nl/robots.txt.
Een simpel robots.txt staat hieronder:
PLAIN TEXT
CODE:
-
# Commentaar wordt niet gelezen door bots
-
User-agent: *
-
Disallow:
Laten we dit even ontleden. Op de eerste regel staat commentaar, voorafgaand door een hash/pound karakter. Deze regels worden niet gelezen door spiderbots. Hier kan je van alles typen, maar gebruik het om voor jezelf duidelijk te maken waarom je bepaalde regels gebruikt in je robots.txt.
Op de tweede regel staat User-agent, hiermee kun je een spiderbot identificeren. Elk spiderbot heeft een naam en met User-agent kun je deze individueel aanspreken. Hieronder heb ik een lijst van bekende spiderbots.
- Google: Googlebot, Googlebot-Image (Google Image), Googlebot-Mobile (Google Mobile) en Mediapartners-Google (Google AdSense).
- Yahoo: Slurp
- Live: msnbot
- Ask: teoma
- DMOZ Checker: robozilla
- Alexa: ia_archiver
Hier is een volledige lijst van User-Agents.
In mijn voorbeeld heb ik een asterisk (ster) gebruikt. Dit is een wildcard en dat betekent dat alle spiderbots deze regels moeten volgen.
Op de derde regel staat Disallow. Hiermee laat je de spiderbot weten welke pagina's mogen worden opgenomen en welke niet. In dit geval staat er niets. Dit betekent dat spiderbots alle pagina's mag indexeren. Het bovenstaande voorbeeld kun je vergelijken met een niet bestaande robots.txt. Zodra een spiderbot langskomt op je website en als die geen robots.txt kan vinden, dan gaat de bot ervan uit dat het alle pagina's mag opnemen in de zoekmachine index.
Laat ik een ander voorbeeld nemen voor robots.txt:
PLAIN TEXT
CODE:
-
User-agent: Googlebot
-
Disallow: /
-
User-agent: *
-
Disallow:
Nu zeg ik: "Googlebot, jij mag niks indexeren van mijn website. Alle andere spiderbots, jullie mogen alles indexeren." In dit voorbeeld geef ik expliciet aan dat User-agent Googlebot, de search spiderbot van Google, niets mag indexeren. Dit maal heb ik bij Disallow een forward slash. Dit betekent dat je webserver root directory niet mag worden opgenomen in de zoekmachine index. Met andere woorden, geen enkele pagina en map wordt geindexeerd. Dit voorbeeld kun je verkorten naar dit:
PLAIN TEXT
CODE:
-
User-agent: Googlebot
-
Disallow: /
Omdat ik nu alleen expliciet Googlebot aanspreek, mogen alle andere bots doen wat zij willen.
NOOT: Vergeet niet de forward slash te gebruiken bij een Disallow commando.
Nu een iets gecompliceerder voorbeeld.
PLAIN TEXT
CODE:
-
User-agent: *
-
Disallow: /secret/
-
# Slurp = Yahoo bot
-
User-agent: Slurp
-
Disallow: /pages/
-
Disallow: /poker.html
-
Disallow: /Poker.html
-
Disallow: /POKER.html
Wees gerust, dit is geen rocket science. De eerste twee regels geven aan dat alle spiderbots alle pagina's en mappen mogen indexen, behalve de map secret en alle pagina's die daarin zich bevinden.
Daarna geef ik expliciet aan dat Slurp (Yahoo spiderbot) ook de map pages en de pagina's daarin niet mag indexeren. Ook mag Slurp de bestanden poker.html, Poker.html en POKER.html niet indexeren.
Om het overzichtelijk te maken, hieronder laat ik zien wat de bots niet mogen indexeren.
Alle spiderbots behalve Slurp:
/secret/
Slurp:
/secret/
/pages/
/poker.html
/Poker.html
/POKER.html
Als je een uitgebreide robots.txt gaat samenstellen, dan kun je snel de fout in gaan. Je kunt ineens mappen gaan blokkeren voor bots terwijl je dat niet wilt. Het is daarom verstandig dit systematisch aan te pakken. Pak desnoods een vel papier en outline welke bots welke mappen/bestanden niet mag indexeren.
Wat ook erg belangrijk is, is dat robots.txt case-sensitive is. Met andere woorden, hoofdletters en kleine letters in bestandsnamen/mappen worden als verschillende bestanden/mappen gezien. Het bovenstaande voorbeeld geeft aan dat de laatste drie regels niet hetzelfde zijn. De drie exclusion regels worden als drie verschillende regels gezien, omdat de bestandsnamen verschillend zijn.
Inclusion Rules: Allow
De Googlebot kent ook nog een nieuwe feature, namelijk de inclusion feature (tegenover gestelde van de exclusion feature, disallow). In plaats van zeggen welke mappen en bestanden de Googlebot niet mag indexeren, kun je ook aangeven welke bestanden wel in de index mogen komen. Dit doe je met de Allow commando. Een voorbeeld staat hieronder:
PLAIN TEXT
CODE:
-
User-agent: Googlebot
-
Disallow: /
-
Allow: /directory/
NOOT: Alleen Google bots kennen de inclusion regel.
Hiermee geef je aan dat de Googlebot geen enkele bestand mag indexeren, behalve de bestanden in de map directory. Waarom zou je de inclusion regel willen gebruiken? Dit is vooral handig voor de Google AdSense bot. Stel je voor dat de Googlebot niet een directory mag indexeren, maar je wilt wel de AdSense advertenties weergeven. Dan kun je hetvolgende robots.txt gebruiken.
PLAIN TEXT
CODE:
-
User-agent: Googlebot
-
Disallow: /tags/
-
# MediaPartners-Google = AdSense bot
-
User-agent: MediaPartners-Google
-
Allow: /tags/
Een ander scenario zou kunnen zijn dat je de hele directory wilt afschermen voor spidebots, behalve voor een enkel bestand in die directory. Dan komt een Allow dus goed uit. Je zou dan het volgende doen:
PLAIN TEXT
CODE:
-
User-agent: Googlebot
-
Disallow: /tags/
-
Allow: /tags/seo.html
Ook al staat aangegeven dat de hele directory is afgeschermd, de inclusion laat toe dat een bestand in een afgeschermde directory mag worden geindexeerd.
robots.txt is niet voor beveiliging!
robots.txt is niet bedoeld voor beveiligingsdoeleinden! Dat de spiderbots niet de bestanden indexeert betekent niet dat je bestanden veilig verborgen zijn. Immers kan iedereen je robots.txt lezen, tenzij je die cloakt. Als je je bestanden veilig opgeborgen wilt hebben, plaats deze dan niet online.
Upload altijd een robots.txt
De laatste tip die ik wil geven is dit: upload altijd een robots.txt, ookal is deze leeg (dat betekent dus dat spiderbots alles mogen indexeren). Er gaat een fabel rond dat als je geen robots.txt uploadt, dan krijgen sommige spiderbots problemen met het indexeren van je website. Deze fabel is niet waar. Waarom dit advies wordt gegeven is simpelweg voor bandbreedte redenen. Elke keer dat een spiderbot geen robots.txt kan vinden, dan krijg je een 404 en dat betekent laaaaangggeee error logs. Want een spiderbot komt vaak langs als je website een beetje PageRank heeft. Om dataverkeer te besparen kun je het beste altijd een robots.txt op je webserver zetten.
Valideer je robots.txt
Wat je zeker wilt doen is altijd je robots.txt valideren. Dan kan met behulp van Robots.txt Checker. Daarnaast kan je bij Google Webmaster Central ook je zien of alles correct is met Google's robots.txt validator.

Er zijn nog meer gevorderde mogelijkheden voor robots.txt. Ook zal ik laten zien hoe je robots.txt moet gebruiken om duplicate content te voorkomen. Dat allemaal komt een andere keer aan bod.
Tags:
adsense allow crawlers disallow googlebot msnbot robots.txt slurp spiderbots user agentTop