Robots.txt

Het robots.txt bestand is een belangrijk tekstbestand op het gebied van SEO. Hierin vertel je namelijk welke pagina’s er wel en niet gecrawld mogen worden. In dit artikel lees je alles over het robots.txt bestand.

Wat is een robots.txt bestand

Het robots.txt bestand is een simpel tekstbestand dat zoekmachines vertelt welke pagina’s (en bestanden) op de website wel en niet gecrawld mogen worden.

Een voorbeeld van een robots.txt bestand:

Sitemap: https://voorbeeld.nl/sitemap.xml

User agent: Bingbot
Disallow: /blog/
Allow: /blog/blog-bericht-1/

Dit ziet er misschien ingewikkeld uit, maar met enige context is het robots.txt bestand relatief makkelijk te lezen. Zo kun je uit het bovenstaande voorbeeld het volgende opmaken:

  1. De sitemap van de website bevindt zich op de locatie: https://voorbeeld.nl/sitemap.xml
  2. De user agent genaamd Bingbot (dit is de web crawler van Bing) mag de URL’s die beginnen met https://voorbeeld.nl/blog/ niet crawlen.
  3. De URL https://voorbeeld.nl/blog/blog-bericht-1/ is hierop de uitzondering.
  4. In het bestand staan geen richtlijnen voor andere user agents. Deze mogen dus alle pagina’s crawlen.

Kortgezegd geef je in dit bestand richtlijnen aan verschillende user agents.

Belangrijk om te weten: De inhoud van een robots.txt bestand is een richtlijn. Grote zoekmachines (zoals Google, Bing of DuckDuckGo) respecteren deze richtlijnen, maar er zijn er ook een aantal die dit niet doen.

User agent

Een user agent is het computerprogramma dat bij een netwerkfunctie of protocol hoort.

In het geval van zoekmachines is de user agent de naam van de web crawler. Hieronder vind je de namen van de bekendste zoekmachines en hun crawlers.

ZoekmachineUser agent
GoogleGooglebot
Google afbeeldingenGooglebot-Image
BingBingbot
DuckDuckGoDuckDuckBot
Yahoo!Slurp
YandexYandex

Ook verschillende SEO tools maken gebruik van user agents. Hieronder vind je enkele veelgebruikte.

SEO toolUser agent
AhrefsAhrefsBot
MajesticMJ12bot
Screaming FrogScreaming Frog SEO Spider
SemrushSemrushBot & SemrushBot-SA

Als je bijvoorbeeld alleen richtlijnen wilt geven aan Google en Bing, doe je dat als volgt.

User agent: Googlebot
[richtlijn 1]
[richtlijn 2]

User agent: Bingbot
[richtlijn 1]
[richtlijn 2]

Iedere keer als je met een nieuwe user agent aangeeft, begint deze met een schone lei. Je moet het dus echt zien als aparte groepen. In het bovenstaande voorbeeld gelden de richtlijnen voor de Googlebot dus niet voor de Bingbot (of andersom).

Wildcard

Het is ook mogelijk om een wildcard te gebruiken. Hiermee geef je aan dat de richtlijnen gelden voor alle user agents. Je gebruikt de wildcard door middel van een sterretje (*).

User agent: *
[richtlijn 1]
[richtlijn 2]

User agents kijken altijd naar de richtlijnen die het meest nauwkeurig voor hen van toepassing zijn.

In het onderstaande voorbeeld negeert Google de wildcard en volgt het de richtlijnen voor de Googlebot:

User agent: *
[richtlijn 1]
[richtlijn 2]

User agent: Googlebot
[richtlijn 1]
[richtlijn 2]

Richtlijnen

De richtlijnen zijn de regels die je geeft aan de eerder gedefinieerde user agent. In het robots.txt bestand definieer je eerst een richtlijn en geef je vervolgens aan voor welke URL(‘s) deze van toepassing zijn.

Google ondersteunt de volgende drie richtlijnen:

  • Disallow
  • Allow
  • Sitemap

Disallow

Hiermee geef je aan dat bepaalde pagina’s niet mogen worden gecrawld.

Als je bijvoorbeeld wilt dat de producten op je website nog niet worden getoond in zoekresultaten, dan kun je dat op de volgende manier aangeven:

User-agent: *
Disallow: /product/

Niet alleen de URL /product/ wordt in dit geval niet gecrawld, maar alle pagina’s die beginnen met dit pad. Dus ook:

  • /product/product-1/
  • /product/product-2/
  • /product/product-3/

Allow

Met de allow richtlijn geef je aan welke pagina’s wel gecrawld mogen worden. Je gebruikt deze regel alleen om een eerdere instructie te overschrijven.

User-agent: *
Disallow: /product/
Allow: /product/product-1/

In het bovenstaande voorbeeld geef je aan dat /product/product-1/ wel gecrawld mag worden, maar alle andere pagina’s niet (waaronder /product/product-2/ en /product/product-3).

Sitemap

Met de sitemap richtlijn vertel je de user agents op welke URL de XML-sitemap zich bevindt. Je hoeft deze richtlijn niet voor iedere user agent opnieuw aan te geven.

Voorbeeld van een robots.txt bestand met een sitemap richtlijn:

Sitemap: https://defellow.nl/sitemaps/page-sitemap1.xml
Sitemap: https://defellow.nl/sitemaps/post-sitemap1.xml
Sitemap: https://defellow.nl/sitemaps/product-sitemap1.xml
Sitemap: https://defellow.nl/sitemaps/hub-sitemap1.xml

User-agent: *
Disallow: /product/
Allow: /product/product-1/

Je ziet hier dat er voor iedere sitemap een aparte richtlijn is toegevoegd.

Waarom zou je gebruik maken van robots.txt

Als je een klein blog hebt is het waarschijnlijk niet persé nodig om een robots.txt bestand te hebben. Je pagina bestaat namelijk uit dusdanig weinig pagina’s dat zoekmachines hun weg wel weten te vinden en de kans op duplicate content is beperkt.

Een manier om te bepalen of een robots.txt bestand toegevoegde waarde heeft voor jouw website, is door deze te Googlen.

In het onderstaande voorbeeld zie je bijvoorbeeld dat er een archiefpagina van de maand september is geïndexeerd.

archiefpagina op datum
Archief van september 2021 in de zoekresultaten.

Eigenlijk wil ik niet dat dit soort pagina’s worden geïndexeerd. In dit geval kun je ervoor kiezen deze op te nemen in het robots.txt bestand.

Webshops met filters

Webshops die gebruik maken van filters raad ik altijd aan om een robots.txt bestand te maken. Filters voegen namelijk parameters toe aan een URL, wat al snel resulteert in honderden vergelijkbare (maar voor een zoekmachine verschillende) pagina’s.

Dit kan verschillende SEO gerelateerde problemen opleveren, zoals:

  • Duplicate content.
  • Overbelasting van de server.
  • Verspilling van het crawlbudget.
  • Indexering van verkeerde pagina’s (dit kan wel voorkomen worden met behulp van een canonical tag)

In het onderstaande stappenplan lees je hoe je URL’s met parameters kunt toevoegen aan het robots.txt bestand.

Stappenplan: een robots.txt bestand maken.

  1. Maak een tekstbestand genaamd robots.txt
  2. Richtlijnen voor user agents toevoegen
  3. Het robots.txt bestand controleren

Maak een tekstbestand genaamd robots.txt

Je kunt op verschillende manieren een robots.txt bestand aanmaken.

Handmatig een tekstbestand aanmaken

Als je toegang hebt tot de filemanager van je website kun je handmatig een nieuw bestand aanmaken genaamd robots.txt. Dit bestand moet geplaatst worden in de hoofdmap.

robots txt in hoofdmap
Robots.txt bestand in de hoofdmap van je website

Het is ook mogelijk om op je lokale computer een tekstbestand te maken en deze te uploaden in je hoofdmap. Je kunt gewoon gebruik maken van het Kladblok. Let daarbij wel op dat je het bestand bewaart in een UTF-8 codering.

Als je geen toegang hebt tot je file manager kun je gebruik maken van een plugin. Hieronder behandel ik twee bekende plugins, namelijk Yoast SEO en SEOpress.

Robots.txt bestand maken met de Yoast SEO plugin

Als je gebruik maakt van de Yoast SEO plugin kun je (ook in de gratis versie) gemakkelijk een robots.txt bestand aamaken.

Ga in het WordPress menu naar SEOGereedschapBestandseditor.

yoast seo bestandseditor
Open de bestandseditor in de Yoast SEO plugin

Klik vervolgens op Maak robots.txt bestand aan.

maak robots txt bestand aan yoast

Er wordt nu een robots.txt bestand aangemaakt in de hoofdmap van je website.

Een virtueel robots.txt bestand aanpassen met SEOpress

WordPress maakt standaard gebruik van een zogenaamd virtueel robots.txt bestand. Wanneer je gebruik maakt van WordPress heb je dus automatisch een robots.txt bestand. Je kunt dit testen door /robots.txt toe te voegen aan je domeinnaam (dus bijvoorbeeld https://defellow.nl/robots.txt).

Standaard heeft dit bestand de volgende inhoud:

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Dit bestand bestaat niet fysiek op je server. Met SEOpress is het mogelijk om het virtuele robots.txt bestand aan te passen.

Ga naar SEOPROrobots.txt.

Hier kun je vervolgens het virtuele robots.txt bestand aanpassen.

Richtlijnen voor user agents toevoegen

Nu het bestand is aangemaakt is het tijd om de richtlijnen toe te voegen voor verschillende user agents. Ik start met de volgende code.

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Deze code wordt automatisch door WordPress toegevoegd en zorgt ervoor dat de admin omgeving niet wordt gecrawld.

Sitemap richtlijn toevoegen

Als eerst voeg ik mijn sitemaps toe. Deze zet ik bovenaan in het bestand.

Sitemap: https://defellow.nl/sitemaps/page-sitemap1.xml
Sitemap: https://defellow.nl/sitemaps/post-sitemap1.xml
Sitemap: https://defellow.nl/sitemaps/product-sitemap1.xml
Sitemap: https://defellow.nl/sitemaps/hub-sitemap1.xml

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Datum archief

Eerder in dit blog kwam ik erachter dat er automatische datumarchieven worden aangemaakt. Deze archieven hebben de volgende URL-structuur:

  • https://defellow.nl/jaartal/maandnummer/

Wat mij betreft hebben deze pagina’s geen toegevoegde waarde.

Ik sluit ze daarom voor alle user agents uit door middel van de disallow richtlijn:

Sitemap: https://defellow.nl/sitemaps/page-sitemap1.xml
Sitemap: https://defellow.nl/sitemaps/post-sitemap1.xml
Sitemap: https://defellow.nl/sitemaps/product-sitemap1.xml
Sitemap: https://defellow.nl/sitemaps/hub-sitemap1.xml

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /2021/
Disallow: /2022/

Winkelwagen en checkout

Ook de winkelwagen en checkout pagina hebben geen toegevoegde waarde in de SERP. Daarom sluit ik ook deze pagina’s uit.

Sitemap: https://defellow.nl/sitemaps/page-sitemap1.xml
Sitemap: https://defellow.nl/sitemaps/post-sitemap1.xml
Sitemap: https://defellow.nl/sitemaps/product-sitemap1.xml
Sitemap: https://defellow.nl/sitemaps/hub-sitemap1.xml

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /2021/
Disallow: /2022/
Disallow: /afrekenen/
Disallow: /winkelwagen/

Om zeker te weten dat deze pagina’s niet in de zoekresultaten verschijnen kun je ze het best ook een noindex tag geven.

Filters

De filters van je website zijn waarschijnlijk het belangrijkst om in je robots.txt bestand op te nemen.

De filters op deze website zijn te gebruiken op de algemene winkel pagina (https://defellow.nl/winkel/) en de verschillende productcategorieën (https://defellow.nl/productcategorie/categorienaam/)

Iedere keer als er een filter wordt toegepast wordt er een parameter aan de URL toegevoegd. Deze parameter begint altijd met een vraagteken (?). Daarom sluit ik alles na de vraagteken uit.

Sitemap: https://defellow.nl/sitemaps/page-sitemap1.xml
Sitemap: https://defellow.nl/sitemaps/post-sitemap1.xml
Sitemap: https://defellow.nl/sitemaps/product-sitemap1.xml
Sitemap: https://defellow.nl/sitemaps/hub-sitemap1.xml

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /2021/
Disallow: /2022/
Disallow: /afrekenen/
Disallow: /winkelwagen/
Disallow: /winkel/?
Disallow: /product-categorie/*/?

Je kunt de wildcard (*) niet alleen gebruiken voor user agents, maar dus ook voor categorieën. In het bovenstaande voorbeeld geld de disallow richtlijn dus voor alle product categorieën.

Nu alle richtlijnen zijn doorgevoerd kun je deze invoeren via één van de eerder genoemde mogelijkheden.

Robots.txt bestand testen

Nu je het robots.txt bestand hebt aangepast is het belangrijk om deze goed te testen.

Robots.txt tester tool

Google heeft een handige robots.txt tester tool ontwikkeld. Met deze tool kun je je website actief testen. Voer een URL in en je ziet direct of deze geblokkeerd wordt.

voorbeeld robot txt tester

Test ook goed of de pagina’s waarvan je wilt dat deze gecrawld worden dat ook daadwerkelijk worden.