SEOKING.nl

SEO en Internet Marketing blog

Zoekmachine Optimalisatie met Robots.txt

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 vormt daarom een belangrijk onderdeel van je zoekmachine optimalisatie

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:

[code]
# Commentaar wordt niet gelezen door bots
User-agent: *
Disallow:
[/code]

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:

[code]
User-agent: Googlebot
Disallow: /
User-agent: *
Disallow:
[/code]

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:
[code]
User-agent: Googlebot
Disallow: /
[/code]

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.

[code]
User-agent: *
Disallow: /secret/
# Slurp = Yahoo bot
User-agent: Slurp
Disallow: /pages/
Disallow: /poker.html
Disallow: /Poker.html
Disallow: /POKER.html
[/code]

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:

[code]
User-agent: Googlebot
Disallow: /
Allow: /directory/
[/code]
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.

[code]
User-agent: Googlebot
Disallow: /tags/
# MediaPartners-Google = AdSense bot
User-agent: MediaPartners-Google
Allow: /tags/
[/code]

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:
[code]
User-agent: Googlebot
Disallow: /tags/
Allow: /tags/seo.html
[/code]

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.

Google Webmaster Central 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]robots.txt, spiderbots, crawlers, user-agent, disallow, allow, adsense, googlebot, slurp, msnbot [/tags]

Ook interessant:


Volgende post »

12 ReactiesPlaats reactie →

  1. Prima post! Geeft volledig van A t/m Z aan wat robots.txt is en wat je ermee kunt. Je kunt ook sinds kort in de robots.txt aangeven waar je sitemap zich bevindt: http://www.edwords.nl/2007/04/11/google/sitemap-protocol-breder-ondersteund-en-uitgebreid/

    Beantwoorden
  2. En we hebben weer wat geleerd.

    Heb in ieder geval een robots.txt gemaakt en geplaatst, ook al zie ik nog geen reden er iets in te zetten :) Scheelt idd 404′s, die zie ik vrij veel in de logs terug.

    Beantwoorden
  3. Nog een leuke toevoeging is het feit dat je sinds kort ook je sitemaps url erin kan definieren.

    Bijv:

    Sitemap: http://www.seohandleiding.nl/sitemap.xml

    Erg Handig.

    Beantwoorden
  4. Jammer dat Google een ‘disallowed’ link wel opneemt in de index. Niet qua content maar wel de link zelf.

    Beantwoorden
  5. En ook de sitemap staat erin nu :)

    Ben onder de indruk van wat voor ‘wetenschap’ het sturen aan zoekresultaten is. Wat doe je als ‘dayjob’ Tri Pham – SEO-consultant?

    Beantwoorden
  6. Zoals “korting” al zei, URL’s zullen wel opgenomen worden (als ze gelinkt worden), maar niet gelezen worden. Deze zullen dan ook zelden ergens in de resultaten tevoorschijn komen, veelal enkel als je een domein via “site:url.tld” bekijkt.

    Zoals TriPham al zei, secret files horen niet op internet thuis ;-)

    Beantwoorden
  7. @Nigel, ik heb niet echt een dayjob. Overdag heb ik college en ‘s avonds tot de late uren doe ik wat SEO consulting :-)

    Beantwoorden
  8. Ah leuk :)
    Studeren rocks :P

    Je hebt in ieder geval geen folder meer nodig met zo’n weblog!

    Beantwoorden
  9. Ik zou niet weten welk gedeelte van mijn site de spiders niet mogen indexeren. Maar het is wel beter dat mijn error log een stuk korter is sinds er een robots.txt en favicon.ico in de root staan.

    Beantwoorden
  10. mooie duidelijke en complete uitleg !

    Beantwoorden
  11. Ik zie een mogelijk bezwaar:
    Stel ik heb op mijn site een map die ik niet openbaar wil hebben, zeg maar /secret/
    Door nu deze map in robots.txt te vermelden, bij disallow natuurlijk, maak ik aan jan en alleman bekend dat die ‘geheime’ map bestaat.
    Dat lijkt me niet slim.
    Als ik de map niet vermeld, en ook niet in al mijn openbare bestanden, dan blijft het bestaan van die map toch onbekend, en ook onbereikbaar voor de zoekmachines? Dat lijkt me beter.
    Of vergis ik me ?

    Beantwoorden
  1. » Alle info over robots.txt - Codeboy.be || ZoekmachineMarketing | SEO | SEA | Adwords

Plaats reactie