{"id":2878,"date":"2026-10-21T09:21:13","date_gmt":"2026-10-21T09:21:13","guid":{"rendered":"https:\/\/dygistic.com\/?post_type=glossary&#038;p=2878"},"modified":"2026-10-21T09:22:13","modified_gmt":"2026-10-21T09:22:13","slug":"robots-txt","status":"publish","type":"glossary","link":"https:\/\/dygistic.com\/nl\/glossary\/robots-txt\/","title":{"rendered":"Robots.txt"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Robots.txt is a plain text file at the root of a domain that tells search engine crawlers which parts of a website they may or may not crawl. It lives at \/robots.txt, applies per host and protocol (www.example.nl and shop.example.nl each need their own) and uses four directives: User-agent, Disallow, Allow and Sitemap. The format, also known as the robots exclusion protocol, was formalised as RFC 9309 in 2022. The one thing to remember: a robots.txt file controls crawling, not indexing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That distinction is where most shop owners go wrong. They add a Disallow rule for a page they want out of Google and assume the job is done. In reality, a disallowed URL can still be indexed if other pages link to it; Google shows the bare URL with &#8220;No information is available for this page&#8221;. To remove a page from the index it needs a noindex meta tag, and Google must be allowed to crawl it to read that tag. Blocking and noindexing at once never works: the crawler never sees the noindex.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why robots.txt matters for a webshop<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Webshops generate far more URLs than they have products. Faceted navigation and filter parameters such as ?color= and ?orderby= can turn 2,000 products into hundreds of thousands of crawlable URLs. Add internal search results, cart, checkout and account pages, and a crawler spends most of its visit on pages that will never earn a click. A well-written robots txt steers that crawl budget back towards category and product pages, where the revenue is. On larger shops I regularly see new products take weeks to appear in Google for exactly this reason.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The file also matters because it is so easy to get catastrophically wrong. A single line, Disallow: \/, tells every crawler to stay away from the entire site. That line is standard on staging environments and it is the classic shop migration mistake: the site goes live, the robots.txt comes with it, and organic traffic falls off a cliff within days. Blocking CSS or JavaScript is nearly as bad, because Google can no longer render your pages properly. These are the failures I check first in any <a href=\"\/nl\/glossary\/technische-seo\/\">technische SEO<\/a> audit.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to check your robots.txt<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Start simple: open yourdomain.nl\/robots.txt in a browser and read it. Then go to Google Search Console, where the robots.txt report shows which versions Google fetched per host, when, and whether it hit errors. URL inspection tells you for any single page whether crawling is allowed and which rule blocked it, and the Pages report lists everything under &#8220;Blocked by robots.txt&#8221; and &#8220;Indexed, though blocked by robots.txt&#8221;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Next I run Screaming Frog, which respects robots.txt by default and lists every URL it could not fetch under its &#8220;Blocked by robots.txt&#8221; filter. I compare that list with the <a href=\"\/nl\/glossary\/xml-sitemap\/\">XML-sitemap<\/a> and with organic landing pages in GA4 to make sure nothing valuable is blocked. Server logs close the loop: they show what Googlebot actually requested, which is the only way to know whether the crawler is still hammering filter URLs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Common robots.txt mistakes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Launching with the staging file.<\/strong> The site was built behind Disallow: \/, the developer copied everything to production, and nobody checked. I have seen it on WordPress, PrestaShop and custom builds, which is why a robots.txt check is on every <a href=\"\/nl\/diensten\/seo\/seo-migratie\/\">migration<\/a> checklist I use.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Using Disallow to remove pages from Google.<\/strong> Blocking prevents crawling, not indexing. Discontinued products and old category pages with backlinks keep appearing in results, now without a title or description. Use noindex, or a 410 if the page is gone for good, and let Google crawl it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Blocking CSS, JavaScript or image folders.<\/strong> Years ago it was common to disallow \/wp-includes\/ or \/themes\/ to &#8220;save&#8221; crawl budget. Today that breaks rendering and hides product images from Google Images. Only block what Google does not need.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Forgetting that each host needs its own file.<\/strong> A robots.txt on www.example.nl does nothing for the non-www version, the http version or a separate shop subdomain. On headless setups I often find an asset or API host wide open or fully blocked by accident.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How I handle robots.txt for clients<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I treat the file as a crawl budget decision, not a technical formality. I start with a Screaming Frog crawl and a sample of server logs to see which URL patterns eat the crawl, then map those against what actually earns clicks in Search Console. From that I write a proposed robots.txt with a short justification per rule: which filter parameters to block, which to leave open because they rank, and which paths (search, cart, checkout, account) should never be crawled. Every proposal is tested against a list of important URLs before it goes live.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Implementation depends on the platform. WordPress serves a virtual robots.txt that I edit through the RankMath editor; PrestaShop generates the file from the back office; Shopify uses a robots.txt.liquid template in the theme. I also decide with the client how to treat AI crawlers such as GPTBot, ClaudeBot, Google-Extended and PerplexityBot, a choice that ties directly into any <a href=\"\/nl\/glossary\/generative-engine-optimization\/\">generative engine optimisation<\/a> work. The deliverable is the final file, the rationale per rule and a follow-up check four weeks later to confirm the crawl shifted as intended.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Veelgestelde vragen<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Does robots.txt affect my rankings?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Not directly. It is not a ranking signal, but it decides what Google can see. Block an important category page and it cannot rank on its content; block CSS and the page may be judged unusable on mobile.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Should I block AI crawlers in robots.txt?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Blocking GPTBot or ClaudeBot keeps your content out of training data, but it can also reduce the chance that your shop is cited in AI-generated answers. For most webshops I recommend allowing them, because visibility in those answers is becoming a traffic source, but it is a business decision and I document it either way.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Do I need a Sitemap line in my robots.txt?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">It is good practice. The Sitemap directive points crawlers to your XML sitemap even if you never submitted it in Search Console, and it works for Bing too. Use the full absolute URL and list every sitemap index you have, for example one per language on an international shop.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What happens if I have no robots.txt at all?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Crawlers treat a missing file (a 404) as permission to crawl everything, so a small site with clean URLs will be fine. A server error (5xx) on \/robots.txt is worse, because Google may pause crawling the whole site until it can fetch the file. For any webshop with filters or internal search I would still create one.<\/p>","protected":false},"excerpt":{"rendered":"<p>A text file at the root of a domain that tells search engine crawlers which parts of the site they may or may not crawl. It controls crawling, not indexing.<\/p>","protected":false},"author":1,"featured_media":0,"template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_dyg_definition":"A text file at the root of a domain that tells search engine crawlers which parts of the site they may or may not crawl. It controls crawling, not indexing.","_dyg_synonyms":"robots txt, robots.txt file","rank_math_title":"What is Robots.txt? Definition & Guide | Dygistic Glossary","rank_math_description":"Robots.txt is a text file at a domain's root that tells crawlers what they may crawl. Learn why it controls crawling, not indexing, and how to check yours.","rank_math_focus_keyword":"what is robots.txt,robots.txt","footnotes":""},"glossary_topic":[35],"class_list":["post-2878","glossary","type-glossary","status-publish","hentry","glossary_topic-technical-seo"],"_links":{"self":[{"href":"https:\/\/dygistic.com\/nl\/wp-json\/wp\/v2\/glossary\/2878","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dygistic.com\/nl\/wp-json\/wp\/v2\/glossary"}],"about":[{"href":"https:\/\/dygistic.com\/nl\/wp-json\/wp\/v2\/types\/glossary"}],"author":[{"embeddable":true,"href":"https:\/\/dygistic.com\/nl\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":1,"href":"https:\/\/dygistic.com\/nl\/wp-json\/wp\/v2\/glossary\/2878\/revisions"}],"predecessor-version":[{"id":2925,"href":"https:\/\/dygistic.com\/nl\/wp-json\/wp\/v2\/glossary\/2878\/revisions\/2925"}],"wp:attachment":[{"href":"https:\/\/dygistic.com\/nl\/wp-json\/wp\/v2\/media?parent=2878"}],"wp:term":[{"taxonomy":"glossary_topic","embeddable":true,"href":"https:\/\/dygistic.com\/nl\/wp-json\/wp\/v2\/glossary_topic?post=2878"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}