Robots.txt instellen begint met bepalen wat je wilt tegenhouden: het ophalen van pagina’s, opname in zoekresultaten of toegang tot gegevens. Alleen het eerste regel je met robots.txt. Met de keuzes, voorbeelden en testlijst hieronder bepaal je welke regels jouw website nodig heeft en controleer je of belangrijke pagina’s bereikbaar blijven voor crawlers.
Bepaal eerst welk probleem je wilt oplossen
Zie je ongewenste URL’s in Google, bezoekt een crawler eindeloze filtercombinaties of staat een testomgeving openbaar? Die situaties vragen elk om een andere ingreep. Een robotsregel toevoegen voordat je het probleem hebt vastgesteld, kan de verkeerde deur sluiten.
Verzamel daarom enkele concrete URL’s. Noteer wat erop staat, hoe bezoekers er komen en wat je ervan verwacht. Controleer vervolgens de HTTP-respons, eventuele noindex-instructies, interne links en de bestaande robotsregels. Met een SEO-audit kun je deze signalen gezamenlijk beoordelen, zodat je geen crawlprobleem probeert op te lossen met een indexatie-instructie.
Crawlen, noindex en toegang zijn drie afzonderlijke keuzes
Crawlen: mag een bot de inhoud ophalen?
Robots.txt geeft crawlers instructies over welke paden ze mogen ophalen. Een crawler die die instructies respecteert, bezoekt een geblokkeerd pad niet. Daarmee stuur je het crawlen van je website. Je verwijdert geen pagina en verandert ook niet automatisch wat zoekmachines al over een URL weten.
Een geblokkeerde URL kan nog in zoekresultaten verschijnen, bijvoorbeeld wanneer Google die via links kent. De inhoud kan dan niet worden opgehaald voor een normale inhoudssnippet. Een crawlblokkade is dus geen betrouwbare methode om een URL buiten de zoekresultaten te houden.
Indexatie: houd noindex leesbaar
Wil je dat een openbare pagina niet wordt geïndexeerd? Dan kan een noindex-instructie op de pagina of in een HTTP-header passen. De crawler moet die instructie wel kunnen ophalen. Blokkeer je hetzelfde pad in robots.txt, dan kan Google de noindex missen.
Behandel Disallow en noindex daarom niet als een standaardcombinatie. Bepaal welke instructie je doel bereikt en controleer of deze leesbaar is. Google beschrijft deze voorwaarde in de documentatie over het blokkeren van indexering.
Toegang: beveilig vertrouwelijke inhoud werkelijk
Een robotsbestand is openbaar en vormt geen toegangsslot. Beveilig klantgegevens, interne documenten en testomgevingen met authenticatie en passende toegangsrechten. Een bezoeker kan een geblokkeerde URL nog steeds rechtstreeks openen wanneer de server dat toestaat. Ook kan een bot besluiten je robotsinstructies te negeren.
Plaats robots.txt op de juiste host en rootlocatie
Voor een website op https://www.example.org is de locatie https://www.example.org/robots.txt. Een bestand op /informatie/robots.txt bestuurt niet de hele website. Het bestand hoort op de rootlocatie van de betreffende host.
Volgens Googles robotsregels wordt het bereik bepaald door protocol, host en poort. Een robotsbestand op de www-host geldt niet vanzelf voor een afzonderlijk subdomein. Een testomgeving op proef.example.org vraagt dus om een eigen beoordeling. Ook een andere protocolvariant of niet-standaardpoort moet je apart controleren.
Breng alle publiek bereikbare varianten in kaart, inclusief redirects. Het gaat om wat een crawler daadwerkelijk ontvangt, niet alleen om het bestand dat jij in je beheeromgeving ziet.
Zo lees je User-agent, Disallow, Allow en Sitemap
Een robotsbestand bestaat uit tekstregels. De onderstaande betekenis sluit aan op Googles ondersteuning; andere crawlers kunnen aanvullende regels kennen of anders omgaan met onderdelen van de syntax.
- User-agent: bepaalt voor welke crawler een groep regels bedoeld is. Het sterretje in
User-agent: *richt zich op crawlers waarvoor geen specifiekere toepasselijke groep bestaat. - Disallow: benoemt een pad dat de betreffende crawler niet mag ophalen.
- Allow: maakt een pad toegankelijk binnen een anders geblokkeerd bereik.
- Sitemap: vermeldt de volledige URL van een sitemap. Dit is geen opdracht om alle genoemde pagina’s te indexeren en heft een blokkade niet op.
Een lege regel Disallow: legt geen padblokkade op. Dat verschilt wezenlijk van Disallow: /, dat binnen de toepasselijke groep alle paden blokkeert. Eén teken kan daardoor een groot verschil maken.
Controleer padbereik en de langste match
Voor Google worden padregels op hoofdletters gecontroleerd en kunnen ze een begin van een langer pad beschrijven. Disallow: /klad kan daardoor zowel /klad/voorstel als /kladblok raken. Met /klad/ baken je een ander bereik af. Controleer ook afzonderlijk wat er gebeurt met de URL zonder afsluitende slash.
Bij toepasselijke padregels gebruikt Google de meest specifieke match: de langste overeenkomende padregel. Stel dat /klad/ verboden is, maar /klad/handleiding/ toegestaan. Dan mag Google de handleiding ophalen. Bij even specifieke tegenstrijdige regels geeft Google de minst beperkende regel voorrang.
De volgorde van deze padregels is dus geen eenvoudige lijst waarbij de laatste regel altijd wint. Google ondersteunt ook patronen met * en een eindmarkering met $. Gebruik zulke patronen pas als je hun bereik met concrete URL’s kunt aantonen. De primaire robots.txt-documentatie van Google beschrijft de ondersteunde syntax en selectie van regels.
Let op afzonderlijke groepen voor crawlers
Een specifieke groep voor Googlebot erft bij Google niet simpelweg alle regels uit de algemene sterretjesgroep. Wie groepen toevoegt om één bot anders te behandelen, moet daarom opnieuw beoordelen welke regels voor die bot gelden. Houd het bestand zo eenvoudig mogelijk: elke extra groep vergroot het aantal situaties dat je moet testen.
Keuzematrix: wat beperk je onder welke voorwaarden?
Onderstaande matrix begint bij de diagnose. De juiste keuze hangt af van je URL-structuur, de functie van de pagina en de instructies die al aanwezig zijn. Voor een bredere beoordeling kun je dit opnemen in je technische SEO.
| Onderdeel | Eerst controleren | Voorwaardelijke keuze |
|---|---|---|
| Login en beheer | Is toegang afgeschermd en zijn onderliggende endpoints nodig voor de publieke website? | Beveilig toegang met authenticatie. Overweeg crawlbeperking alleen wanneer je noodzakelijke publieke onderdelen apart kunt vrijhouden. |
| Interne zoekresultaten | Zijn de URL’s geïndexeerd en ontstaan veel nieuwe combinaties? | Bij uitsluiting uit zoekresultaten moet noindex leesbaar zijn. Beoordeel crawlbeperking als afzonderlijk vraagstuk. |
| Filters | Welke combinaties hebben een eigen zoekvraag, bruikbaar aanbod en onderscheidende inhoud? | Houd nuttige filterpagina’s bereikbaar. Onderzoek beperking van aantoonbaar overbodige combinaties. |
| Nuttige SEO-pagina’s | Moeten categorieën, diensten en gidsen organisch gevonden worden? | Houd ze crawlbaar en controleer ook hun indexatie-instructies en interne links. |
| Scripts, CSS en beelden | Zijn deze bestanden nodig om inhoud, navigatie of producten te renderen? | Blokkeer noodzakelijke renderresources niet. Test eventuele uitzonderingen op de werkelijke pagina. |
| Staging | Kan iemand zonder toestemming de omgeving openen? | Scherm de omgeving af met authenticatie of netwerktoegang. Robots.txt vervangt die beveiliging niet. |
Beoordeel filters op inhoud en zoekvraag
Een filter op kleur kan een dunne kopie van een categorie opleveren, maar ook een nuttige selectie waar mensen gericht naar zoeken. Het woord ‘filter’ zegt daarom onvoldoende over de SEO-waarde. Vergelijk het aanbod, de zoekvraag en de mate waarin de pagina zelfstandig bruikbaar is.
Gebruik zoekwoordenonderzoek om die zoekvraag te beoordelen. Leg vervolgens binnen je ecommerce-SEO vast welke selecties een vaste landingspagina krijgen en welke combinaties alleen het winkelen ondersteunen. Blokkeer niet alle parameters omdat enkele combinaties overbodig zijn.
Fictief WordPress-voorbeeld met een gecontroleerde uitzondering
Stel: een fictieve WordPress-website gebruikt het gebruikelijke beheerpad. De beheeromgeving vereist inloggen. Een publieke functie gebruikt daarnaast /wp-admin/admin-ajax.php. De ontwikkelaar heeft vastgesteld dat dit endpoint voor die functie bereikbaar moet blijven. Er staan geen openbare contentpagina’s onder het beheerpad.
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://www.example.org/sitemap_index.xml
Dit voorbeeld beperkt het crawlen van het beheerpad en maakt een specifiekere uitzondering. De Allow-regel verleent geen gebruikersrechten; de applicatie blijft verantwoordelijk voor toegangscontrole. Ook moet de genoemde sitemap daadwerkelijk bestaan. Neem de bestandsnaam niet over zonder de eigen sitemap te openen.
Controleer welke laag de WordPress-uitvoer bepaalt
WordPress kan robots.txt dynamisch of virtueel aanbieden zonder dat er een los bestand in de webroot staat. Een fysiek bestand, plugin, serverconfiguratie of tussenliggende cache kan de uiteindelijke uitvoer beïnvloeden. Daardoor kan een wijziging op de ene plek onzichtbaar blijven in de publieke versie.
Vraag bij onduidelijkheid eerst welke laag de respons produceert. Vergelijk daarna de ingestelde tekst met de tekst die je via het publieke domein ontvangt. Controleer na een wijziging ook of een andere beheerlaag de regels opnieuw overschrijft. Voor dit onderzoek heb je geen verondersteld pluginmenu nodig: de HTTP-respons is het controlepunt.
Fictief webshopvoorbeeld met afgebakende combinaties
Een tweede fictieve website verkoopt opbergartikelen. De nuttige categorieën staan onder /collecties/. Een oude keuzemodule maakt combinaties onder /keuzehulp-combinaties/. Uit onderzoek blijkt in dit scenario dat deze combinaties geen zelfstandige landingspagina’s zijn en onnodig veel crawlbare varianten opleveren. Het doel van de volgende regel is uitsluitend crawlbeperking.
User-agent: *
Disallow: /keuzehulp-combinaties/
Sitemap: https://winkel.example.org/sitemap.xml
Dit is geen garantie dat bestaande combinatie-URL’s uit zoekresultaten verdwijnen. Als dat ook het doel is, moet eerst een afzonderlijk indexatieplan worden gemaakt waarbij Google de benodigde instructies kan lezen. De regel past alleen wanneer de onderzochte URL-structuur overeenkomt met dit fictieve scenario.
Controleer winkelmand, checkout, taalpaden en parameters apart
Het voorbeeld bevat bewust geen aangenomen paden voor winkelmand of checkout. Jouw webshop kan /mandje/ gebruiken, een ander systeem /cart, en een meertalige winkel bijvoorbeeld /de/warenkorb/. Een regel voor één variant hoeft de andere niet te raken.
Ook parameters vragen om echte voorbeelden. /collecties/manden?sortering=prijs is iets anders dan /keuzehulp-combinaties/manden/laag/. De bovenstaande padregel blokkeert die eerste URL niet. Controleer daarnaast of een breed patroon onbedoeld een productvariant, paginering of taalversie raakt die je juist wilt laten ophalen.
Werkblad: leg doel, regel en verwachte uitkomst vast
Maak vóór de wijziging één werkblad met een rij per betrokken URL-type. Geef elke voorgestelde regel een eigenaar en een reden. Een vermelding als ‘goed voor SEO’ is te vaag; ‘het ophalen van oude keuzemodulecombinaties beperken’ is toetsbaar.
| Veld | Wat je vastlegt |
|---|---|
| Omgeving | Protocol, host, eventuele afwijkende poort en locatie van robots.txt. |
| Doel | Crawlbeperking, indexatiekeuze of toegangsbeveiliging. |
| Bewijs | Voorbeeld-URL’s, huidige respons en relevante crawl- of indexatiesignalen. |
| Voorstel | De exacte regel en de crawlergroep waarop die van toepassing is. |
| Uitzonderingen | Pagina’s en resources die bereikbaar moeten blijven. |
| Verificatie | Verwachte uitkomst, gebruikte test en datum van controle. |
| Herstel | Vorige versie, verantwoordelijke en manier om die terug te zetten. |
Test toegestane én geblokkeerde voorbeeld-URL’s
Voor de twee fictieve configuraties kun je onderstaande testgevallen gebruiken. Vervang ze bij je eigen website door bestaande URL’s. ‘Toegestaan’ betekent hier uitsluitend dat de getoonde robotsregels het ophalen niet verhinderen.
| Voorbeeld-URL | Verwacht | Waarom testen? |
|---|---|---|
| https://www.example.org/diensten/website-onderhoud/ | Toegestaan | Een belangrijke openbare pagina moet bereikbaar blijven. |
| https://www.example.org/wp-admin/ | Geblokkeerd | Controleert de bedoelde beheerregel. |
| https://www.example.org/wp-admin/admin-ajax.php | Toegestaan | Controleert de specifiekere uitzondering. |
| https://www.example.org/wp-content/uploads/kast.jpg | Toegestaan | Controleert een openbare afbeelding. |
| https://winkel.example.org/keuzehulp-combinaties/manden/laag/ | Geblokkeerd | Valt binnen het onderzochte combinatiepad. |
| https://winkel.example.org/collecties/manden/ | Toegestaan | Beschermt de bereikbaarheid van een nuttige categorie. |
| https://winkel.example.org/collecties/manden?sortering=prijs | Toegestaan | Toont dat de padregel niet alle filterparameters dekt. |
| https://winkel.example.org/de/collecties/manden/ | Toegestaan | Controleert een afzonderlijke taalvariant. |
Voeg ook grensgevallen toe: een pad zonder afsluitende slash, een vergelijkbare padnaam en een URL met hoofdletters als die voorkomt. Zo ontdek je niet alleen ontbrekende blokkades, maar ook regels die meer raken dan bedoeld.
Publiceer gecontroleerd en lees de publieke versie terug
- Bewaar de uitgangssituatie. Sla de huidige tekst, datum en verantwoordelijke op in versiebeheer of een wijzigingslog.
- Test het voorstel. Gebruik een parser of crawler die de regels van de beoogde zoekmachine correct toepast. Test alle regels samen.
- Voer de wijziging uit bij de juiste bron. Pas het bestand of de configuratie aan die werkelijk de publieke respons bepaalt.
- Open de publieke robots-URL. Controleer de uiteindelijke tekst, HTTP-responscode en eventuele redirects. Een HTML-foutpagina met status 200 is geen correct robotsbestand.
- Controleer pagina’s en resources. Beoordeel of belangrijke inhoud, CSS, scripts en beelden voor de crawler beschikbaar blijven.
- Verifieer met een live controle. Gebruik waar passend live URL-inspectie in Search Console en een aanvullende crawl. Controleer de beschikbare resultaten; een toegestane live test belooft geen indexatie.
Een browsertest alleen is onvoldoende, omdat je browser robotsregels niet als toegangsbeperking toepast. Andersom bewijst een robotsparser niet dat een pagina technisch goed laadt. Je hebt beide soorten controle nodig.
Volg na publicatie bereikbaarheid en crawlgedrag
Controleer na publicatie opnieuw de belangrijkste landingspagina’s en de bedoelde blokkades. Zoekmachines kunnen robotsinformatie tijdelijk cachen; verwacht daarom niet dat elk bezoekpatroon onmiddellijk verandert. Bekijk beschikbare crawlgegevens, serverlogs en indexatiesignalen in samenhang.
Neem de wijzigingsdatum en de gekozen test-URL’s op in je SEO-rapportage. Zo kun je een latere afwijking onderzoeken zonder te gokken welke versie toen actief was. Een aangepast robotsbestand op zichzelf rechtvaardigt geen claim over rankingwinst.
Herstel een verkeerde globale blokkade bij de bron
Staat er onbedoeld Disallow: / voor een relevante crawlergroep? Controleer eerst of je naar productie kijkt en welke configuratielaag de regel toevoegt. Zet vervolgens de laatst gecontroleerde versie terug of verwijder de foutieve blokkade bij die bron.
Werk zo nodig de cache bij die nog een oude versie serveert. Lees daarna opnieuw de publieke respons en herhaal de tests voor belangrijke pagina’s en renderresources. Controleer tegelijk of een staginginstelling ook noindex-instructies naar productie heeft meegenomen. Alleen robots.txt herstellen lost zo’n tweede fout niet op.
Leg vast waardoor de fout ontstond, bijvoorbeeld een gekopieerde serverconfiguratie. Voeg daarna een publicatiecontrole toe die deze specifieke fout kan ontdekken. Herstel van crawling en eventuele zichtbaarheid hoeft niet onmiddellijk zichtbaar te zijn.
Beveilig staging en maak verantwoordelijkheden duidelijk
Een stagingomgeving bevat vaak kopieën van pagina’s, onvoltooide functies of testgegevens. Zet er daadwerkelijke toegangscontrole voor en test zonder bestaande inlogsessie of de afscherming werkt. Een publiek robotsbestand met een verbod maakt de omgeving niet privé.
Laat de ondernemer bepalen welke pagina’s belangrijk zijn voor klanten. De SEO-specialist vertaalt dit naar crawl- en indexatiekeuzes, inclusief uitzonderingen. De ontwikkelaar controleert URLpatronen, authenticatie, resources en de bron van de robotsrespons. Spreek af wie na publicatie de publieke versie controleert en wie bij een fout kan herstellen.
Leg per omgeving vast welk robotsantwoord geldt
Gebruik voor dit werkblad één fictieve leverancier met een openbaar materiaalhandboek. Het handboek staat op https://handboek.example, afbeeldingen en andere bestanden staan op https://media.handboek.example. Daarnaast bestaan een HTTP-variant van het handboek en een private stagingomgeving op een afwijkende poort. Alle onderstaande keuzes en verwachte uitkomsten zijn fictief; echte antwoorden en metingen zijn onbekend.
Maak vier afzonderlijke registraties. Neem de adressen letterlijk over, zodat een ontbrekende protocolvermelding of poort niet stilzwijgend een andere omgeving aanwijst.
- Publiek handboek: https://handboek.example op poort 443. Contentdoel: bezoekers lezen materiaalinstructies. Robotsaanvraag: https://handboek.example/robots.txt. Eindantwoord: [status en eindadres]. Ontvangen tekst: [volledige inhoud]. Eigenaar: [naam].
- HTTP-ingang: http://handboek.example op poort 80. Contentdoel: oude verwijzingen naar het publieke handboek afhandelen. Robotsaanvraag: http://handboek.example/robots.txt. Eindantwoord: [status en eindadres]. Ontvangen tekst: [volledige inhoud]. Eigenaar: [naam].
- Publieke bestanden: https://media.handboek.example op poort 443. Contentdoel: noodzakelijke bestanden bij het handboek leveren. Robotsaanvraag: https://media.handboek.example/robots.txt. Eindantwoord: [status en eindadres]. Ontvangen tekst: [volledige inhoud]. Eigenaar: [naam].
- Private staging: https://staging.handboek.example:8443 op poort 8443. Contentdoel: bevoegde medewerkers beoordelen testwerk. Robotsaanvraag: https://staging.handboek.example:8443/robots.txt. Eindantwoord: [status en eindadres]. Ontvangen tekst: [antwoord of afscherming]. Eigenaar: [naam].
Bewaar het aangevraagde adres naast het eindadres
Stel dat de HTTP-aanvraag doorverwijst naar het HTTPS-adres. Schrijf dan beide adressen op. Het eindadres vertelt waar het antwoord vandaan kwam; het aangevraagde adres vertelt welke oorspronkelijke scope je onderzocht. Vervang de eerste registratie daarom niet door een kopie van de tweede.
Een gedeelde bron voor robotsregels verandert deze scheiding niet. Ook wanneer dezelfde tekst bij het handboek en de bestanden verschijnt, controleer je beide aanvragen. Een regel op de hoofdhost bewijst niets over het antwoord op de mediahost. Hetzelfde geldt wanneer je later een afzonderlijke www-host toevoegt.
Neem als negatieve proef een registratie waarin alleen het eindadres is ingevuld. Kan iemand daarmee nog vaststellen of de HTTP-ingang of de mediahost is getest? Zo niet, herstel dan het ontbrekende aanvraagadres voordat je regels beoordeelt. Laat een afgeschermde stagingrespons staan als waarneming; probeer daarvoor geen toegang te omzeilen.
Accepteer het register wanneer iedere omgeving een eigen aanvraag, antwoord, tekst en eigenaar heeft. Zet onbekende waarden expliciet op [nog te controleren]. Het herstelpunt bij een verkeerde koppeling is de oorspronkelijke aanvraag opnieuw vastleggen, niet regels van een andere host overnemen.
Voeg bij een gedeelde beheerbron het veld [welke registraties gebruiken deze bron] toe. Daarmee kun je bij een wijziging bepalen welke aanvragen opnieuw nodig zijn. Stel dat alleen de hoofdhost de nieuwe tekst toont en de mediahost de vorige versie houdt. Markeer dan de mediaregistratie als afwijkend en laat de eigenaar de levering onderzoeken. Het register is pas bijgewerkt wanneer ook die afzonderlijke aanvraag opnieuw is vastgelegd.
Test groepskeuze met twee verschillende kladpaden
De fictieve leverancier wil het ophalen van twee openbare kladpaden beperken: /klad/ en /proefnotities/. Dit is een crawlkeuze voor niet-vertrouwelijke werkversies. In het eerste voorstel staan beide beperkingen bij de algemene groep, maar alleen /klad/ bij Googlebot. Schrijf de regels voor de proef als afzonderlijke tekstregels op.
Algemene groep:
- User-agent: *
- Disallow: /klad/
- Disallow: /proefnotities/
Onvolledige specifieke groep:
- User-agent: Googlebot
- Disallow: /klad/
Beoordeel voor Googlebot eerst de groep en pas daarna het pad. De algemene groep vult de specifieke groep niet aan. Daardoor levert dit voorstel vier concrete uitkomsten op:
- https://handboek.example/klad/mengsel valt onder de Googlebotgroep. /klad/ komt overeen, dus deze URL is geblokkeerd.
- https://handboek.example/proefnotities/mengsel valt eveneens onder de Googlebotgroep. Daar ontbreekt een overeenkomende beperking, dus deze URL is toegestaan.
- https://handboek.example/materialen/klei valt onder dezelfde groep. Geen padregel komt overeen, dus deze URL is toegestaan.
- https://handboek.example/kladblok valt onder dezelfde groep. De slash na klad ontbreekt in dit pad, dus /klad/ komt niet overeen en deze URL is toegestaan.
Herstel de ontbrekende beperking binnen de gekozen groep
De tweede uitkomst is de negatieve proef: de bedoeling was blokkeren, maar het voorstel laat ophalen toe. Vul daarom de Googlebotgroep aan met Disallow: /proefnotities/. Bewaar als besluit [beide kladpaden beperken], met eigenaar [naam] en herstelversie [referentie]. Na herstel moeten de eerste twee URL’s geblokkeerd zijn en de laatste twee toegestaan blijven.
Voeg hier geen Allow toe om de openbare materiaalpagina bereikbaar te maken. In deze gekozen configuratie ontbreekt een blokkade voor die pagina. Een uitzondering vraagt pas een afzonderlijk besluit wanneer een toepasselijke beperking de gewenste pagina werkelijk raakt.
Controleer bij het samenvoegen van bestanden ook of Googlebot elders opnieuw als groep voorkomt. Overeenkomende specifieke groepen worden voor Google gecombineerd. Alleen het eerste aangetroffen blok lezen kan daardoor een onvolledig beeld geven. Noteer [alle gevonden Googlebotgroepen] en test de gezamenlijke regels.
Een Sitemap-regel tussen twee padregels vormt geen nieuwe groepsgrens. Behandel die vermelding ook niet als een sitemap die uitsluitend voor de voorafgaande botnaam geldt. Laat de groepsindeling bepalen door de toepasselijke User-agent-regels.
Gebruik een logregel met de tekst Googlebot hooguit als aanleiding voor onderzoek. Die opgegeven naam bewijst op zichzelf niet wie de aanvraag heeft verstuurd. Vul bij logbewijs daarom [opgegeven agentnaam] en [identiteit vastgesteld of onbekend] apart in. De parserproef hierboven test regelselectie, geen botidentiteit.
Maak de groepsfout bespreekbaar met twee kolommen op je werkblad: [bedoeling voor Googlebot] en [uitkomst van de volledige configuratie]. Zet bij proefnotities eerst “beperken” tegenover “toegestaan”. Na de aanvulling moet juist die uitkomst veranderen. Blijft kladblok ondertussen toegestaan, dan laat de controle zien dat je de ontbrekende beperking hebt toegevoegd zonder de afbakening van het andere kladpad te verbreden.
Vergelijk zes grensgevallen voordat je een padregel kiest
Voor een afzonderlijke padproef gebruikt de leverancier de volgende Googlebotgroep. Deze proef staat los van het kladvoorbeeld; combineer de uitkomsten niet zonder het volledige bestand opnieuw te testen. Het doel is conceptmateriaal beperken, met een bewust toegestane kindmap en een openbare pagina met een vergelijkbare naam.
- User-agent: Googlebot
- Disallow: /concept
- Allow: /conceptgids
- Disallow: /concept/
- Allow: /concept/openbaar/
- Disallow: /concept/openbaar/
- Disallow: /drukproef$
Gebruik precies deze zes URL’s en schrijf bij iedere uitkomst de winnende regel. Alleen het label toegestaan of geblokkeerd is onvoldoende om later een veranderde uitkomst te verklaren.
- https://handboek.example/concept: geblokkeerd door /concept. De regel /concept/ past niet op deze slashloze URL. Alleen een beperking met afsluitende slash zou dit exacte adres dus niet blokkeren.
- https://handboek.example/concept/blad: geblokkeerd door /concept/. Zowel /concept als /concept/ komt overeen, maar de tweede match is langer.
- https://handboek.example/conceptgids: toegestaan door /conceptgids. De bredere beperking /concept komt overeen, maar de expliciete Allow is langer en wint.
- https://handboek.example/Concept/blad: toegestaan, omdat geen getoonde padregel overeenkomt. De hoofdletter C maakt dit een ander pad voor deze vergelijking.
- https://handboek.example/drukproef?versie=rood: toegestaan. /drukproef$ vereist het einde direct na drukproef; de query staat daar nog achter. Geen andere getoonde regel past.
- https://handboek.example/concept/openbaar/blad: toegestaan. De regels voor /concept/openbaar/ zijn de langste matches. Bij deze even lange tegenstrijdigheid wint Allow als minst beperkende regel.
Kies expliciet of de slashloze ingang moet worden beperkt
Vul voor jouw voorstel in: [slashloze ingang wel of niet beperken], [vergelijkbare openbare padnaam] en [hoofdlettervariant aanwezig of onbekend]. Wil je uitsluitend de map beperken, dan is /concept/ een ander voorstel dan /concept. Beoordeel daarbij afzonderlijk het adres zonder slash en een eventuele doorverwijzing ervan.
De dubbele regel voor de openbare kindmap is hier bewust opgenomen om de gelijke match te testen. Laat zo’n tegenstelling niet ongemotiveerd in je uiteindelijke bestand staan. Bewaar het testgeval, verwijder de overbodige Disallow wanneer de kindmap openbaar moet blijven en controleer dezelfde URL opnieuw.
Neem als negatieve proef de aanname dat /drukproef$ ook iedere queryvariant blokkeert. Het vijfde geval weerlegt die aanname. Bedenk vervolgens welk concreet adres beperkt moet worden voordat je een ander patroon kiest. Een ster kan nul of meer tekens vertegenwoordigen; zonder uitgewerkte voorbeelden is dat geen onderbouwde reparatie.
Het herstel is pas geaccepteerd wanneer de eigenaar [naam] voor alle zes adressen de gekozen uitkomst en winnende regel kan aanwijzen. Bewaar afwijkingen als open beslissing wanneer het contentdoel nog niet vaststaat.
Bewaar bij deze zes proeven ook het letterlijke voorstel, inclusief de eindmarkering. Een los oordeel bij een URL is niet opnieuw te controleren wanneer later onbekend is welke regels erbij hoorden. Schrijf daarom [voorstelversie] naast [testuitkomst]. Wijzigt iemand /concept in /concept/, dan moet vooral de slashloze ingang opnieuw worden beoordeeld; de eerdere uitslag hoort bij een andere beperking.
Onderzoek een correcte editorwaarde met een verkeerd publiek antwoord
Stel dat de editor de beoogde regels laat zien, terwijl https://handboek.example/robots.txt een HTML-pagina met status 200 teruggeeft. In dit fictieve incident staat bovenaan het antwoord een gewone paginatitel. Nogmaals opslaan in dezelfde editor is dan geen bewijs dat je de bron van die publieke uitvoer verandert.
Leg eerst vast: [oude ontvangen tekst], [beoogde robotsregels], [huidige status], [huidig antwoordtype], [aanvraagadres], [eindadres] en [controlemoment]. Bewaar bij HTML ook een herkenbaar tekstfragment, bijvoorbeeld de paginatitel. Zet de editorwaarde naast het ontvangen antwoord, zodat het verschil concreet zichtbaar is.
Richt het ticket op de laag die het antwoord maakt
Vraag de beheerder vast te stellen welke laag deze aanvraag afhandelt. Mogelijke onderzoekspunten zijn virtuele uitvoer, een fysiek bestand, een plugin, serverafhandeling en een cache. Ga niet uit van een vaste voorrang die op iedere WordPress-installatie hetzelfde zou zijn. Laat de beheerder de werkelijke route onderbouwen.
Een bruikbaar ticket luidt: “Bij [robotsaanvraag] ontvang ik [HTML-fragment] met [status]. In [bewerkte bron] staat [beoogde tekst]. Bepaal welke laag het publieke antwoord produceert en herstel daar de levering van de afgesproken regels. Eigenaar: [naam]. Vorige werkende uitvoer: [referentie].”
Controleer na een gerichte wijziging hetzelfde publieke adres opnieuw. Vergelijk het volledige antwoord met de beoogde tekst. Krijg je nog de oude HTML, dan is de negatieve proef nog niet geslaagd. Onderzoek of een cache of andere afhandeling de aangepaste bron blijft vervangen; verander niet tegelijkertijd allerlei ongerelateerde instellingen.
Vraag om gewone tekst in UTF-8. Wanneer vreemde tekens verschijnen, noteer je [ontvangen tekens], [verwachte tekens] en [decodering nog te onderzoeken]. Alleen een schermweergave bewijst niet waar een coderingsfout ontstaat. Maak van een onbekende decodering geen stellige verklaring voor ontbrekende regels.
Houd de herstelactie klein: [verantwoordelijke laag], [terug te zetten bronversie] en [eventueel betrokken cache]. Accepteer herstel wanneer het publieke endpoint de afgesproken tekst levert en de eerder gekozen URL-proeven opnieuw kloppen. Een editor die de juiste inhoud toont, blijft slechts bewijs van de editorwaarde.
Laat in het ticket ook vastleggen welke bewerking het probleem opnieuw kan oproepen. Denk binnen dit onderzoek aan een opgeslagen plugininstelling die de uitvoer opnieuw genereert of een serverwijziging die de aanvraag anders afhandelt. Vul [vastgestelde oorzaak of nog onbekend] in. Laat de beheerder na herstel dezelfde relevante bewerking gecontroleerd herhalen, wanneer dat bevoegd en verantwoord kan. De publieke tekst moet daarna nog overeenkomen met het goedgekeurde antwoord.
Controleer drie bestanden naast de hoofdpagina
De fictieve pagina https://handboek.example/materialen/klei gebruikt drie afzonderlijke bestanden op de mediahost: https://media.handboek.example/bestanden/handboek.css, https://media.handboek.example/bestanden/menghulp.js en https://media.handboek.example/beelden/klei.jpg. De stylesheet ondersteunt de leesbare opmaak, het script toont een openbare menginstructie en de afbeelding verduidelijkt de materiaalstructuur. Leg voor ieder bestand vast welke zichtbare taak ervan afhangt.
De robotskeuze voor de hoofdpagina zegt niets over deze drie aanvragen. Lees voor de bestanden de toepasselijke regels van https://media.handboek.example/robots.txt. Vul per bestand [gekozen botgroep], [winnende padregel] en [toegestaan of geblokkeerd] in. Houd daarnaast de actuele HTTP-respons als afzonderlijk veld bij.
Scheid een robotsblokkade van een fout bij het ophalen
Gebruik drie fictieve foutvarianten om de diagnose te oefenen. Bij de stylesheet staat ophalen volgens robotsregels vrij, maar toont de browser een 401. Bij het script staat ophalen eveneens vrij, maar verschijnt een 503. Bij de afbeelding geeft de browser de afbeelding terug, terwijl een toepasselijke Disallow het ophalen door Googlebot beperkt.
- Stylesheet: onderzoek de toegangsvoorwaarde voor dit openbare bestand. Een Allow toevoegen verleent geen authenticatie en verklaart de 401 niet.
- Script: onderzoek het endpoint dat de 503 teruggeeft. Een ruimere robotsregel herstelt het serverantwoord niet.
- Afbeelding: onderzoek de toepasselijke padregel op de mediahost. Een geslaagde browseraanvraag bewijst niet dat Googlebot volgens die regels mag ophalen.
Laat de inhoudseigenaar bevestigen dat de menginstructie publiek noodzakelijk is. Vraag vervolgens de bevoegde beheerder om uitsluitend de benodigde publieke levering te herstellen. Een besloten beheerfunctie volledig openzetten omdat het script ervan afhankelijk blijkt, is geen passende acceptatievoorwaarde.
Gebruik twee aparte herstelvelden: [actuele fetch: status en ontvangen bestand] en [rendercontrole: zichtbare menginstructie, opmaak en afbeelding]. Een correct opgehaald script bewijst nog niet dat de bedoelde instructie verschijnt. Een pagina die in jouw ingelogde browser goed werkt, bewijst evenmin dat de openbare afhankelijkheden beschikbaar zijn.
De negatieve proef bestaat uit het bewust apart beoordelen van die twee velden. Staat er bij fetch een fout, maar bij render toch “goed”, onderzoek dan waarop dat oordeel berust. Bewaar [testcontext] en [ingelogd of niet ingelogd]. Accepteer herstel wanneer de noodzakelijke bestanden volgens de gekozen robotsregels bereikbaar zijn, de actuele aanvragen kloppen en de bedoelde inhoud bij de afgesproken rendercontrole zichtbaar is.
Als de menginstructie ontbreekt terwijl het script wel is opgehaald, beschrijf dan het zichtbare verschil: [verwachte instructietekst] tegenover [werkelijk zichtbare inhoud]. Stuur die afwijking naar de eigenaar van de paginafunctie. Voeg niet op goed geluk meer uitzonderingen toe aan robots.txt. Controleer eerst of de ontbrekende inhoud samenhangt met een volgende aanvraag en registreer zo nodig dat aanvullende bestand als eigen afhankelijkheid met een eigen antwoord.
Neem afzonderlijke besluiten over preview en vertrouwelijk testwerk
De leverancier heeft een openbare preview van een materiaalblad op https://handboek.example/preview/klei. Daarnaast staat op de private stagingomgeving een vertrouwelijk teststuk. Vul voor beide eerst [inhoudseigenaar], [wie mag dit lezen] en [gewenste vindbaarheid] in. Het woord preview bepaalt niet vanzelf welke afscherming nodig is.
Besluit voor een openbare preview zonder gewenste indexatie
In dit fictieve geval mag iedereen het previewblad lezen, maar wil de inhoudseigenaar het buiten de zoekresultaten houden. Het besluit luidt: [noindex aanbieden op de openbare preview], eigenaar [naam]. Houd het ophalen van die instructie mogelijk en controleer het daadwerkelijke antwoord van deze pagina.
De negatieve proef is een voorgestelde Disallow voor /preview/ terwijl noindex gelezen moet kunnen worden. Wijs die combinatie voor dit doel af. Kijk ook of de preview doorverwijst naar een ander adres; leg dan vast op welke uiteindelijke pagina je de instructie beoordeelt.
Accepteer de uitvoering wanneer de preview bereikbaar is voor het ophalen van de bedoelde instructie en die instructie daadwerkelijk wordt geleverd. Vul daarnaast [indexatiestatus onbekend of afzonderlijk vastgesteld] in. Een geslaagde fetch is geen bewijs dat een eerder zichtbare URL direct uit zoekresultaten is verdwenen.
Besluit voor een teststuk met beperkte toegang
Voor https://staging.handboek.example:8443/teststukken/mengsel geldt een ander besluit: alleen bevoegde medewerkers mogen de inhoud openen. Eigenaar [naam] laat passende toegangscontrole toepassen door [bevoegde beheerder]. Test zonder bestaande sessie of het document afgeschermd blijft. Gebruik daarbij geen vertrouwelijke inhoud als publiek testmateriaal.
De negatieve proef is de redenering dat Disallow voldoende is omdat een crawler dan hoort weg te blijven. Controleer juist of iemand zonder toestemming het document rechtstreeks kan ontvangen. Is die toegang mogelijk, dan is de beveiligingstaak niet afgerond, ongeacht de robotsregels.
Accepteer herstel pas na een bevoegde controle van de afscherming en de bedoelde toegang voor medewerkers. Ontbreekt de bevoegdheid om de beveiliging aan te passen, registreer dan [open beheeractie], [verantwoordelijke] en [vereist besluit]. Maak de omgeving niet tijdelijk openbaar om een voorkeur van Google te demonstreren. De vertrouwelijkheid van het teststuk blijft het uitgangspunt voor deze keuze.
Leg bij het private teststuk ook de afgesproken controle voor een bevoegde medewerker vast: [toegestane rol], [verwacht document] en [controle uitgevoerd door]. Alleen constateren dat iedereen wordt geweigerd bewijst nog niet dat medewerkers hun testwerk kunnen doen. Houd het bewijs beperkt tot de uitkomst van de toegangscontrole. Kopieer het vertrouwelijke document niet naar een openbaar werkblad om te laten zien dat de afscherming functioneert.
Behandel het antwoord van robots.txt als afzonderlijk incident
Stel dat de robotsaanvraag uit het hostregister onverwacht faalt. Begin het incident met [protocol, host en poort], [tijdstip], [status of netwerkfout], [ontvangen antwoord] en [laatst bekende goede versie]. Leg vast of die eerdere versie daadwerkelijk is bewaard of alleen wordt herinnerd.
Een 404 of 403 op robots.txt vormt voor Google geen nieuw crawlslot. Bij zulke 4xx-antwoorden, met uitzondering van 429, gaat Google uit van geen robotsbeperkingen. Gebruik een 403 daarom niet als vermeende methode om Google via robots.txt af te remmen. Dit oordeel gaat over het robotsendpoint; de toegangsbeveiliging van documenten blijft een afzonderlijke kwestie.
Een 503 of netwerkfout vraagt een andere beoordeling. Daarvoor heeft Google eigen foutafhandeling, waarbij een laatst beschikbare goede robotsversie een rol kan spelen. Noteer [bekende eerdere regels] en [historie onbekend waar bewijs ontbreekt]. Uit één actuele foutmeting kun je niet afleiden welke versie Google op dat moment gebruikt.
Herstel eerst het endpoint en daarna de regelkeuze
- Laat de bevoegde beheerder vaststellen waarom de robotsaanvraag niet het bedoelde antwoord oplevert. Koppel de storing aan [verantwoordelijke laag] en [eigenaar].
- Herstel de levering van de afgesproken tekst. Controleer de werkelijke HTTP-respons en eventuele gewone HTTP-doorverwijzingen.
- Vergelijk de ontvangen regels met [goedgekeurde versie]. Test daarna opnieuw welke groepen en paden voor de gekozen crawler gelden.
- Leg het herstelmoment, het ontvangen antwoord en de overblijvende onzekerheid over eerder gebruik vast.
Gebruik als negatieve proef een herstelde status 200 met nog steeds een HTML-foutpagina. Dat is geen geaccepteerd herstel van de afgesproken robotsuitvoer. Ook een HTML-pagina met een automatische browserdoorsturing vervangt het bedoelde robotsantwoord niet. Laat de endpointafhandeling zelf corrigeren.
Sluit het incident op basis van aantoonbare voorwaarden: [actuele endpointcontrole geslaagd], [juiste tekst ontvangen] en [regelproeven geslaagd]. Houd een vervolgactie open voor [nog te onderzoeken historie]. Verbind hier geen vaste wachttijd aan waarbinnen crawlgedrag of indexatie moet veranderen. Een vernieuwde cache is geen onmiddellijke indexatiebevestiging.
Ontbreekt een bewaarde goede versie, laat de inhoudseigenaar dan eerst de gewenste beperkingen en uitzonderingen bevestigen. Een willekeurig oud bestand terugzetten kan een nieuw inhoudelijk probleem introduceren. Vul [hersteltekst goedgekeurd door] en [reden voor deze keuze] in. Test die tekst met de bestaande voorbeeldadressen voordat je het incident afsluit. Zo blijft zichtbaar welke eerdere toestand bewezen is en welke herstelkeuze nu bewust is gemaakt.
Geef een kleine wijziging vrij met zes vaste doelen
Gebruik voor de vrijgave zes vaste URL’s: de materiaalpagina, de drie afhankelijke bestanden, /klad/mengsel en /proefnotities/mengsel. De laatste twee staan op https://handboek.example. In dit fictieve besluit moeten vier adressen toegestaan en twee geblokkeerd zijn. Die verdeling is een testverwachting, geen SEO-score of gemeten resultaat.
Vul vóór en na de wijziging voor ieder adres dezelfde velden in: [volledige URL], [host], [robotsversie], [botgroep], [winnende regel], [verwachte fetch], [publiek antwoord], [daadwerkelijke lezerstaak], [eigenaar] en [restoreversie]. Laat verwachte fetch beschrijven wat robots toestaat; gebruik publiek antwoord voor de werkelijk ontvangen respons.
De materiaalpagina moet materiaalinstructies leveren. De drie bestanden moeten hun eerder vastgelegde taken ondersteunen. Bij de twee kladpaden is het doel dat de gekozen Googlebotregels ophalen beperken. Vul voor hun publieke HTTP-antwoorden in wat je werkelijk vaststelt; een robotsblokkade vereist niet dat een browser daar een fout ontvangt.
Stop bij een afwijking die het afgesproken doel raakt
Vergelijk iedere URL met zichzelf. Verander tijdens de nacontrole geen hoofdletters, slash of parameters om alsnog een gewenste uitslag te krijgen. Als een adres moet veranderen, bewaar het oorspronkelijke geval en voeg het nieuwe adres als afzonderlijke proef toe.
Een parseruitkomst bewijst geen HTTP-succes. Een browserantwoord bewijst geen robotstoegang. Een aanvraag in een log bewijst geen indexering. Noteer daarom bij elk bewijsstuk [welke vraag dit beantwoordt]. Laat een ontbrekende controle open in plaats van haar af te leiden uit een ander type test.
De negatieve proef voor vrijgave is één noodzakelijke resource die onverwacht wordt geblokkeerd. Laat [eigenaar] de betreffende bronversie herstellen, lees het publieke robotsantwoord terug en herhaal alle zes gevallen. Accepteer de herstelde versie alleen wanneer zowel de bedoelde beperkingen als de noodzakelijke openbare taken weer overeenkomen met het besluit.
Plan een gerichte hertest bij een CMS-wijziging die robotsuitvoer kan veranderen, een CDN-wijziging die antwoorden of routes raakt en een padwijziging van pagina’s of bestanden. Noteer [aanleiding], [geraakte host], [betrokken testgevallen] en [verantwoordelijke]. Controleer bij een gewijzigde groepsindeling opnieuw alle zes doelen, omdat dezelfde padregel dan binnen een andere selectie kan vallen.
Bewaar bij een afgewezen vrijgave de concrete afwijking en het herstelbesluit naast elkaar: [geraakt adres], [verwacht], [ontvangen], [teruggezette versie] en [hercontrole]. Daarmee kan een volgende beheerder dezelfde fout gericht reproduceren zonder de volledige wijziging opnieuw uit te voeren.
Spreek af wie de vrijgave beoordeelt wanneer controles elkaar tegenspreken. Noteer [beslisser] en [ontbrekend bewijs]. Als de parser toestaat maar de openbare aanvraag faalt, blijft het ophalen onopgelost. Als de aanvraag slaagt maar de parser blokkeert, blijft de crawlkeuze onopgelost. Laat de beslisser het betreffende veld sluiten op basis van de passende hercontrole, met de gebruikte versie en het controlemoment erbij, zodat het besluit navolgbaar blijft.
Veelgestelde vragen over robots.txt instellen
Verdwijnt een pagina uit Google als ik die blokkeer in robots.txt?
Nee. Robots.txt beperkt het ophalen van inhoud, maar een URL kan nog in zoekresultaten voorkomen. Voor uitsluiting van een openbare pagina kan noindex passen, mits Google die instructie kan ophalen.
Kan ik Disallow en noindex tegelijk gebruiken?
Behandel dit niet als een standaardoplossing. Een Disallow-regel kan voorkomen dat Google de noindex leest. Bepaal eerst of je crawling wilt beperken of indexatie wilt voorkomen en houd de benodigde instructie bereikbaar.
Moet ik alle filters van mijn webshop blokkeren?
Nee. Sommige filters vormen nuttige landingspagina’s; andere leveren vooral overbodige combinaties op. Beoordeel zoekvraag, inhoud en URLpatronen voordat je een regel kiest, en test uitzonderingen afzonderlijk.
Is mijn stagingomgeving veilig met Disallow: /?
Nee. Die regel vraagt crawlers om geen pagina’s op te halen, maar houdt bezoekers en bots niet tegen. Gebruik authenticatie of andere toegangsbeveiliging en controleer de omgeving zonder ingelogde sessie.
Waarom zie ik robots.txt zonder een bestand op mijn server?
WordPress of een andere applicatie kan robots.txt dynamisch genereren. Ook serverconfiguratie en caches kunnen de uitvoer beïnvloeden. Controleer welke laag de publieke respons bepaalt voordat je iets wijzigt.
Laat je domein en wijzigingsdoel beoordelen
Wil je weten welke regels bij jouw website passen? Niblah biedt webdesign voor WordPress en Shopify en ondersteuning bij SEO. Stuur via het contactformulier je domein, het concrete wijzigingsdoel en enkele URL’s die volgens jou wel of niet gecrawld mogen worden. Vermeld ook of het om productie of staging gaat. Daarmee kan de beoordeling beginnen bij de huidige situatie en uitmonden in een onderbouwde keuze met controleerbare testgevallen.