Direct naar de inhoud

Cookie-instellingen

Kies per soort welke cookies je toestaat. Je kunt je keuze altijd wijzigen via Cookie-instellingen onderaan elke pagina. Privacyverklaring

Noodzakelijk

Altijd aan

Nodig om in te loggen, je winkelwagen te bewaren en je keuzes te onthouden. Deze staan altijd aan.

Welke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: je sessie en ingelogd blijven
  • weboke_basket: je winkelwagen
  • wkBtwIncl: prijzen met of zonder btw tonen
  • wok_cookies: je cookiekeuze, 12 maanden

Meet welke advertentie tot een bezoek of bestelling leidt, zodat we niet betalen voor advertenties die niets doen.

Welke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), tot 90 dagen
  • OpenAI Ads, advertenties in ChatGPT
  • wok_aff: via welke partner je bij ons kwam (affiliateprogramma), 60 dagen

4,6

Land en taal

Elk land heeft zijn eigen site, met prijzen en btw van dat land.

Bekijken

robots.txt: wat je wel en niet blokkeert

Module 3: De technische basis van een pagina · Leestijd: 13 minuten

Leerdoel: Na deze les kun je een robots.txt lezen en schrijven, zelf uitrekenen of een adres voor Googlebot mag, uitleggen wat er gebeurt bij een ontbrekend of onbereikbaar bestand, en weet je waarom robots.txt geen beveiliging en geen noindex is.

Kernbegrippen: robots.txt (RFC 9309), crawler, groep, User-agent, Disallow, Allow, langste overeenkomst, gelijke lengte (Allow wint), * en $, Sitemap:, statuscode van robots.txt (4xx, 5xx), 500 KiB, 24 uur cache, geen beveiliging, geen noindex, AI-crawlers (Google-Extended, GPTBot)

Een bordje bij de voordeur

Een robots.txt is een gewoon tekstbestand in de hoofdmap van je site, altijd op hetzelfde adres: https://www.example.com/robots.txt. Een nette crawler (les 1.2) vraagt dat bestand eerst op en leest welke delen van de site hij niet mag bezoeken. Het is een bordje bij de voordeur, geen slot: Googlebot en Bingbot houden zich eraan, maar een kwaadwillende robot leest het bordje gewoon en loopt door.

Sinds 2022 is het protocol een officiële internetstandaard: RFC 9309. Google beschrijft daarnaast precies hoe Googlebot het bestand leest. Beide bronnen gebruiken we in deze les.

Een paar vaste afspraken:

  • Het bestand staat in de hoofdmap van de host. Een robots.txt in /blog/robots.txt wordt niet gelezen.
  • Het geldt alleen voor die host, dat protocol en die poort. https://www.example.com/robots.txt geldt niet voor https://shop.example.com/; die heeft een eigen bestand nodig.
  • Het is platte tekst in UTF-8.

Hoe het bestand is opgebouwd

User-agent: *
Disallow: /winkelmand/
Disallow: /zoeken
Allow: /zoeken/tips

User-agent: Googlebot
Disallow: /concepten/

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

Het bestand bestaat uit groepen. Een groep begint met een of meer regels User-agent: en daarna de regels Disallow: (niet bezoeken) en Allow: (wel bezoeken). Het pad na Disallow: is het begin van een adres: Disallow: /zoeken blokkeert /zoeken, /zoeken?q=rozen en ook /zoekenmachine, want ze beginnen allemaal met /zoeken.

De regel Sitemap: hoort bij geen enkele groep en vertelt waar je sitemap staat (les 3.4). Google eist een volledig adres met https:// en hostnaam.

Een Disallow: zonder pad blokkeert niets. Disallow: / blokkeert alles.

Welke groep geldt?

Een crawler kiest één groep: die met de meest specifieke naam die bij hem past. Googlebot volgt dus de groep User-agent: Googlebot als die er is, en negeert dan de groep * helemaal. In het voorbeeld hierboven mag Googlebot dus wel in /winkelmand/: die regel staat alleen in de *-groep. Dit is een van de meest gemaakte fouten: wie een aparte Googlebot-groep maakt, moet alle regels die ook voor Google gelden daar herhalen.

De naam is niet hoofdlettergevoelig (googlebot = Googlebot). Staan er twee groepen voor dezelfde crawler, dan voegt Google ze samen.

Welke regel wint?

Binnen de groep kan een adres onder meerdere regels vallen. Dan geldt:

  1. De langste overeenkomende regel wint (het meest specifieke pad).
  2. Zijn een Allow en een Disallow precies even lang, dan wint Allow. Google noemt dat "de minst beperkende regel".

Twee tekens hebben een speciale betekenis:

TekenBetekenisVoorbeeldTreft welTreft niet
*nul of meer willekeurige tekensDisallow: /*?sessie=/rozen?sessie=12/rozen?kleur=rood
$einde van het adresDisallow: /*.pdf$/folder.pdf/folder.pdf?v=2

Rekenvoorbeeld met de groep * van hierboven, voor de crawler Bingbot (die geen eigen groep heeft):

AdresOvereenkomende regelsUitkomst
/winkelmand/Disallow: /winkelmand/mag niet
/zoeken/tipsDisallow: /zoeken (7 tekens) en Allow: /zoeken/tips (12)mag: de langste wint
/zoeken?q=rozenDisallow: /zoekenmag niet
/bruidsboekettengeenmag
/robots.txt(altijd)mag: robots.txt zelf is altijd toegestaan

Als het bestand er niet is, of de server hapert

Wat Google doet hangt af van de statuscode waarmee je server op /robots.txt antwoordt:

AntwoordWat Google doet
200 (gevonden)Leest de regels
Doorsturing (301, 302)Volgt minstens vijf stappen; daarna behandelt Google het als 404
4xx, zoals 404 of 403 (behalve 429)Alsof er geen robots.txt is: alles mag
5xx of geen verbindingDe eerste 12 uur crawlt Google de site niet en probeert het opnieuw; daarna tot 30 dagen de laatste goede versie uit de cache. Blijft het daarna mis terwijl de site verder werkt, dan doet Google alsof er geen robots.txt is

Een ontbrekende robots.txt is dus geen probleem: dan mag alles. Een robots.txt die een serverfout geeft, is wél een probleem: dan houdt Google tijdelijk op met crawlen. RFC 9309 is daar nog strenger: bij een onbereikbaar bestand moet een crawler aannemen dat alles verboden is.

Verder:

  • Google leest hoogstens 500 KiB; wat daarna staat, wordt genegeerd.
  • Google bewaart robots.txt meestal tot 24 uur in de cache. Een wijziging werkt dus niet meteen. In Search Console vind je bij Instellingen het robots.txt-rapport: welke versie Google het laatst heeft opgehaald, met fouten en waarschuwingen, en een knop om opnieuw te laten ophalen.
  • Google kent alleen User-agent, Allow, Disallow en Sitemap. Regels als Crawl-delay of Noindex negeert Googlebot.

Wat robots.txt niet doet

Het is geen beveiliging

Iedereen kan je robots.txt lezen, ook wie kwaad wil. Een regel Disallow: /beheer-oud/ wijst juist aan waar iets interessants staat. RFC 9309 zegt het zelf: de regels zijn geen vorm van toegangsbeveiliging. Echt afschermen doe je met een wachtwoord of door de server toegang te laten weigeren, bijvoorbeeld met .htaccess (zie Verder lezen).

Het is geen noindex

Dit is de belangrijkste les. robots.txt regelt crawlen, niet indexeren (les 1.3). Google schrijft letterlijk dat robots.txt geen manier is om een pagina uit Google te houden. Linken andere sites naar een geblokkeerd adres, dan kan het adres toch in de zoekresultaten verschijnen, alleen zonder beschrijving.

Wil je een pagina uit de zoekresultaten houden, gebruik dan noindex (in een <meta name="robots"> of de kopregel X-Robots-Tag) of zet de pagina achter een wachtwoord. En pas op voor de klassieke val: zet je een pagina met noindex óók in robots.txt op Disallow, dan kan Google de pagina niet bezoeken en de noindex dus nooit lezen.

Blokkeer geen onderdelen die Google nodig heeft

Blokkeer geen mappen met stylesheets, scripts of afbeeldingen die je pagina nodig heeft om goed te tonen. Google bekijkt je pagina zoals een browser dat doet; zonder die bestanden begrijpt Google de pagina slechter.

AI-crawlers

Steeds meer bedrijven verzamelen webpagina's voor kunstmatige intelligentie. Een paar daarvan kun je met robots.txt aanspreken:

  • Google-Extended is geen aparte robot, maar een naam in robots.txt waarmee je aangeeft of Google je inhoud mag gebruiken voor het trainen van Gemini-modellen en voor grounding. Google schrijft dat dit geen invloed heeft op je opname of positie in Google Zoeken.
  • GPTBot van OpenAI verzamelt pagina's die gebruikt kunnen worden voor het trainen van modellen. OAI-SearchBot is voor de zoekfunctie van ChatGPT: blokkeer je die, dan verschijnt je site niet in de zoekantwoorden van ChatGPT.
User-agent: GPTBot
Disallow: /

Of je dat wilt, is een keuze, geen technische noodzaak. Blokkeer je per ongeluk een zoekrobot (Googlebot, Bingbot, OAI-SearchBot), dan word je daar minder goed gevonden.

In de praktijk: waar staat je robots.txt?

  • De AI Builder van WebOké maakt bij het publiceren zelf een robots.txt met User-agent: *, Allow: / en een Sitemap:-regel. Zet je de site op niet indexeren, of is het een gratis demo, dan staat er Disallow: /.
  • WordPress maakt een virtuele robots.txt met een verwijzing naar de sitemap. Zet je zelf een bestand robots.txt in de webmap, dan gaat dat voor.
  • Een eigen site op een hostingpakket: je zet robots.txt in de webmap (bij DirectAdmin public_html) via Bestandsbeheer of FTP.

Bij andere aanbieders werkt het vergelijkbaar: het bestand moet altijd op /robots.txt van je host bereikbaar zijn.

Samenvatting

  • robots.txt staat op /robots.txt van elke host en vertelt nette crawlers wat ze niet mogen bezoeken.
  • Een crawler volgt één groep (de meest specifieke naam, anders *). Binnen de groep wint de langste regel; bij gelijke lengte wint Allow.
  • 404 betekent "alles mag", een serverfout laat Google tijdelijk stoppen met crawlen. Google leest 500 KiB en cachet tot 24 uur.
  • robots.txt is geen beveiliging en geen noindex. Blokkeer een noindex-pagina niet in robots.txt.
  • AI-crawlers als GPTBot en de naam Google-Extended kun je apart regelen, zonder gevolgen voor Google Zoeken.

Quiz

1. In robots.txt staan een groep User-agent: * met Disallow: /winkelmand/ en een groep User-agent: Googlebot met alleen Disallow: /concepten/. Mag Googlebot /winkelmand/ crawlen?



2. In de groep voor Googlebot staan Disallow: /folder en Allow: /folder. Mag /folder/rozen.html?



3. Je robots.txt geeft een week lang een 503-fout. Wat doet Google?



4. Je wilt dat de pagina /bedankt niet in Google verschijnt. Wat is de beste aanpak?



5. Wat gebeurt er in Google Zoeken als je User-agent: Google-Extended met Disallow: / toevoegt?



Opdracht

Opdracht A3.3: Je robots.txt doorgelicht. Vul je domein in, en daarnaast drie adressen van je eigen site (bijvoorbeeld de homepage, een productpagina en je winkelmand of zoekpagina) met per adres je verwachting: mag Googlebot hem crawlen, ja of nee? Het programma haalt je robots.txt op, kijkt naar de statuscode, de grootte, de groepen en de Sitemap:-regel, en rekent voor elk adres na wat Googlebot volgens de regels uit deze les mag. Klopt jouw verwachting? Geen eigen site? Gebruik www.wikipedia.org.

Opdracht A3.3: Je robots.txt doorgelicht








Wat je invult en wat we vinden, slaan we niet op. Je browser onthoudt je antwoorden en of je de opdracht hebt gehaald. Ben je aangemeld, dan bewaren we alleen dat je de opdracht (bijna) goed had in Mijn cursussen; daar kun je het ook verwijderen.

Verder lezen

De stappen in deze artikelen gelden voor de panelen van WebOké; bij andere aanbieders werkt het vergelijkbaar.

Even geduld…

Stel je domeinen in

Regel per domein de nameservers, de koppeling aan je hosting en wie de eigenaar wordt.

Je domeinen laden…