Over robots.txt

Een robots.txt-bestand maken

Als je een sitehostingservice gebruikt, zoals Wix of Blogger, hoef je mogelijk geen robots.txt-bestand te maken of te bewerken.

Aan de slag

Een robots.txt-bestand bevindt zich in de hoofdmap van je site. Zo bevindt het robots.txt-bestand voor de site www.example.com zich in www.example.com/robots.txt. Het bestand robots.txt is een plat tekstbestand dat in overeenstemming is met de Robots Exclusion Standard. Een robots.txt-bestand bestaat uit een of meer regels. Elke regel zorgt ervoor dat een bepaalde crawler geen (of juist wel) toegang heeft tot een opgegeven bestandspad op die website.

Hier is een eenvoudig robots.txt-bestand met twee regels die daarna worden uitgelegd:

# Regel 1
User-agent: Googlebot
Disallow: /nogooglebot/

# Regel 2
User-agent: *
Allow: /

Sitemap: http://www.example.com/sitemap.xml

 

Uitleg:

  1. De user-agent met de naam Googlebot mag de map http://example.com/nogooglebot/ of submappen daarvan niet crawlen.
  2. Alle andere user-agents hebben toegang tot de volledige site. (Dit hadden we ook kunnen weglaten, aangezien standaard wordt aangenomen dat de agents volledige toegang hebben, waardoor het resultaat dus hetzelfde is.)
  3. Het sitemapbestand van de site bevindt zich op http://www.example.com/sitemap.xml.

We geven later nog een gedetailleerder voorbeeld.

Eenvoudige robots.txt-richtlijnen

Hier volgen enkele basisrichtlijnen voor robots.txt-bestanden. We raden je aan de volledige syntaxis van robots.txt-bestanden door te nemen, omdat de robots.txt-syntaxis enigszins subtiel gedrag bevat dat je moet begrijpen.

Indeling en locatie

Je kunt vrijwel elke teksteditor gebruiken om een robots.txt-bestand te maken. Je moet een standaard ASCII- of UTF-8-tekstbestand met de teksteditor kunnen maken. Gebruik geen tekstverwerker, aangezien tekstverwerkers de bestanden vaak opslaan in een eigen indeling en onverwachte tekens kunnen toevoegen, zoals gekrulde aanhalingstekens. Deze kunnen problemen voor crawlers veroorzaken.

Gebruik de robots.txt-tester om robots.txt-bestanden voor je site te schrijven of te bewerken. Met deze tool kun je de syntaxis en het gedrag voor je site testen.

Indelings- en locatieregels:

  • Het bestand moet de naam robots.txt hebben.
  • Je site mag slechts één robots.txt-bestand bevatten.
  • Het robots.txt-bestand moet zich op het hoofddomein bevinden van de websitehost waarop het bestand van toepassing is. Als je bijvoorbeeld het crawlen van alle URL's onder http://www.example.com/ wilt beheren, moet het robots.txt-bestand zich op http://www.example.com/robots.txt bevinden. Het bestand mag niet in een submap worden geplaatst (bijvoorbeeld in http://example.com/pages/robots.txt). Als je niet zeker weet hoe je toegang krijgt tot de hoofdmap van je website of hiervoor rechten nodig hebt, neem je contact op met je webhostingprovider. Als je geen toegang hebt tot de hoofdmap van je website, gebruik je een alternatieve blokkeringsmethode zoals metatags.
  • Een robots.txt-bestand kan van toepassing zijn op subdomeinen (bijvoorbeeld http://website.example.com/robots.txt) of op niet-standaardpoorten (bijvoorbeeld http://example.com:8181/robots.txt).
  • Opmerkingen zijn willekeurige regels. 

Syntaxis

  • Het robots.txt-bestand is een ASCII- of UTF-8-tekstbestand. Er zijn geen andere tekens toegestaan.
  • Een robots.txt-bestand bestaat uit een of meer regels.
  • Elke regel bestaat uit meerdere instructies, met één instructie per regel.
  • Een regel geeft de volgende informatie:
    • Op wie de regel van toepassing is (de user-agent)
    • Welke mappen of bestanden die agent kan openen en/of
    • Welke mappen of bestanden die agent niet kan openen
  • Regels worden van boven naar beneden verwerkt en een agent kan slechts aan één regelset voldoen. Dit is de eerste, meest specifieke regel waaraan de betreffende user-agent voldoet.
  • De standaardaanname is dat een user-agent een pagina of map kan crawlen die niet wordt geblokkeerd door de regel Disallow:.
  • Regels zijn hoofdlettergevoelig. Disallow: /file.asp is bijvoorbeeld wel van toepassing op http://www.example.com/file.asp, maar niet op http://www.example.com/File.asp.

De volgende instructies worden gebruikt in robots.txt-bestanden:

  • User-agent: [vereist, een of meer per regel] De naam van een zoekmachinerobot (webcrawlersoftware) waarop de regel van toepassing is. Voor elke regel is dit de eerste tekstregel. De meeste namen van user-agents staan in de Robots Database of in de Google-lijst met user-agents. Ondersteunt het jokerteken * voor een padvoorvoegsel of -achtervoegsel of een volledige tekenreeks. Wanneer een sterretje (*) wordt gebruikt zoals in het onderstaande voorbeeld, is de regel van toepassing op alle crawlers met uitzondering van de diverse AdsBot-crawlers. Deze moeten expliciet worden vermeld. (Zie de lijst met Google-crawlernamen.) Voorbeelden:
    # Voorbeeld 1: Blokkeer alleen Googlebot
    User-agent: Googlebot
    Disallow: /
    
    # Voorbeeld 2: Blokkeer Googlebot en AdsBot
    User-agent: Googlebot
    User-agent: AdsBot-Google
    Disallow: /
     
    # Voorbeeld 3: Blokkeer alle behalve AdsBot-crawlers
    User-agent: * 
    Disallow: /
  • Disallow: [ten minste een of meer Disallow- of Allow-vermeldingen per regel] Een map of pagina, ten opzichte van het hoofddomein, die niet door de user-agent moet worden gecrawld. In het geval van een pagina moet de volledige paginanaam worden vermeld zoals deze wordt weergegeven in een browser. In het geval van een map moet er een / achter de naam worden geplaatst.  Ondersteunt het jokerteken * voor een padvoorvoegsel of -achtervoegsel of een volledige tekenreeks.
  • Allow: [ten minste een of meer Disallow- of Allow-vermeldingen per regel] Een pagina of map, ten opzichte van het hoofddomein, die moet worden gecrawld door de opgegeven user-agent. Hiermee kan de instructie Disallow worden overschreven, zodat een submap of pagina in een niet-toegestane map kan worden gecrawld. In het geval van een pagina moet de volledige paginanaam worden vermeld zoals deze wordt weergegeven in een browser. In het geval van een map moet er een / achter de naam worden geplaatst. Ondersteunt het jokerteken * voor een padvoorvoegsel of -achtervoegsel of een volledige tekenreeks.
  • Sitemap: [optioneel, nul of meer per bestand] De locatie van een sitemap voor deze website. Moet een volledig gekwalificeerde URL zijn; Google overweegt en controleert geen http/https/www/niet-www-alternatieven. Sitemaps zijn een goede manier om aan te geven welke content Google moet crawlen, in tegenstelling tot welke content Google wel of niet mag crawlen. Meer informatie over sitemaps. Voorbeeld:
    Sitemap: https://example.com/sitemap.xml
    Sitemap: http://www.example.com/sitemap.xml

Onbekende zoekwoorden worden genegeerd.

Nog een voorbeeldbestand

Een robots.txt-bestand bestaat uit een of meer blokken regels, die elk beginnen met een regel User-agent waarmee de target van de regels wordt gespecificeerd. Hier volgt een bestand met twee regels. De inline-opmerkingen leggen de regels uit:

# Googlebot blokkeren voor example.com/directory1/... en example.com/directory2/...
# maar wel toegang bieden tot directory2/subdirectory1/...
# Alle andere mappen op de site zijn standaard toegestaan.
User-agent: googlebot
Disallow: /directory1/
Disallow: /directory2/
Allow: /directory2/subdirectory1/

# De hele site blokkeren voor anothercrawler.
User-agent: anothercrawler
Disallow: /

Volledige syntaxis van robots.txt

Je kunt hier de volledige robots.txt-syntaxis vinden. Aangezien de robots.txt-syntaxis enkele lastige onderdelen kent die belangrijk zijn om te leren, is het raadzaam de volledige documentatie te lezen.

Handige robots.txt-regels

Hier volgen enkele veelgebruikte handige robots.txt-regels:

Regel Voorbeeld
Voorkomen dat de website wordt gecrawld. Vergeet niet dat URL's van de website in bepaalde situaties wel kunnen worden geïndexeerd, ook wanneer ze niet zijn gecrawld. Opmerking: Dit is niet van toepassing op de diverse AdsBot-crawlers. Deze moeten expliciet worden vermeld.
User-agent: *
Disallow: /
Voorkomen dat een map en de bijbehorende content worden gecrawld door een slash (/) achter de mapnaam te plaatsen. Denk erom dat je het robots.txt-bestand niet gebruikt om de toegang tot privécontent te blokkeren. Gebruik in plaats hiervan een geschikte verificatiemethode. URL's die in het robots.txt-bestand worden geblokkeerd, kunnen worden geïndexeerd zonder dat ze worden gecrawld en het robots.txt-bestand kan door iedereen worden bekeken en eventueel de locatie van je privécontent openbaar maken.
User-agent: *
Disallow: /calendar/
Disallow: /junk/
Eén crawler toegang geven.
User-agent: Googlebot-news
Allow: /

User-agent: *
Disallow: /
Eén crawler blokkeren.
User-agent: Unnecessarybot
Disallow: /

User-agent: *
Allow: /

Voorkomen dat één bepaalde webpagina wordt gecrawld door de pagina te vermelden na de slash (/).

Disallow: /private_file.html

Een bepaalde afbeelding blokkeren voor Google Afbeeldingen.

User-agent: Googlebot-Image
Disallow: /afbeeldingen/honden.jpg

Alle afbeeldingen op je site blokkeren voor Google Afbeeldingen.

User-agent: Googlebot-Image
Disallow: /

Voorkomen dat een bepaald type bestanden wordt gecrawld (bijvoorbeeld .gif).

User-agent: Googlebot
Disallow: /*.gif$

Voorkomen dat de site wordt gecrawld, maar wel AdSense-advertenties weergeven op deze pagina door alle andere webcrawlers dan Mediapartners-Google de toegang te ontzeggen. Bij deze implementatie worden je pagina's verborgen in de zoekresultaten, maar kan de webcrawler Mediapartners-Google ze nog steeds analyseren om te bepalen welke advertenties moeten worden weergegeven voor bezoekers op je site.

User-agent: *
Disallow: /

User-agent: Mediapartners-Google
Allow: /
URL's blokkeren die eindigen op een specifieke tekenreeks. Hiervoor gebruik je $. Met de voorbeeldcode worden alle URL's geblokkeerd die eindigen op .xls:
User-agent: Googlebot
Disallow: /*.xls$
Was dit nuttig?
Hoe kunnen we dit verbeteren?