{"id":15753,"date":"2026-11-10T08:05:00","date_gmt":"2026-11-10T07:05:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=15753"},"modified":"2026-10-26T13:16:06","modified_gmt":"2026-10-26T12:16:06","slug":"robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\/","title":{"rendered":"robots.txt: Matching Rules and Interpreting a Twenty-Domain Sample"},"content":{"rendered":"<p>robots.txt gives instructions to cooperating crawlers, programs that automatically fetch web pages. Evaluation requires three separate checks: the result of fetching the file, the applicable crawler groups, and the most specific matching path rule. The first matching line does not automatically win, and repeated matching groups cannot simply be discarded.<\/p>\n<p>A historical test from 6 September 2026 covered twenty domains, eight identifiers and eight paths. Rechecking the archive and analyzer reveals limits that matter: the saved matrix is an old tool result, not proof of actual crawler behavior or a site-wide block.<\/p>\n<figure class=\"lw-diagram\"><img decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/robotsmatrix-reviewed-en-20261025.png\" width=\"1120\" height=\"580\" loading=\"lazy\" alt=\"Applicable groups must be combined; historical HTTP responses and eight test paths require careful interpretation.\"><figcaption>Applicable groups must be combined; historical HTTP responses and eight test paths require careful interpretation.<\/figcaption><\/figure>\n<h2>Selection of the applicable rules<\/h2>\n<p>RFC 9309 matches the crawler&#8217;s product token without case sensitivity and requires combining multiple matching groups. Google additionally documents selection of the most specific applicable user agent; repeated groups for that agent are merged. A specific group is not combined with the fallback <code>*<\/code> group. A longest-prefix shortcut applied to an arbitrary HTTP User-Agent string is not a complete description of the standard.<\/p>\n<p>Inside the applicable rules, the most specific matching path wins. Matching starts at the beginning of the path and compares bytes, called octets, rather than simply counting visible characters. Percent-encoded forms such as %62 for the letter b need the normalization required by the protocol before comparison. For equivalent Allow and Disallow rules, Allow is preferred. Paths are case-sensitive in normal matching. <code>*<\/code> matches zero or more characters; <code>$<\/code> anchors the end.<\/p>\n<p>An empty <code>Disallow:<\/code> is ignored. It does not undo another Disallow in the same applicable rules. The following isolated example allows <code>\/private\/help.html<\/code> but disallows other paths starting with <code>\/private\/<\/code>, including <code>\/private\/report.html<\/code>:<\/p>\n<pre><code>User-agent: ExampleBot\nDisallow: \/private\/\nDisallow:\n\nUser-agent: ExampleBot\nAllow: \/private\/help.html$\n<\/code><\/pre>\n<p>The second ExampleBot group contributes the exception. A parser keeping only the first group produces the wrong result. Blank lines or comments between consecutive user-agent declarations must not accidentally detach the later rules.<\/p>\n<h2>What the historical run actually shows<\/h2>\n<p>The archive records eighteen HTTP 200 responses, one 410 from heise.de and one 418 from stackoverflow.com. Sixteen starting URLs involved redirects. The alternate www.heise.de check returned 200; the www.stackoverflow.com check also returned 418. The recorded Stack Overflow response was 113 bytes, not empty. Neither observation identifies the operator&#8217;s intention or proves a redirect configuration defect.<\/p>\n<p>The old matrix marked all eight test paths disallowed for GPTBot and CCBot on six domains, ClaudeBot on five, and Google-Extended, PerplexityBot and Applebot-Extended on four each. Those counts describe the stored tool output. Eight paths cannot establish that every URL on a site is disallowed, and the parser defects below prevent treating the old classifications as independently verified provider policy.<\/p>\n<p>Fourteen domains had no such all-eight-path result for any of the six identifiers. Twelve had no disallowed test path for any of them. These are different counts: google.com and microsoft.com had partial restrictions in the stored output. The original chart mixed these categories.<\/p>\n<p>The summary reports group counts up to 105 for the main checks and a largest file of 28,275 bytes. Counts are parser-dependent. The returned sitemap list was capped at twenty entries, so a stored value of twenty does not establish exactly twenty declarations. A byte order mark also does not identify the editor that produced a file.<\/p>\n<h2>The fetch status comes before rule interpretation<\/h2>\n<p>A successful response makes parseable rules relevant. RFC 9309 allows crawling when robots.txt is unavailable, for example after a 4xx response; this is permission under the protocol, not proof that a file physically does not exist. Network and server errors instead require an assumption of complete disallow, with caching and prolonged-failure provisions. The standard gives thirty days as an example of a prolonged period, not a universal timer.<\/p>\n<p>Google documents a specific handling sequence: server errors initially stop crawling for twelve hours; subsequent behavior depends on the last good cached file and overall site availability. Google treats 429 differently from other 4xx responses. A single status code therefore does not determine crawler behavior independently of time, cache and implementation.<\/p>\n<p>Host, scheme and port define the scope. A robots.txt redirect can lead to another host while its rules still apply to the original authority. A firewall should allow the intended robots.txt response to reach legitimate crawlers, but robots.txt never replaces authentication or other access controls.<\/p>\n<p><!-- lw-flux-illu 15753-a3 --><\/p>\n<figure class=\"lw-illu\"><img src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/illustrationen\/flux-15753-a3.webp\" width=\"1120\" height=\"630\" loading=\"lazy\" decoding=\"async\" alt=\"Ducks paddle freely in the open water and avoid the cracked ice completely. Likewise: if rules are missing, search engines may fetch everything; if the server reports an error, everything counts as blocked.\"><figcaption>Ducks paddle freely in the open water and avoid the cracked ice completely. Likewise: if rules are missing, search engines may fetch everything; if the server reports an error, everything counts as blocked.<\/figcaption><\/figure>\n<h2>Six identifiers do not mean six training crawlers<\/h2>\n<p>GPTBot and ClaudeBot concern their providers&#8217; model-development collection. CCBot builds Common Crawl&#8217;s open web archive. PerplexityBot supports search discovery, not foundation-model training according to its provider. Separate search or user-triggered agents can have different rules.<\/p>\n<p>Google-Extended has no separate HTTP user agent. Its control covers specified Gemini training and grounding uses without changing Google Search inclusion or ranking. Applebot-Extended also does not crawl independently; it controls use of Applebot data for foundation-model training. Neither token is a blanket control over every AI feature or every request.<\/p>\n<h2>Limits of the linked matrix<\/h2>\n<p>The <a href=\"https:\/\/www.lukaswojcik.com\/blog\/en\/toolbox\/robots-txt-crawler-matrix\/\">robots.txt Crawler Matrix<\/a> displays up to eight identifiers against twelve paths and shows a winning line. The inspected implementation, however, keeps only one matching group, mishandles some blank-line group boundaries, lacks required percent-normalization and can display allowed cells after a network failure. Its general 4xx treatment also does not reproduce Google&#8217;s 429 behavior. These are concrete limits, not differences left unspecified by the RFC.<\/p>\n<p>The historical summaries do not retain the complete rule files, so a corrected historical evaluation cannot be reconstructed from those summaries alone. Current deployment checks need the actual file, status, redirect chain, relevant product tokens and representative paths, compared with the crawler provider&#8217;s documented behavior.<\/p>\n<div class=\"lw-faq\">\n<h2>Questions and answers<\/h2>\n<h3>Does Disallow remove an address from search?<\/h3>\n<p>No reliable guarantee. Crawling and indexing are separate. Google must be able to fetch a page to see a noindex meta tag or X-Robots-Tag. Private content requires access controls, not merely a crawl directive.<\/p>\n<h3>Does a 200 HTML error page mean there are no rules?<\/h3>\n<p>Not necessarily. Google attempts to extract valid rules and ignores other lines. Status, content type and body all need inspection; an HTML wrapper is not a reliable substitute for a valid UTF-8 text file.<\/p>\n<h3>Is Crawl-delay a universal setting?<\/h3>\n<p>No. It is outside the core protocol and support varies. Google does not support it; Anthropic documents support. Limits and controls must be checked for the intended provider.<\/p>\n<h3>Do changes apply immediately?<\/h3>\n<p>Not necessarily. Cached robots.txt files and provider processing introduce delay. The RFC generally discourages cache use beyond twenty-four hours unless the file is unreachable. Testing a parser does not prove that a crawler has already fetched the new version.<\/p>\n<\/div>\n<div class=\"lw-quellen\">\n<h2>Sources<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc9309.html\" target=\"_blank\" rel=\"noopener noreferrer\">RFC 9309<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/crawling\/docs\/robots-txt\/robots-txt-spec\" target=\"_blank\" rel=\"noopener noreferrer\">Google: robots.txt specification<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/crawling\/docs\/crawlers-fetchers\/google-common-crawlers#google-extended\" target=\"_blank\" rel=\"noopener noreferrer\">Google-Extended<\/a><\/li>\n<li><a href=\"https:\/\/support.apple.com\/en-us\/119829\" target=\"_blank\" rel=\"noopener noreferrer\">Applebot and Applebot-Extended<\/a><\/li>\n<li><a href=\"https:\/\/developers.openai.com\/api\/docs\/bots\" target=\"_blank\" rel=\"noopener noreferrer\">OpenAI crawlers<\/a><\/li>\n<li><a href=\"https:\/\/support.claude.com\/en\/articles\/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler\" target=\"_blank\" rel=\"noopener noreferrer\">Anthropic crawlers<\/a><\/li>\n<li><a href=\"https:\/\/commoncrawl.org\/ccbot\" target=\"_blank\" rel=\"noopener noreferrer\">Common Crawl: CCBot<\/a><\/li>\n<li><a href=\"https:\/\/docs.perplexity.ai\/docs\/resources\/perplexity-crawlers\" target=\"_blank\" rel=\"noopener noreferrer\">Perplexity crawlers<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/search\/docs\/crawling-indexing\/block-indexing\" target=\"_blank\" rel=\"noopener noreferrer\">Google: noindex<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>robots.txt evaluation combines matching groups, path rules and the result of fetching the file. A historical twenty-domain sample illustrates the method and the limits of a matrix built from only eight test paths.<\/p>\n","protected":false},"author":1,"featured_media":29614,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[158],"tags":[91094,91219,91115],"class_list":["post-15753","post","type-post","status-publish","format-standard","hentry","category-tutorials-en-web-development","tag-seo","tag-tutorial","tag-web-security"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>robots.txt: Matching Rules and Interpreting a Twenty-Domain Sample | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"How a crawler chooses its group and its winning rule, six AI crawlers across twenty domains, and two sites whose rules file answers 410 and 418.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"robots.txt: Matching Rules and Interpreting a Twenty-Domain Sample | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"How a crawler chooses its group and its winning rule, six AI crawlers across twenty domains, and two sites whose rules file answers 410 and 418.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-11-10T07:05:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/flux-voll-15753-15753.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"robots.txt: Matching Rules and Interpreting a Twenty-Domain Sample\",\"datePublished\":\"2026-11-10T07:05:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\\\/\"},\"wordCount\":1138,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/flux-voll-15753-15753.png\",\"keywords\":[\"SEO\",\"Tutorial\",\"Web Security\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\\\/\",\"name\":\"robots.txt: Matching Rules and Interpreting a Twenty-Domain Sample | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/flux-voll-15753-15753.png\",\"datePublished\":\"2026-11-10T07:05:00+00:00\",\"description\":\"How a crawler chooses its group and its winning rule, six AI crawlers across twenty domains, and two sites whose rules file answers 410 and 418.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/flux-voll-15753-15753.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/flux-voll-15753-15753.png\",\"width\":1200,\"height\":630,\"caption\":\"robots.txt: Matching Rules and Interpreting a Twenty-Domain Sample\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"robots.txt: Matching Rules and Interpreting a Twenty-Domain Sample\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"robots.txt: Matching Rules and Interpreting a Twenty-Domain Sample | Lukas Wojcik","description":"How a crawler chooses its group and its winning rule, six AI crawlers across twenty domains, and two sites whose rules file answers 410 and 418.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\/","og_locale":"en_US","og_type":"article","og_title":"robots.txt: Matching Rules and Interpreting a Twenty-Domain Sample | Lukas Wojcik","og_description":"How a crawler chooses its group and its winning rule, six AI crawlers across twenty domains, and two sites whose rules file answers 410 and 418.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-11-10T07:05:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/flux-voll-15753-15753.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"robots.txt: Matching Rules and Interpreting a Twenty-Domain Sample","datePublished":"2026-11-10T07:05:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\/"},"wordCount":1138,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/flux-voll-15753-15753.png","keywords":["SEO","Tutorial","Web Security"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\/","url":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\/","name":"robots.txt: Matching Rules and Interpreting a Twenty-Domain Sample | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/flux-voll-15753-15753.png","datePublished":"2026-11-10T07:05:00+00:00","description":"How a crawler chooses its group and its winning rule, six AI crawlers across twenty domains, and two sites whose rules file answers 410 and 418.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/flux-voll-15753-15753.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/flux-voll-15753-15753.png","width":1200,"height":630,"caption":"robots.txt: Matching Rules and Interpreting a Twenty-Domain Sample"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/robots-txt-matching-rules-and-interpreting-a-twenty-domain-sample\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"robots.txt: Matching Rules and Interpreting a Twenty-Domain Sample"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/15753","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=15753"}],"version-history":[{"count":7,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/15753\/revisions"}],"predecessor-version":[{"id":30366,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/15753\/revisions\/30366"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/29614"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=15753"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=15753"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=15753"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}