Hoe deze controle werkt
Scanaris doet drie dingen. Ten eerste vraagt hij /robots.txt op en beschouwt hem alleen als geldig als hij 200 antwoordt en geen HTML is (single-page apps geven hun pagina terug voor elk pad); anders opent hij een bevinding met lage ernst. Ten tweede vraagt hij /sitemap.xml op en beschouwt hem als geldig als hij 200 antwoordt en een <urlset>- of <sitemapindex>-tag bevat; vindt hij hem daar niet maar heeft robots.txt een regel Sitemap:, dan accepteert hij dat ook; anders een bevinding met lage ernst. Ten derde kijkt hij of de gescande pagina een noindex draagt, in de tag <meta name="robots"> of in de HTTP-header X-Robots-Tag; zo ja, dan opent hij een bevinding met gemiddelde ernst, omdat die pagina niet op Google gaat verschijnen.
Waarom dit belangrijk is
De robots.txt is de eerste URL die elke crawler bezoekt en waar je hem vertelt wat hij mag doorlopen en waar je sitemap staat. De sitemap is de lijst van URL's die je door Google geïndexeerd wilt hebben, met hun wijzigingsdatum: zonder sitemap ontdekt Google je pagina's door links te volgen, wat trager is en de slecht gelinkte overslaat. Beide hebben lage ernst omdat hun afwezigheid de indexering niet verhindert, alleen verslechtert. De noindex is iets anders: het is een direct bevel aan Google om die pagina niet te tonen, en op de homepage betekent dat dat je site niet bestaat in de zoekmachine. Het is de meest verwoestende en stilste SEO-fout die er is, en bijna altijd een overblijfsel van de testomgeving.
Hoe je het oplost
robots.txt
User-agent: *
Allow: /
Sitemap: https://jouwdomein.nl/sitemap.xml
Een plat tekstbestand in de root. Nuxt en Next.js hebben modules en conventies (app/robots.ts) die het genereren; op een statische site gaat het in de map public. Noem er geen privéroutes in: het is openbaar en je zou ze aan iedereen aanwijzen, zoals gevoelige paden in robots uitlegt.
Sitemap
- Nuxt: de sitemapmodule genereert hem uit de routes en de URL's die je doorgeeft (berichten, producten).
- Next.js: een bestand
app/sitemap.tsdat de lijst met URL's teruggeeft. - WordPress: genereert er sinds versie 5.5 zelf een op
/wp-sitemap.xml; voeg die regel toe aan robots of laat Yoast of Rank Math hem op/sitemap_index.xmlzetten. - Astro, Hugo, Jekyll: een officiële plugin of integratie.
Alleen indexeerbare, canonieke URL's die 200 antwoorden. Dien hem in bij Google Search Console en Bing Webmaster Tools: zo weet je hoeveel van die URL's echt geïndexeerd zijn.
noindex op de pagina
Zoek waar het vandaan komt. In Nuxt kan de robotsmodule noindex zetten op basis van een omgevingsvariabele die soms van de testomgeving naar productie wordt gekopieerd. In Next.js metadata.robots. In WordPress de instelling "Zoekmachines ontmoedigen deze site te indexeren" onder Lezen, die iemand aanzette terwijl de site in aanbouw was. Op Vercel dragen preview-deployments automatisch X-Robots-Tag: noindex, maar productie niet; zie je het in productie, dan heb je het zelf toegevoegd in de headerconfiguratie.
Controleer of het opgelost is
curl -s https://jouwdomein.nl/robots.txt
curl -s https://jouwdomein.nl/sitemap.xml | head -5
curl -sI https://jouwdomein.nl | grep -i x-robots-tag
curl -s https://jouwdomein.nl | grep -oiE '<meta name="robots"[^>]*>'
De eerste twee moeten tekst en XML tonen, geen HTML. De laatste twee mogen geen noindex bevatten (een robots-meta met index, follow of max-image-preview is normaal).
Veelgestelde vragen
Mijn sitemap staat op een ander pad, zoals /sitemap_index.xml.
Elk pad is goed zolang de robots.txt ernaar verwijst met de regel Sitemap:. De controle kijkt daar voordat hij de bevinding geeft.
Ik wil mijn site voorlopig niet op Google.
Dan is de noindex correct en kun je de bevinding accepteren. Maar zet een herinnering: de meeste sites met noindex in productie hebben dat niet expres.
Heeft robots.txt invloed op AI-bots?
Ja, het is hetzelfde bestand waar GPTBot, ClaudeBot of PerplexityBot worden toegestaan of geblokkeerd. Wat je toestaat en wat verstandig is, wordt behandeld door AI-crawlers.