Robots.txt

robots.txt

Robots.txt, een vaak vergeten SEO bestandje

Wat is een robots.txt bestand?

Een robots.txt bestand is een klein tekstbestandje met een protocol die webmasters toelaat om bepaalde delen van een website af te schermen voor de zoekcrawlers van Google / Yahoo / Bing ect. Het is dus een handig tooltje om search engines te sturen welke website directories mogen gecrawld worden. Zo kan je aldus voorkomen dat bepaalde content geïndexeerd wordt en in de zoekresultaten verschijnt.

Het Robots-protocol kan eveneens ingezet worden om specifieke webspiders te blokkeren, bijvoorbeeld de Chinese zoekmachine Baidu. Als je toch geen zaken doet met China en wetende dat het spideren van een website soms tot langere laadtijden kan leiden, is dit de oplossing. Wordt ook wel Robots Exclusion Protocol (REP) genoemd.

Als we SEO audits uitvoeren, controleren we standaard ook de robots.txt . En ja, we komen zeer regelmatig fouten tegen waardoor zoekbots zoals Googlebot onbewust worden geblokkeerd, met onverklaarbaar verlies aan website-bezoekers als pijnlijk gevolg.

Voorbeeld van robots.txt van Online Marketing Monkey

Wil jij graag het voorbeeld zien van een goed opgebouwde robots.txt bestand? Dan geven we je hier de robots.txt van onze eigen website, Online Marketing Monkey. 

Waar de Robots.txt-file bewaren?

De robots-txt-file werkt als volgt. Voordat een crawler een website bezoekt, controleert die eerst of er een robots-file aanwezig is. Dit hoort normaliter steeds te staan in de hoofddirectory of root van de website. Dus voor de website https://www.test.be , dient het robots.txt-bestand te staan op https://www.test.be/robots.txt .

Meer voorbeelden van het robots.txt bestand

Wat moeten we in zo’n robotsfile zetten ? Een Robots.txt, waarbij de txt de afkorting is van text,  is een tekst bestand die meestal slechts een paar lijnen bevat, zoals in Voorbeeld 1 hieronder. 

Voorbeeld 1 robots.txt file

  • Zie voorbeeld 1 hierboven.
  • User-agent : * betekent zoveel als dat de volledige website toegankelijk is voor alle robots of crawlers.
  • Disallow: /geheim.html: wil zeggen aan alle zoekbots “jullie mogen alles crawlen, behalve echter deze ene pagina /geheim.html”.

Voorbeeld 2 robots.txt bestand

  • Wil je de volledige geheim-directory uitsluiten ?
  • Gebruik dan een traling slash = / , zie Voorbeeld 2 hierboven.

Voorbeeld 3 robots-file

  • Voorbeeld 3 vraagt aan de bots om geen enkele pagina van deze volledige site te spideren.
  • Of anders gezegd: de website met een dergelijke robots.txt bestandje zal dus voor al haar URL’s niet vindbaar zijn in de zoekresultaten.

Voorbeeld 4 robots-file

  • Voorbeeld 4 verzoekt aan alle spiders om de volledige website te analyseren.
  • Het is dus precies het tegenovergestelde van voorbeeld 3.
  • Voorbeeld 4b, dus met Allow: / zegt eigenlijk hetzelfde als voorbeeld 4

voorbeeld 4b robots.txt file

  • Een andere mogelijkheid is om de file gewoon leeg te laten of er helemaal geen te maken.

Voorbeeld 1 robots-file

  • Met Voorbeeld 5 tracht je de spider ‘spambot’ uit te sluiten.
  • Deze bot wordt dus vriendelijk verzocht de website links te laten liggen.

Voorbeeld 6 robots.txt

  • Wil je slechts 1 specifiek crawlbot op je website WEL toelaten op je website, bijvoorbeeld die van Google, dan kan je Voorbeeld 6 hanteren.
  • Alle andere user-agents wordt gevraagd de website niet te crawlen.

Deze 5 feiten over robots.txt moet je kennen

    1. Sommige bots houden geen rekening met robots.txt :
      • het is op de eerste plaats een conventie,  een algemeen aanvaarde regel, het is echter geen garantie. Het zijn slechts richtlijnen die met name respectabele bots naleven.
      • malware-bots, die het internet scannen op zoek naar bijvoorbeeld email adressen voor spammers, houden zich veelal niet aan de robots.txt-conventie.
      • is het dan wel mogelijk om slechte crawlrobots te blokkeren ? In theorie wel, in de praktijk vaak niet. Ook al ken je de naam van een spider die je website scant (en vaak ook nog vertraagt) en zet je hem in de robotsfile, spambots zullen vaak gewoon de robots.txt file negeren. Wat je dan wel kan doen is het IP adres van die spambot blokkeren via je firewall en server.
    2. Het robots-protocol is openlijk toegankelijk: iedereen kan dus zien welke delen je niet wil laten crawlen. Dus gebruik het niet om bepaalde info te verstoppen voor gewone bezoekers. Scherm dat af met een wachtwoord of zet het gewoonweg niet op je site.
    3. Zet het robots-bestand steeds in de hoofd-directory van je website.
    4. Het is gebruikelijk om ook de sitemaps in de robots-file te vermelden.
    5. Vaak staat ook de term crawl-delay vermeld in het robots.txt tekstbestand. Deze term zegt aan de crawlers hoe lang ze moet wachten na een bepaalde crawl actie.
      1. Crawl-delay: 5 zegt zoveel als ‘wacht 5 seconden na elk crawl’.
      2. Let op: met een crawl-delay van 5 seconden kan een zoekmachine slechts 17.280 URL’s per dag bezoeken. Zeker voor omvangrijke websites vrij weinig.
      3. Crawl delay wordt gebruikt als de webmaster merkt dat de user-agents zodanig veel crawlen op een website dat de laadsnelheid eronder lijdt.

Praktijkvoorbeeld

Alhoewel (respectabele) zoekmachines de webpagina’s, die in de robots-file opgegeven zijn, niet zullen crawlen, kan het toch gebeuren dat de URL’s ervan in de zoekresultaten opduiken. Zoals door backlinks die op andere websites staan. Om er zeker van te zijn dat de inhoud zeker niet voorkomt in de SERPs (Search Engine Result Pages), is het dus soms ook aangewezen om de robots.txt-file toe te passen samen met de meta robots parameters “noindex, follow”. Kijk maar eens hieronder naar de robotsfile van Bol.com

Hieronder een voorbeeld van de robots.txt file van Bol.com . Zie bijvoorbeeld dat ze de directory /sdd/ blokkeren.

robots bol

Kijk wat er gebeurt wanneer je dit sdd-gedeelte opzoekt in Google. De zoekmachinegigant pikt
nog meer dan 11.000 resultaten op…

SERP bol.com

Wat is het verschil tussen robots.txt en noindex?

  • Blokkeren met robots.txt = “bericht aan zoekmachines: bezoek de URL niet, maar je mag hem nog wel in de zoekresultaten zetten”. Met die nuance dat de pagina’s waarop de robots-file betrekking hebben, erg slecht scoren in de zoekresultaten. Maar ze blijven wel vindbaar.
  • Blokken via noindex = “bericht aan search engines: jullie mogen de URL bezoeken, maar zet hem niet in de zoekresultaten”.
  • Disallowed-pagina’s kunnen geen linkkracht meer doorgeven aan andere pagina’s. Om individuele pagina’s uit de zoekmachine-indexen te weren, gebruik best de meta robots. De volgende maal dat de webpagina wordt gespidered met deze code, ontdekt de bot de metatag noindex en wordt de pagina helemaal uit de zoekresultaten gelaten, ongeacht of andere websites een verwijzing ernaar bevatten. Opgelet: de noindex is enkel maar zinvol als de pagina NIET wordt geblokkeerd door de robots-file. Anders kan de bot de noindex immers niet zien en kan de pagina nog steeds opduiken in de SERPs.

Hoe een /robots.txt creëren ?

    • Zet de file in de root directory van je website. Indien een bot het robots-bestand opzoekt, dan zal het alles in de domeinnaam negeren vanaf de eerste enkele slash en vervangen door de /robots.txt. Bijvoorbeeld voor https:// www.test.be/index.html wordt dat dus https:// www.test.be/robots.txt .
    • gebruik steeds kleine letters als bestandsnaam: dus niet Robots.Txt , maar wel robots.txt
    • vergeet de ‘s’ niet, want anders gaat het fout. Een robot.txt zal niet worden opgemerkt door de zoekmachines.
    • hanteer 1 disallow per lijn
    • als programma kan je notepad, wordpad, textedit en zelfs Word gebruiken. Sla het bestand wel steeds op als tekst-bestand, dus in .txt
    • test het robots-bestand via de google tester

Definities van de gebruikte robots.txt-termen

  • De term user-agent staat gewoon voor de naam van de crawler van de zoekmachine. Google’s useragent heet Googlebot, die van Bing wordt BingBot genoemd, Baidu is dan weer Baiduspider genoemd, ect.
  • Disallow is een commando aan useragents om de vermelde URL’s niet te crawlen
  • Allow, het tegenovergestelde van disallow, maakt Googlebot duidelijk een specifieke directory WEL te crawlen, ook al zijn bovenliggende disallowed.
  • Reguliere expressies en wildcards zijn variablelen die helpen bij het schrijven van een robots.txt bestand. Met regexen kan je in groep URLs (dis)allowen zonder dat je ze 1 voor 1 moet vermelden

Hoe reguliere expressies gebruiken?

Officieel ondersteunt robots.txt geen regular expressions. Echter, alle grote zoekmachines begrijpen ze. Letters uit ons alfabet en cijfers hebben er dezelfde betekenis. Bepaalde tekens hebben echter een andere, specifieke betekenis. We bespreken hier de belangrijkste.

Punt (.)

Een punt (.) vertegenwoordigt om het even welk karakter in het robots.txt bestand. Dat kan dus een bepaalde letter, spatie, cijfer of symbool zijn. Dus het voorbeeld .ees komt overeen met 4-teken-strings als lees, mees, hees, wees, maar met 8ees, $ees, ect ect.

Backslash (\)

Met een backslash (\) kan je exact zeggen welk teken je wenst. Neem bijvoorbeeld voor het telefoon nummer 050.580.120 ; indien je de regex 050.580.120 gebruikt, dan komt die ook overeen met nummers als 05095801 omdat de punt elk karakter vertegenwoordigt. In dit geval gebruik je best de backslash: 050\.580\.120

*, ?, + en {}

Via een *, ?, + en {} laten toe om aan te geven hoe vaak het vorige teken mag voorkomen.

Het ? vertegenwoordigt 0 of 1 van het voorgaande teken. Voorbeeld: 123? matcht 12 of 123, maar niet 1234, 1239 of 123a.

Een asterisk * staat voor 0, 1 of meer. Dus 123* Komt overeen met 12, 123, 1234, 1239, 123a, maar 1233333.

Het + teken vertegenwoordigt 1 of meer van het voorgaande teken. Dus 123+ matcht 123, 1234, 1233333 enz.

De braces {} laten toe om een specifiek aantal herhalingen op te geven. Bijvoorbeeld [a-z]{2,4} matcht elk woord met kleine letters die tussen de 2 en 4 tekens lang is; [0-9]{5} komt overeen met om het even welke getal van 5 cijfers.

Parentheses ()

Via de Parentheses () kan je tekens in de robots.txt groeperen. Wil je bijvoorbeeld zowel Vincent Kompany als Vince Kompany matchen, dan kan je deze reguliere expressie gebruiken Vince(nt)? Kompany, waarbij met behulp van het ? kan aangeduid worden dat de groep (nt) 0 of 1 mag voorkomen.

Circonflexe ^

Het dakje ^ laat toe bepaalde URLs binnen een URL te selecteren. Gebruik je ^blog/, dan selecteer je URLs als /blog/artikel123 en /blog/rubriek/artikel456. De URLs buiten je regex vallen er buiten, zoals /categorie/blog/.

Dollarteken $

Een dollarteken $ betekent dat een URL moet eindigen met bepaalde tekens. Gebruik je /blog$ , dan weerhoud je URLs als website/categorie/blog, maar niet website/categorie/blog/download .

Vierkante haakjes [ ]

Vierkante haakjes [ ] geven een lijst van karakters [abc]. Binnen deze [ ] betekent een – een reeks. Zo staat [a-zA-Z] voor alle letters. Staat een ^ als 1ste binnen [ ], dan wordt het tegenovergestelde bedoeld: [^0-9] zal alles matchen dat geen cijfer is.

Samenvattend

Een robots.txt-bestandje gebruik je om specifieke webpagina’s zoveel als mogelijk uit de zoekresultaten te houden en bepaalde webcrawlers te weren.

Benieuwd hoe goed je website het doet qua SEO? Binnen 24u geven we je antwoord.