Zoekmachine optimalisatie: robots.txt

Trefwoorden: robots.txt, zoekresultaten, geheim, SEO, search engine spider, bot, zoekbot

1. Inleiding


1.1. Wat is robots.txt?

Het bestand robots.txt is niets meer dan een eenvoudig tekstbestand. Het laat webmasters toe om indexeringsrobots (ook spiders genoemd) een richting te geven bij het indexeren. Via robots.txt is het mogelijk te bepalen welke pagina's bijvoorbeeld in de zoek resultaten van Google of Yahoo mogen voorkomen en vooral: welke niet. Zo kan het interessant zijn om bijvoorbeeld afdrukversies van pagina's of downloadbare bestanden niet op te nemen.

1.2. Wat is robots.txt niet?

Robots.txt is geen manier om een website eenvoudig te beveiligen; het is enkel een manier om aan te geven wat niet ge´ndexeerd hoort te worden. Vergelijk het met een verbodsbord op de openbare weg: het is niet omdat het bord er staat, dat men een straat niet kan inrijden.

Daarnaast is het eveneens belangrijk om weten dat robots.txt slechts een richtlijn is. Je hebt geen zekerheid dat search engine spiders het bestand effectief zullen volgen. De spiders van de bekende zoekmachines (Google, Yahoo et cetera) zullen dat wel doen, maar over de minder bekende heb je dus geen zekerheid.

Hier geldt dus opnieuw: wil je dat iets niet online verschijnt, zorg dan dat je het degelijk beveiligt ;). Dit kan bijvoorbeeld via .htaccess.

2. Gebruik van robots.txt


Een webmaster dient het bestand robots.txt in de root van de website te plaatsen (al hoeft dat ook niet meer voor bijvoorbeeld Google). Een zoekrobot (ook die van Google) verwacht het bestand standaard op die plaats. Let daarom ook op dat je het bestand robots.txt exact zo noemt, ook op gebied van hoofdlettergebruik! Door deze naamgeving te respecteren, kunnen alle bots er van uitgaan dat informatie over wat ze wel en niet mogen opnemen in hun indices voor elke website op die plaats te vinden is. Ook bij Multidesk.be is dat het geval; op http://www.multidesk.be/robots.txt kan je de inhoud van het bestand bekijken.

Plaats robots.txt nooit in submappen, aangezien een zoekrobot het daar standaard niet zal gaan zoeken. Voorbeelden van locaties waar robots.txt standaard niets uithaalt:



Indien je subdomeinen beheert, voorzie je deze best eveneens van een robots.txt bestand. Ook hier gelden dezelfde regels: plaats het bestand in de root, niet in een onderliggende map.

Bijvoorbeeld: http://subdomein.example.com/robots.txt. Zelfs wanneer je niet wenst gebruik te maken van de functionaliteit van robots.txt, is het zeer hard aan te raden om toch een leeg bestand met de naam robots.txt in de root van je website te plaatsen. De reden hiervoor is dat de zoekrobots request zullen maken naar het bestand. Wanneer het bestand niet bestaat, zal de webserver ingrijpen door een foutcode (404) terug te zenden en eventueel enkele acties ondernemen, bijvoorbeeld het loggen van de request. Dit zorgt niet alleen voor onnodige foutmeldingen, maar kan tevens impliceren dat er onnodig bandbreedte besteed wordt aan het serveren van een 404 - page not found pagina.

3. Structuur van robots.txt


De structuur van robots.txt is vrij eenvoudig. Er bestaan slechts enkele verschillende opdrachten en daarenboven werken al deze opdrachten via hetzelfde principe.

3.1. Een eerste voorbeeld

Een robots.txt kan er bijvoorbeeld uitzien als volgt:

CODE
  1. User-agent: Googlebot
  2. Disallow: /niet_indexeren.html
  3. Disallow: /downloads/


Op de eerste regel wordt bepaald voor welke bot(of bots) de opdrachten gelden. In dit geval willen we dat de opdrachten enkel uitgevoerd worden door de search engine spider van Google (Googlebot).
Op de tweede regel geven we aan dat we Googlebot de toegang tot het bestand niet_indexeren.html willen ontzeggen.
Op regel drie geven we eveneens mee dat alle pagina's in de map downloads niet mee opgenomen mogen worden.

3.2. Een uitgebreid voorbeeld

Stel dat we een robots.txt willen opstellen waaraan andere search engine spiders ook nog opdrachten kunnen uithalen. Hiervoor kunnen we het eerste voorbeeld iets uitbreiden. We geven ofwel, net als in het eerste voorbeeld, de naam van de spider op ofwel een asterisk (om aan te geven dat de opdrachten voor alle spiders gelden).

Voorbeelden van namen van spiders zijn:

  • Googlebot (de standaard spider van Google)
  • Googlebot-Image (Google's spider die afbeeldingen indexeert)
  • Googlebot-Mobile (Google's spider voor content op mobiele apparaten)
  • ia_archiver (spider van Alexa)
  • msnbot (spider van Live)
  • Slurp (de spider van onder meer Yahoo!)


Een robots.txt bestand dat verschillende opdrachten heeft voor verschillende spiders kan er uitzien zoals de code hieronder.

CODE
  1. User-agent: Googlebot
  2. Disallow: /niet_indexeren.html
  3. Disallow: /downloads/
  4.  
  5. User-agent: msnbot
  6. Disallow: /verborgen/


Dit betekent concreet dat Google's bot het bestand niet_indexeren.html en de bestanden in (alsook submappen van) downloads niet mag indexeren.
Microsoft's bot mag dit echter wel, maar krijgt het expliciete verbod om bestanden in (alsook submappen van) de map verborgen te indexeren.

4. Volgorde van opdrachten


Een spider zal (wanneer die de standaard volgt) de opdrachten uitvoeren in volgorde dat hij die tegenkomt. Dit betekent dat een spider zoekt naar minstens een passende regel (match). Wanneer er geen passende regel gevonden wordt, gaat hij uit van een (impliciete) allow. Onderstaand voorbeeld toont aan dat de toegang tot de map test verboden wordt, met uitzondering van het bestand toegelaten.html.

CODE
  1. User-agent: *
  2. Allow: /test/toegelaten.html
  3. Disallow: /test/


Het is echter zo dat een Allow altijd voorrang krijgt op een Disallow; onderstaande code zal dus exact hetzelfde resultaat geven:

CODE
  1. User-agent: *
  2. Disallow: /test/
  3. Allow: /test/toegelaten.html


Deze denkwijze kan je ook toepassen on er voor te zorgen dat enkel bepaalde robots worden toegelaten:

CODE
  1. User-agent: Slurp
  2. Allow:
  3.  
  4. User-agent: *
  5. Disallow: /


Enkel de spider van Inktomi (Slurp) zal toegang krijgen tot de website. Alle andere spiders mogen geen documenten indexeren.

5. Geavanceerde opdrachten


5.1. Jokertekens

Soms kan het voorkomen dat je een spider wil beperken een bepaalde pagina te indexeren, maar je de exacte naam van de pagina niet kent. Dit kan bijvoorbeeld het geval zijn bij een systeem met nieuwsberichten. Laat ons er van uitgaan dat de standaard pagina zich bevindt op http://www.example.com/nieuws/nummer/. Nummer is een uniek volgnummer dat toelaat het bericht te identificeren en dus verschilt per bericht. Het nieuwssysteem laat echter toe om de berichten tevens te bewerken en dit via het adres http://www.example.com/nieuws/nummer/bewerken/. Wanneer we een robots.txt zouden opstellen met een regel Disallow /nieuws/, zouden we ook de berichten zelf niet langer indexeerbaar maken. We kunnen nu echter gebruikmaken van een jokerteken, de asterisk. Dit werkt net hetzelfde als bij de User-agent overigens. Bijvoorbeeld:

CODE
  1. User-agent: *
  2. Disallow /nieuws/*/bewerken/


Op deze manier zijn de nieuwsberichten zelf nog toegankelijk voor spiders, maar de pagina om de tekst te bewerken (welke niet interessant is voor bezoekers) niet.

5.2. Pagina's eindigend op een bepaalde string

In sommige gevallen is het ook handig om enkel die pagina's te blokkeren die op het einde van het adres een bepaalde reeks karakters hebben. Een voorbeeld hiervan is het nieuwssysteem uit het vorige hoofdstuk dat uitgebreid wordt met een lay-out voor mobiele toestellen. Deze lay-out kan grafisch minder bandbreedte vergen, maar toch dezelfde inhoud aanbieden. Het is echter doorgaans niet echt doordacht om de inhoud twee keer te laten indexeren. De pagina's voor de mobiele toestellen zijn gelukkig goed herkenbaar, doordat ze allemaal eindigen op ?layout=mobiel. Het adres is dus steeds als volgt: ?layout=mobiel/. Het voordeel is dat ook de pagina's buiten het nieuwssysteem (bijvoorbeeld het contactformulier) een mobiele variant kunnen aanbieden. De adressen kunnen bijgevolg danig verschillen van elkaar; het is namelijk zeer goed mogelijk dat het contactformulier op het adres http://www.example.com/contact/ te vinden is, wat (op de domeinnaam na) niets te maken heeft met het adres van een nieuwsberichten (http://www.example.com/nieuws/nummer/). Het enige wat beide pagina's gemeen hebben, wanneer ze op een mobiel apparaat worden opgevraagd, is het
achtervoegsel.

Om een opdracht te schrijven voor een pagina die eindigt op een bepaalde reeks karakters, kunnen we gebruik maken van het dollarteken. Indien we het robots.txt bestand uit het vorige deel aanvullen met het zonet aangehaalde voorbeeld, levert dat volgend resultaat op:

CODE
  1. User-agent: *
  2. Disallow /nieuws/*/bewerken/
  3. Disallow /*?layout=mobiel$


5.3. Extra opdrachten

Een aantal bots laten toe om extra opdrachten toe te voegen. Zo kan je bij Googlebot bijvoorbeeld de locatie van een sitemap bestand meegeven:

CODE
  1. User-agent: Googlebot
  2. Sitemap: http://www.example.com/sitemap.xml


Inktomi Slurp laat bijvoorbeeld toe om een vertraging in te bouwen tussen het aantal request dat een bot maakt met de website. Deze beveiliging werd ingebouwd omdat het indexeringsproces (indien slecht uitgebalanceerd) een website heel wat extra verkeer kan bezorgen.
CODE
  1. User-agent: Slurp
  2. Disallow: /niet_indexeren.html
  3. Crawl-delay: 20


6. Valideren van robots.txt


Eenmaal je je robots.txt hebt aangemaakt, toets je best eens of deze effectief ook correct is opgesteld. Een handige manier om dit te doen, is via de

robots.txt checker van motoricerca.

7. Slot


Je zou na het lezen van dit artikel een stevige basis moeten hebben om aan de slag te kunnen gaan met robots.txt. Vergeet niet dat adressen van pagina's hoofdlettergevoelig zijn. http://www.example.com/voorbeeld.html is dus niet hetzelfde als http://www.example.com/Voorbeeld.html em bijgevolg dien je de opdracht in je robots.txt ook aan te passen naargelang de situatie.

Indien je om de een of de andere reden geen robots.txt bestand kan plaatsen, maar toch niet wenst dat spiders bepaalde pagina's indexeren, kan je gebruik maken van een meta tag:

CODE
  1. <meta name="ROBOTS" content="NOINDEX, NOFOLLOW">


Hier gaan we echter niet dieper op in.

Indien je overigens niet helemaal zeker bent van de naam van een bepaalde search engine spider, kan je altijd je licht eens opsteken op deze pagina. Je treft er een lijst aan met de meeste frequent voorkomende search engine spiders.

Moest je na het lezen van dit alles toch nog meer informatie wensen over robots.txt, kan je eens gaan kijken op robotstxt.org voor diepgaande informatie over de standaard.Dit artikel werd geschreven door Martijn op dinsdag 5 juni 2007 om 12:16 en werd sindsdien 10252 keer gelezen.

  • Pagina
  • 1 van 1

Geen reacties gevonden
Er werden nog geen reacties bij dit artikel geplaatst.
  • Indien je denkt iets te kunnen toevoegen aan het artikel, kan je zelf een reactie schrijven via de koppeling Plaats een reactie bij dit artikel hieronder.
  • Indien je andere commentaar (iets wat niet meteen functioneel bijdraagt aan het artikel zelf) hebt, kan je een bedankje formuleren via de koppeling Plaats een bedankje bij dit artikel hieronder.