Wat je kunt verwachten van dit artikel

Dit artikel legt uit wat het robots.txt bestand is en hoe je er effectief gebruik van kunt maken om:

  1. Zoekmachines toegang tot bepaalde delen van jouw website te verbieden
  2. Duplicate content te voorkomen
  3. Zoekmachines jouw website efficienter te laten crawlen.

Wat is het Robots.txt bestand?

Het robots.txt bestand communiceert de omgangsregels van jouw website voor zoekmachines.

Voordat een zoekmachine normale pagina’s op jouw website bezoekt, probeert het eerst het robots.txt bestand op te halen om te kijken of er speciale instructies zijn voor het crawlen van jouw website. Wij noemen deze instructies ‘richtlijnen’.

Als er geen robots.txt bestand aanwezig is, of als er geen relevante richtlijnen zijn gedefinieerd, dan gaan zoekmachines ervan uit dat ze de hele website mogen crawlen.

Hoewel alle grote zoekmachines het robots.txt bestand respecteren kunnen zoekmachines er toch voor kiezen het robots.txt bestand of bepaalde delen ervan te negeren. Het is daarom belangrijk om je te beseffen dat het robots.txt bestand slechts een set van richtlijnen is in plaats van een mandaat.

Synoniemen voor Robots.txt

Het robots.txt bestand wordt ook wel het Robots Exclusion Protocol, robots exclusion standard of robots.txt protocol genoemd.

Waarom is het robots.txt bestand zo belangrijk?

Het robots.txt bestand is erg belangrijk vanuit zoekmachine optimalisatie (SEO) oogpunt. Het vertelt zoekmachines namelijk hoe ze jouw website het beste kunnen crawlen.

Met het robots.txt bestand kun je zoekmachines toegang tot bepaalde delen van jouw website verbieden, duplicate content problemen voorkomen, en bij zoekmachines aangeven hoe ze jouw website efficiënter kunnen crawlen.

Voorbeeld

Neem onderstaande situatie eens als voorbeeld:

Je managed een E-commerce website waarop bezoekers met een filter gemakkelijk kunnen zoeken naar producten. Dit filter genereert echter pagina’s die vrijwel dezelfde inhoud tonen als andere pagina’s. Dit filter is erg handig voor bezoekers, maar werkt verwarrend voor zoekmachines omdat het duplicate content veroorzaakt. Je wilt voorkomen dat zoekmachines deze gefilterde pagina’s indexeren, maar nog veel liever dat ze niet eens hun tijd verspillen aan het crawlen van deze URLs met gefilterde content.

Je kunt duplicate content problemen ook voorkomen met de canonical URL of de meta robots tag, maar deze zorgen er beide niet voor dat zoekmachines enkel de belangrijkste pagina’s op jouw website crawlen. De canonical URL en de meta robots tag voorkomen niet dat zoekmachines de pagina’s crawlen, maar zorgen er alleen voor dat zoekmachines de pagina’s niet tonen in de zoekmachine resultaten. Aangezien zoekmachines maar beperkte tijd kunnen besteden aan het crawlen van een website, moet je er voor zorgen dat zoekmachines deze tijd besteden aan de pagina’s die je wilt tonen in de zoekmachine resultaten.

Het ziet het robot.txt bestand eruit?

Zie hieronder een simpel voorbeeld van hoe het robots.txt bestand voor een WordPress eruit kan zien:

User-agent: *
Disallow: /wp-admin/

De opbouw van het robots.txt bestand hierboven is als volgt:

User-agent: de user-agent geeft aan voor welke zoekmachines de richtlijnen bedoelt zijn.

*: Dit geeft aan dat de richtlijnen zijn bedoeld voor alle zoekmachines.

Disallow: Deze richtlijn geeft aan welke content niet toegankelijk is voor de user-agent.

/wp-admin/: Dit is het path dat niet toegankelijk is voor de user-agent.

Samengevat: dit robots.txt bestand vertelt alle zoekmachines dat de /wp-admin/ directory niet toegankelijk is voor ze.

User-agent in robots.txt

Elke zoekmachines hoort zich te identificeren met een zogenaamde user-agent. Google’s robots identificeren zichzelf bijvoorbeeld als Googlebot, Yahoo’s robots als Slurp en Bing’s robots als BingBot enzovoort.

De user-agent kondigt het begin van een aantal richtlijnen aan. De richtlijnen die tussen de eerste user-agent en de volgende user-agent zijn opgenomen worden door de eerste user-agent als richtlijnen gebruikt.

De richtlijnen kunnen gericht zijn aan specifieke user-agents, maar kunnen ook gelden voor alle user-agents. In het laatste geval maken we gebruik van de volgende wildcard: User-agent: *.

Disallow in robots.txt

Je kunt zoekmachines toegang tot bepaalde bestanden, secties of pagina’s op jouw website verbieden met de Disallow richtlijn. Na de Disallow richtlijn wordt het path dat niet toegankelijk is vermeld. Als er geen path gedefinieerd is wordt de richtlijn genegeerd.

Voorbeeld

User-agent: *
Disallow: /wp-admin/

Het voorbeeld hierboven verbiedt alle zoekmachines toegang tot de /wp-admin/ directory.

Allow in robots.txt

De Allow richtlijn doet het tegenovergestelde van de Disallow richtlijn en wordt enkel ondersteund door Google en Bing. Door de Allow en Disallow richtlijnen samen te gebruiken kun je zoekmachines toegang geven tot een specifiek bestand of specifieke pagina binnen een directory die anders niet toegankelijk was. Na de Allow richtlijn komt het path dat toegankelijk is. Als er geen path gedefinieerd is wordt de richtlijn genegeerd.

Voorbeeld

User-agent: *
Allow: /media/terms-and-conditions.pdf
Disallow: /media/

Het voorbeeld hierboven verbiedt alle zoekmachines toegang tot de /media/ directory, behalve toegang tot het bestand /media/terms-and-conditions.pdf.

Belangrijk: neem bij gelijktijdig gebruik van de Allow en Disallow richtlijnen geen wildcards in het robots.txt bestand op omdat dit kan zorgen voor conflicterende richtlijnen.

Voorbeeld van conflicterende richtlijnen

User-agent: *
Allow: /directory
Disallow: /*.html

Zoekmachines weten in dit geval niet wat ze met de URL http://www.domein.nl/directory.html moeten doen. Het is onduidelijk voor zoekmachines of ze wel of geen toegang hebben tot deze URL.

Nieuwe regel voor iedere richtlijn

Plaats elke richtlijn op een eigen regel omdat zoekmachines anders in de war kunnen raken tijdens het parsen van het robots.txt bestand.

Voorkom dus een robots.txt bestand als hieronder:

User-agent: *
Disallow: /directory-1/ Disallow: /directory-2/ Disallow: /directory-3/

Gebruik van de wildcard *

Naast het definiëren van de user-agent, wordt de wildcard ook gebruikt voor het definiëren van URLs die een bepaalde string bevatten. De wildcard wordt ondersteund door Google, Bing, Yahoo en Ask..

Voorbeeld

User-agent: *
Disallow: /*?

Het voorbeeld hierboven verbiedt alle zoekmachines toegang tot URLs die een vraagteken bevatten (?).

Het einde van een URL aangeven met $

Gebruik een dollar teken ($) aan het einde van het path om het einde van een URL aan te geven.

Voorbeeld

User-agent: *
Disallow: /*.php$

Het voorbeeld hierboven verbiedt alle zoekmachines toegang tot URLs die eindigen met .php.

Sitemap in robots.txt

Alhoewel het robots.txt bestand primair bedacht is om bij zoekmachines aan te geven welke pagina’s ze niet mogen crawlen, kan het ook gebruikt worden om zoekmachines te verwijzen naar de XML sitemap. Dit wordt ondersteund door Google, Bing, Yahoo en Ask.

De XML sitemap moet in het robots.txt bestand zijn opgenomen als een absolute URL. De URL hoeft niet op dezelfde host als het robots.txt bestand te draaien. Als best practice adviseren wij altijd om te verwijzen naar de XML sitemap vanuit het robots.txt bestand, ook als je de XML sitemap al handmatig hebt ingediend in Google Search Console of Bing Webmaster Tools. Vergeet niet dat er nog meer zoekmachines zijn.

Let wel dat het mogelijk is om naar meerdere XML sitemaps te verwijzen in het robots.txt bestand.

Voorbeelden

Meerdere XML sitemaps:

User-agent: *
Disallow: /wp-admin/

Sitemap: https://www.voorbeeld.nl/sitemap1.xml
Sitemap: https://www.voorbeeld.nl/sitemap2.xml

Het voorbeeld hierboven verbiedt alle zoekmachines toegang tot de /wp-admin/ directory en verwijst naar twee XML sitemaps: https://www.voorbeeld.nl/sitemap1.xml
en https://www.voorbeeld.nl/sitemap2.xml.

Enkele XML sitemap:

User-agent: *
Disallow: /wp-admin/
Sitemap: https://www.voorbeeld.nl/sitemap_index.xml

Het voorbeeld hierboven verbiedt alle zoekmachines toegang tot de /wp-admin/ directory en verwijst naar de XML sitemap met de absolute URL https://www.voorbeeld.nl/sitemap_index.xml.

Opmerkingen

Opmerkingen worden na een ‘#’ geplaatst en kunnen zowel aan het begin van een nieuwe regel geplaatst worden als na een richtlijn op dezelfde regel. Opmerkingen zijn enkel bedoeld voor menselijk gebruik.

Voorbeeld 1

# Geeft geen toegang tot /wp-admin/ directory voor alle robots
User-agent: *
Disallow: /wp-admin/

Voorbeeld 2

User-agent: * #Van toepassing op alle robots
Disallow: /wp-admin/ #Geeft geen toegang tot /wp-admin/ directory.

De voorbeelden hierboven communiceren hetzelfde.

Crawl-delay in robots.txt

De Crawl-delay directive is een officieuze richtlijn die voorkomt dat servers overbelast worden met verzoeken. Als zoekmachines in staat zijn om de server te overbelasten, is het toevoegen van de Crawl-delay richtlijn slechts een tijdelijke oplossing. Het echte probleem is namelijk het slechte hosting platform waarop jouw website draait. We adviseren je om dit probleem zo snel mogelijk op te lossen.

Zoekmachines gaan verschillend om met de Crawl-delay richtlijn. Hieronder leggen we uit hoe de grootste zoekmachines ermee omgaan.

Google

Google ondersteund niet de Crawl-delay richtlijn. Echter, Google heeft wel een functie in Google Search Console voor het instellen van de crawlsnelheid. Volg onderstaande stappen voor het instellen van de crawlsnelheid:

  1. Log in bij Google Search Console.
  2. Kies de website waarvoor je de crawlsnelheid wilt instellen.
  3. Klik op het tandwiel icoon in de rechter bovenhoek en kies voor ‘Site-instellingen’.
  4. In dit scherm is er een optie voor het instellen van de crawlsnelheid met een schuifknop. De crawlsnelheid is standaard ingesteld als “Laat Google optimaliseren voor mijn site (aanbevolen)”.

Crawl Rate definieren in Google Search Console

Bing, Yahoo en Yandex

Bing, Yahoo and Yandex ondersteunen allemaal de Crawl-delay richtlijn voor het instellen van een maximum crawlsnelheid (zie de documentatie voor Bing, Yahoo en Yandex). Plaats de Crawl-delay richtlijn direct na de Disallow of Allow richtlijnen.

Voorbeeld:

User-agent: BingBot
Disallow: /private/
Crawl-delay: 10

Baidu

Baidu ondersteunt de Crawl-delay richtlijn niet. Echter, het is wel mogelijk de crawlsnelheid in te stellen in je Baidu Webmaster Tools account. Dit werkt ongeveer hetzelfde als in Google Search Console.

Wanneer heb ik het robots.txt bestand nodig?

We adviseren je om altijd gebruik te maken van het robots.txt bestand. Het toevoegen van een robots.txt bestand aan jouw website heeft geen enkel nadeel en het is een doeltreffende manier om instructies aan zoekmachines te communiceren hoe ze jouw website het beste kunnen crawlen.

Best practices voor het robots.txt bestand

Locatie en bestandsnaam

Plaats het robots.txt bestand altijd in de root van jouw website (de hoogst gelegen directory van de host) en geef het de bestandsnaam robots.txt, bijvoorbeeld: https://www.voorbeeld.nl/robots.txt. De URL voor het robots.txt bestand is net als ieder ander URL hoofdlettergevoelig.

Als zoekmachines het robots.txt bestand niet kunnen vinden op de standaardlocatie, gaan ze ervan uit dat er geen richtlijnen zijn voor het crawlen van jouw website en crawlen ze alles.

Volgorde van richtlijnen

Het is belangrijk om te weten dat zoekmachines allemaal anders omgaan met het robots.txt bestand. Standaard wint de eerste voorkomende richtlijn.

Echter, Google en Bing kijken naar specificiteit. Bijvoorbeeld: een Allow richtlin wint van een Disallow richtlijn als het aantal tekens langer is.

Voorbeeld

User-agent: *
Allow: /about/company/
Disallow: /about/

Het voorbeeld hierboven verbiedt alle zoekmachines, waaronder Google en Bing, toegang tot de /about/ directory, behalve tot de sub-directory /about/company/.

Voorbeeld

User-agent: *
Disallow: /about/
Allow: /about/company/

Het voorbeeld hierboven verbiedt alle zoekmachines behalve Google en Bing toegang tot de /about/ directory, inclusief /about/company/.

Google en Bing hebben wel toegang omdat de Allow richtlijn langer is dan de Disallow richtlijn.

Slechts één groep met richtlijnen per robot

Je kunt maar één groep met richtlijnen definiëren per zoekmachine. Het opnemen van meerdere groepen met richtlijnen in het robots.txt bestand verward zoekmachines.

Wees zo specifiek mogelijk

De Disallow richtlijn werkt ook bij gedeeltelijke overeenkomsten. Wees zo specifiek mogelijk tijdens het definiëren van de Disallow richtlijn om te voorkomen dat je ongewild zoekmachines toegang verbiedt tot bestanden.

Voorbeeld

User-agent: *
Disallow: /directory

Het voorbeeld hierboven verbiedt zoekmachines toegang tot:

/directory/
/directory-name-1
/directory-name.html
/directory-name.php
/directory-name.pdf

Tegelijkertijd richtlijnen definiëren die voor alle robots bedoelt zijn en richtlijnen die voor een specifieke robot bedoelt zijn

Als richtlijnen voor alle robots gevolgd worden door  richtlijnen voor één specifieke robot, dan worden de eerstgenoemde richtlijnen genegeerd door de specifiek genoemde robot. De enige manier om de specifiek genoemde robot de richtlijnen voor alle robots op te volgen is door deze opnieuw te definiëren voor de specifieke robot.

Laten we eens kijken naar een voorbeeld dat dit duidelijk maakt:

Voorbeeld

User-agent: *
Disallow: /secret/
Disallow: /not-launched-yet/

User-agent: googlebot
Disallow: /not-launched-yet/

Het voorbeeld hierboven verbiedt alle zoekmachines behalve Google toegang tot /secret/ and /not-launched-yet/. Dit robots.txt bestand verbiedt Google alleen toegang tot /not-launched-yet/, maar heeft gewoon toegang tot /secret/.

Als je niet wilt dat googlebot toegang heeft tot /secret/ en /not-launched-yet/, herhaal dan de richtlijnen voor googlebot:

User-agent: *
Disallow: /secret/
Disallow: /not-launched-yet/

User-agent: googlebot

Disallow: /secret/
Disallow: /not-launched-yet/

Robots.txt bestand voor ieder (sub)domein.

De richtlijnen in een robots.txt bestand gelden alleen voor de host waar het bestand gehost is.

Voorbeelden

http://example.com/robots.txt geldt voor http://example.com, maar niet voor http://www.voorbeeld.nl of https://voorbeeld.nl.

Tegenstrijdige richtlijnen: robots.txt vs. Google Search Console

Als de richtlijnen in je robots.txt bestand in strijd zijn met de instellingen die je gedefinieerd hebt in Google Search Console, kiest Google in veel gevallen voor de instellingen die je gedefinieerd hebt in Google Search Console in plaats van de richtlijnen in het robots.txt bestand.

Check robots.txt na een lancering

Check na het lanceren van nieuwe functies of een nieuwe website van een test omgeving naar de productie omgeving altijd het robots.txt bestand voor een Disallow /.

Gebruik geen noindex in je robots.txt bestand

Hoewel sommige aanraden om een noindex richtlijn in je robots.txt bestand te gebruiken, is het geen officiële standaard. Daarnaast heeft Google openbaar aangegeven het niet te gebruiken. Het is niet duidelijk waarom, maar we adviseren om hun aanbevelingen serieus te nemen.

Voorbeelden van robots.txt bestanden

In dit hoofdstuk geven we een aantal voorbeelden van robots.txt bestanden.

Alle robots hebben toegang tot de hele website

Er zijn meerdere manieren om zoekmachines te vertellen dat ze toegang hebben tot de hele website:

User-agent: *
Disallow:

Of

Het hebben van een leeg robots.txt bestand, of überhaupt geen robots.txt bestand hebben.

Geen toegang voor alle robots

User-agent: *
Disallow: /

Pro tip: een extra teken kan het verschil maken.

Geen toegang voor alle Google bots

User-agent: googlebot
Disallow: /

Houdt er rekening mee dat als je Googlebot niet toestaat, dit geldt voor alle Google bots. Dus ook Google robots die zoeken naar bijvoorbeeld nieuws (googlebot-news) of afbeeldingen (googlebot-images).

Geen toegang voor alle Google bots, behalve Googlebot news

User-agent: googlebot
Disallow: /

User-agent: googlebot-news
Disallow:

Geen toegang voor Googlebot en Slurp

User-agent: Slurp
User-agent: googlebot
Disallow: /

Geen toegang tot twee directories voor alle robots

User-agent: *
Disallow: /admin/
Disallow: /private/

Geen toegang tot één specifiek bestand voor alle robots

User-agent: *
Disallow: /directory/some-pdf.pdf

Geen toegang tot /admin/ voor Googlebot en /private/ voor Slurp

User-agent: googlebot
Disallow: /admin/

User-agent: Slurp
Disallow: /private/

Robots.txt voor WordPress

Het robots.txt bestand hieronder is speciaal geoptimaliseerd voor WordPress, er vanuitgaande dat:

  • Je de admin sectie niet wilt laten crawlen.
  • Je interne zoekresultaat pagina’s op jouw website niet wilt laten crawlen.
  • Je de tag en author archief pagina’s niet wilt laten crawlen.
  • Je de 404 pagina niet wilt laten crawlen.

User-agent: *
Disallow: /wp-admin/ #geen toegang tot admin sectie.
Disallow: /wp-login.php#geen toegang tot admin sectie.
Disallow: /search/ #geen toegang tot interne zoekresutlaat pagina’s.
Disallow: *?s=*#geen toegang tot interne zoekresutlaat pagina’s.
Disallow: *?p=* #geen toegang tot pagina’s als permalinks niet werken.
Disallow: *&p=*#geen toegang tot pagina’s als permalinks niet werken.
Disallow: *&preview=* #geen toegang tot preview pagina’s.
Disallow: /tag/ #geen toegang tot tag archief pagina’s
Disallow: /author/ #geen toegang tot author archief pagina’s.
Disallow: /404-error/ #geen toegang tot de 404 pagina.

Sitemap: https://www.voorbeeld.nl/sitemap_index.xml

Nota bene: deze robots.txt werkt in de meeste gevallen. Zorg er echter voor dat je hem altijd aanpast en toepast op jouw specifieke situatie.

Wat zijn de beperkingen van Robots.txt?

Robots.txt bestand bevat richtlijnen

Hoewel het robots.txt bestand goed wordt nageleefd door zoekmachines, blijft het een richtlijn en geen mandaat.

Pagina’s worden nog steeds vertoont in de zoekresultaten

Pagina’s die niet toegankelijk zijn voor zoekmachines door de robots.txt, kunnen nog steeds verschijnen in de zoekresultaten als ze gelinkt worden vanaf een pagina’s die wel gecrawld wordt. Dit ziet er zo uit:

Zoekresultaat toch in Google ondanks robots.txt

Protip: Het is mogelijk om deze URLs te verwijderen uit de zoekresultaten met Google Search Console’s URL verwijderen tool. Vergeet niet dat Google deze URLs slechts tijdelijk verwijderd. Verwijder de URLs iedere 90 dagen handmatig om te voorkomen dat ze weer verschijnen in de zoekresultaten.

Caching

Google heeft aangegeven dat een robots.txt bestand doorgaans 24 uur in de cache wordt opgeslagen. Houd hier rekening mee als je wijzigingen in het robots.txt bestand maakt.

Het is onduidelijk hoe andere zoekmachines omgaan met het cachen van robots.txt bestanden.

Bestandsgrootte

Google ondersteunt momenteel een maximale bestandsgrootte van 500 kb voor robots.txt bestanden. Alle inhoud na dit maximum kan worden genegeerd.

Het is onduidelijk of andere zoekmachines een maximale bestandsgrootte hanteren.

Veelgestelde vragen over Robots.txt

  1. Kan ik met het robots.txt bestand voorkomen dat pagina’s vertoont worden in de zoekmachine resultaten pagina’s?
  2. Moet ik voorzichtig zijn met het robots.txt bestand?
  3. Is het illegaal om het robots.txt bestand te negeren tijdens het crawlen van een website?
  4. Ik heb geen robots.txt bestand. Crawlen zoekmachines mijn website wel?
  5. Kan ik een Noindex gebruiken in het robots.txt betand in plaats van een Disallow?
  6. Welke zoekmachines ondersteunen het robots.txt bestand?
  7. Hoe voorkom ik dat zoekmachines de zoekresultaten op mijn WordPress website indexeren?

1. Kan ik met het robots.txt bestand voorkomen dat pagina’s vertoont worden in de zoekmachine resultaten pagina’s?

Nee, dit komt er zo uit te zien:

Verder: Als Google geen toegang heeft tot een pagina middels de robots.txt en de pagina op zichzelf een <meta name="robots" content="noindex,nofollow"> tag bevat, dan zullen zoekmachines de pagina alsnog indexeren. Ze weten namelijk niet af van de <meta name="robots" content="noindex,nofollow"> omdat ze geen toegang hebben tot de pagina.

2. Moet ik voorzichtig zijn met het robots.txt bestand?

Ja, maar wees echter niet bang om er gebruik van te maken. Het is een geweldig hulpmiddel voor het beter laten crawlen van jouw website door Google.

3. Is het verboden om het robots.txt bestand te negeren tijdens het crawlen van een website?

In theorie niet. Het robots.txt bestand is een optionele richtlijn voor zoekmachines. Vanuit juridisch perspectief kunnen wij hier echter niets over zeggen. Bij twijfel, laat je adviseren door een jurist.

4. Ik heb geen robots.txt bestand. Crawlen zoekmachines mijn website wel?

Ja. Als zoekmachines geen robots.txt bestand aantreffen gaan ze ervan uit that er geen richtlijnen zijn en crawlen ze de hele website.

5. Kan ik een Noindex gebruiken in het robots.txt betand in plaats van een Disallow?

Nee, dit raden wij af. Google raadt dit ook specifiek af.

6. Welke zoekmachines ondersteunen het robots.txt bestand?

Alle grote zoekmachines ondersteunen het robots.txt bestand:

7. Hoe voorkom ik dat zoekmachines de zoekresultaten op mijn WordPress website indexeren?

Neem de volgende richtlijnen op in je robots.txt bestand. Dit voorkomt dat zoekmachines deze pagina’s indexeren, er van uitgaande dat er geen wijzigingen zijn aangebracht in het functioneren van de zoekresultaten pagina’s.

User-agent: *
Disallow: /?s=
Disallow: /search/

Meer lezen over robots.txt:

Waarom wachten? Probeer het direct.

Eindelijk doorhebben wat er werkelijk gebeurt op jouw website.
Gelieve een geldige domeinnaam (www.voorbeeld.nl) op te geven.