Online marketing

Robots.txt uitgelegd: wat het bestand doet en welke fouten je voorkomt

Erwin VerbeekBijgewerkt 8 min lezen
Robots.txt uitgelegd: wat het bestand doet en welke fouten je voorkomt
Robots.txt uitgelegd: wat het bestand doet en welke fouten je voorkomt
Foto: freddie marriage fredmarriage, CC0, via Wikimedia Commons

Robots.txt is een klein tekstbestand in de hoofdmap van je website. Het vertelt crawlers zoals Googlebot welke delen van je site ze wel en niet mogen ophalen. Het bestand is simpel, maar een verkeerde regel kan hele delen van je site uit beeld halen. In dit artikel lees je wat robots.txt doet, wat het niet doet en hoe je het veilig controleert.

Waar staat robots.txt en hoe ziet het eruit?

Het bestand staat altijd op de root van je domein, bijvoorbeeld https://www.jouwsite.nl/robots.txt. Google leest alleen het bestand op die plek. Een robots.txt in een submap telt niet mee. Elk subdomein en elk protocol (http of https) heeft een eigen bestand.

Een basisbestand bestaat uit groepen regels. Elke groep begint met User-agent (voor welke crawler de regels gelden), gevolgd door Disallow of Allow met een pad. Met Sitemap wijs je de crawler de weg naar je XML-sitemap.

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://www.jouwsite.nl/sitemap_index.xml

Meer over sitemaps lees je in onze uitleg over de XML-sitemap van je website.

Wat robots.txt niet doet

Dit is het punt waar het vaak misgaat. Robots.txt regelt crawlen, niet indexeren. Google zegt dat zelf in zijn documentatie: een pagina die je blokkeert in robots.txt kan toch in de zoekresultaten verschijnen als andere sites ernaar linken. Google toont dan alleen de URL, zonder beschrijving.

Wil je een pagina echt uit Google houden, gebruik dan een noindex-tag in de HTML of in de HTTP-header. Let op: Google moet de pagina dan wel kunnen crawlen, anders ziet het de noindex nooit. Een pagina blokkeren in robots.txt én noindex geven werkt dus tegen elkaar in.

Robots.txt is ook geen beveiliging. Het bestand is openbaar en kwaadwillende bots houden zich er niet aan. Gevoelige informatie hoort achter een wachtwoord.

Veelgemaakte fouten

  • De hele site blokkeren. Disallow: / onder User-agent: * sluit alle crawlers uit. Dit gebeurt geregeld na een livegang, als een instelling van de testomgeving meegaat. In WordPress zit die optie onder Instellingen, Lezen.
  • CSS en JavaScript blokkeren. Google rendert pagina’s zoals een browser. Kan het je stijlbestanden of scripts niet ophalen, dan ziet het je pagina mogelijk anders dan een bezoeker.
  • Robots.txt gebruiken om dubbele content op te lossen. Daarvoor zijn canonical-tags en redirects bedoeld. Lees ook onze uitleg over de 301-redirect.
  • Hoofdletters en paden. Paden in robots.txt zijn hoofdlettergevoelig. /Blog/ is iets anders dan /blog/.

Robots.txt en AI-crawlers

Steeds meer partijen crawlen het web voor AI-modellen. Een deel daarvan heeft een eigen user-agent die je in robots.txt kunt noemen. OpenAI documenteert bijvoorbeeld GPTBot, en Google heeft het token Google-Extended voor het gebruik van content door zijn AI-modellen. Of je die toelaat is een bedrijfskeuze. Blokkeren betekent ook dat je minder kans hebt om in AI-antwoorden genoemd te worden. Meer achtergrond vind je in ons stuk over Google AI Overviews.

Zo controleer je je robots.txt

  1. Open /robots.txt op je domein in de browser en lees elke regel na.
  2. Bekijk in Google Search Console het robots.txt-rapport. Daar zie je welke versie Google het laatst heeft opgehaald en of er fouten in staan.
  3. Test belangrijke URL’s met de URL-inspectietool in Search Console. Die laat zien of een pagina geblokkeerd wordt.
  4. Neem robots.txt standaard mee in elke technische SEO-audit en na elke migratie.

Twijfel je of je robots.txt goed staat? Online Ambition kijkt al sinds 2006 mee naar de techniek achter websites. Neem contact op, dan lopen we het samen na.

Hoe Google de regels leest

Google beschrijft in de robots.txt-specificatie precies hoe het bestand wordt verwerkt. Een paar punten daaruit zie je in audits vaak verkeerd gaan.

De langste regel wint

Staan er voor dezelfde URL een Allow en een Disallow, dan kiest Google de regel met het langste pad, dus de meest specifieke. Zijn beide regels even specifiek, dan kiest Google de minst beperkende. Daarom werkt het voorbeeld hierboven: Allow: /wp-admin/admin-ajax.php is langer dan Disallow: /wp-admin/ en wint dus voor dat ene bestand.

Jokertekens

Google, Bing en andere grote zoekmachines ondersteunen twee jokertekens. Een * staat voor nul of meer willekeurige tekens. Een $ markeert het einde van de URL. Met Disallow: /*?sort= blokkeer je bijvoorbeeld alle URL’s met een sorteerparameter, en met Disallow: /*.pdf$ alle URL’s die op .pdf eindigen. Test zulke regels altijd voordat je ze live zet. Een te ruime regel met een jokerteken blokkeert snel meer dan je bedoelt.

Eén groep per crawler

Een crawler volgt alleen de groep die het best bij zijn user-agent past. Heb je een groep voor User-agent: * en een aparte groep voor User-agent: Googlebot, dan negeert Googlebot de algemene groep helemaal. Regels die voor alle crawlers moeten gelden, moet je dan ook in de Googlebot-groep herhalen. Dit is een fout die we bij audits regelmatig tegenkomen.

Wat gebeurt er als robots.txt niet bereikbaar is?

Het antwoord van je server op /robots.txt bepaalt wat Google doet. Volgens de documentatie van Google gaat het zo:

  • 200 (gevonden). Google leest en volgt de regels.
  • 3xx (doorverwijzing). Google volgt minstens vijf redirects. Daarna behandelt het de situatie als een 404.
  • 4xx (niet gevonden), behalve 429. Google gedraagt zich alsof er geen robots.txt is. Alles mag dus worden gecrawld.
  • 5xx (serverfout) en 429. Google ziet dit als een tijdelijke fout en is voorzichtiger. Bij aanhoudende serverfouten kan het crawlen van de hele site stilvallen.

Dat laatste punt is belangrijk na een serverwissel of bij een firewall die Googlebot blokkeert. Een robots.txt die een 5xx teruggeeft, kan dus meer schade doen dan een ontbrekend bestand.

Caching: wijzigingen zijn niet direct zichtbaar

Google bewaart de inhoud van robots.txt meestal tot 24 uur. Als verversen niet lukt, bijvoorbeeld door time-outs of serverfouten, kan dat langer zijn. Heb je per ongeluk de hele site geblokkeerd en het daarna hersteld, dan kan het dus even duren voordat Google weer crawlt. In het robots.txt-rapport van Search Console kun je Google vragen de nieuwste versie op te halen.

Technische eisen aan het bestand

  • Het bestand moet platte tekst zijn met UTF-8-codering. Tekens buiten UTF-8 kan Google negeren, waardoor regels ongeldig worden.
  • Paden moeten met een / beginnen en zijn hoofdlettergevoelig.
  • Google verwerkt maximaal 500 KiB. Een groter bestand is vaak een teken dat er te veel losse URL’s in staan in plaats van patronen.

Robots.txt in WordPress

WordPress maakt zelf een virtuele robots.txt aan als er geen echt bestand op de server staat. SEO-plugins zoals Rank Math en Yoast laten je dat bestand vanuit het dashboard aanpassen. Staat er ook een fysiek robots.txt-bestand in de hoofdmap, dan gaat dat voor en zie je je wijzigingen in de plugin niet terug. Controleer daarom altijd de live versie op /robots.txt, niet alleen de instelling in de plugin.

Een korte checklist

  1. Geeft /robots.txt een 200 terug, ook op de www- en de niet-www-variant?
  2. Staat er geen Disallow: / voor alle crawlers?
  3. Zijn CSS, JavaScript en afbeeldingen bereikbaar?
  4. Staat de juiste sitemap-URL erin?
  5. Zijn pagina’s met een noindex niet tegelijk geblokkeerd?
  6. Heb je bewust gekozen welke AI-crawlers je toelaat?

Wil je weten hoe je site er technisch voor staat? Bekijk onze uitleg over de SEO-scan of over een SEO-migratie, waarbij robots.txt een vast controlepunt is.

Robots.txt, noindex of X-Robots-Tag?

Drie middelen worden vaak door elkaar gehaald. Google legt in zijn documentatie over het blokkeren van indexering uit wanneer je welk middel gebruikt.

  • Robots.txt houdt crawlers weg van URL’s. Gebruik het voor onderdelen die niet gecrawld hoeven te worden, zoals interne zoekresultaten of eindeloze filtercombinaties.
  • De meta-tag noindex in de HTML houdt een pagina uit de zoekresultaten. Google moet de pagina daarvoor wel kunnen ophalen.
  • De HTTP-header X-Robots-Tag doet hetzelfde als noindex, maar werkt ook voor bestanden zonder HTML, zoals pdf’s en afbeeldingen.

Een veelgemaakte fout is een pagina eerst met noindex uit Google halen en hem daarna in robots.txt blokkeren om crawlen te besparen. Als Google de pagina niet meer kan ophalen, ziet het ook de noindex niet meer. Verwijder de pagina eerst uit de index, en blokkeer pas daarna als dat nog nodig is.

Wanneer robots.txt echt verschil maakt: crawlbudget

Voor de meeste kleine en middelgrote sites is crawlbudget geen probleem. Google schrijft in zijn gids over crawlbudget dat die vooral bedoeld is voor grote sites met veel pagina’s die vaak veranderen. Heb je een webshop met filters die duizenden URL-combinaties maken, dan kan robots.txt helpen om Googlebot naar de pagina’s te sturen die ertoe doen. Google noemt robots.txt in die gids als middel om URL’s te blokkeren die je niet gecrawld wilt hebben, zoals filtercombinaties zonder eigen waarde.

Voor een webshop is dat een afweging. Een filterpagina die zelf zoekvolume heeft, bijvoorbeeld “rode sneakers dames”, wil je juist wel laten crawlen en indexeren. Blokkeer alleen combinaties die geen eigen zoekvraag hebben. Lees ook onze uitleg over SEO voor een webshop.

Een voorbeeld voor een WordPress-site

Voor een gemiddelde WordPress-site volstaat vaak een kort bestand:

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /search/
Sitemap: https://www.jouwsite.nl/sitemap_index.xml

De regels voor /?s= en /search/ houden crawlers weg van interne zoekresultaten, die geen eigen waarde hebben in Google. Blokkeer geen mappen als /wp-content/ of /wp-includes/, want daarin staan de stijlbestanden en scripts die Google nodig heeft om je pagina’s goed te renderen.

Het robots.txt-rapport in Search Console

In Google Search Console vind je onder Instellingen het robots.txt-rapport. Daar zie je welke robots.txt-bestanden Google voor de belangrijkste hosts van je property heeft gevonden, wanneer Google ze voor het laatst heeft opgehaald en of er waarschuwingen of fouten in staan. Heb je een fout hersteld, dan kun je via dat rapport vragen om het bestand opnieuw op te halen. Zo hoef je niet te wachten tot Google de gecachte versie vanzelf ververst. Controleer het rapport na elke livegang, migratie of wijziging in je hosting. Het is een van de eerste plekken waar je ziet dat er iets mis is.

Veelgestelde vragen

Waar moet robots.txt staan?

Altijd in de hoofdmap van je domein, zoals /robots.txt. Bestanden in een submap leest Google niet. Bron: Google Search Central.

Haalt robots.txt een pagina uit Google?

Nee. Robots.txt voorkomt crawlen, niet indexeren. Gebruik noindex om een pagina uit de resultaten te houden. Bron: Google Search Central, noindex.

Is robots.txt verplicht?

Nee. Zonder bestand mag een crawler alles ophalen. Een bestand is vooral handig om crawlers weg te houden uit onderdelen die geen waarde hebben. Bron: Google Search Central.

Hoe groot mag robots.txt zijn?

Google verwerkt maximaal 500 KiB. Wat daarna komt, negeert Google. Bron: Google, robots.txt-specificatie.

Kan ik AI-crawlers blokkeren met robots.txt?

Ja, voor crawlers die zich eraan houden. OpenAI noemt GPTBot als user-agent die je kunt uitsluiten. Bron: OpenAI, overzicht crawlers.

Online Ambition, Soerense Zand Noord 26, 6961 RB Eerbeek. Opgericht in 2006.

Erwin Verbeek
Erwin VerbeekSEO-specialist met ruim 20 jaar ervaring en oprichter van Online Ambition. Meer over Erwin
Gratis scan

Benieuwd waar jouw kansen liggen?

Vraag de gratis scan aan. Je krijgt een eerlijk beeld van je vindbaarheid in Google en AI, en wat je eraan kunt doen.

Bel direct: 0313 312 116 Stuur een WhatsApp
Je gegevens gebruiken we alleen om contact met je op te nemen.