Robots.txt Analyzer - Check & Validate

Read any website's robots.txt file and see what it really says: which paths each crawler may request, which sitemaps are declared, and where the syntax is wrong. Results are parsed in your browser against the rules in RFC 9309.

Only the file at the root of the host is read, and always over https, for example https://example.com/robots.txt. A site is not obliged to let other pages read its files, so some hosts cannot be read from a browser. When that happens you can open the file yourself and use the Paste a file tab.

A robots.txt analyzer reads the file at the root of a site and shows what each crawler may request. Paste a domain or a robots.txt file to see every user-agent group, its Allow and Disallow rules, the sitemaps declared, and any syntax mistake a crawler would trip on. The file follows the Robots Exclusion Protocol (RFC 9309), and one wrong line can hide a whole section of a site from search.

What Is a Robots.txt Analyzer and What Does It Do?

What does this tool do?

It fetches the robots.txt file for a host, then parses it the way a crawler does. It splits the file into user-agent groups, counts the groups and the rules they hold, lists every sitemap, and reports the HTTP status the server returned, because that status largely decides whether the rules apply at all. It then tells you, for six well known crawlers, whether the site is fully open, partly restricted or blocked outright, and it flags syntax mistakes such as a path with no leading slash or a directive that search engines no longer support. When no usable file comes back, the crawler rows say so instead of guessing.

Why is this useful?

One misplaced line can hide an entire section of a site from search. A rule that blocks a folder of stylesheets or scripts stops Google rendering the page it is trying to index, and a stray Disallow: / left over from a staging server removes a whole site from crawling. Because robots.txt is fetched from a fixed location and generally cached by Google for up to 24 hours, mistakes can be slow to surface and slow to undo, so it is worth reading the file as a machine reads it rather than as you remember writing it.

Who uses this tool?

• SEO specialists confirming that money pages, images and rendering assets are all crawlable.

• Web developers checking crawl rules before a redesign, a CMS migration or a domain move goes live.

• Site administrators keeping admin paths, search result pages and staging copies out of the index.

• Agencies auditing a client site they have no server access to.

• Publishers deciding which AI crawlers, such as GPTBot or Google-Extended, may read their content.

How Do You Use This Tool?

1. Type a domain such as https://example.com into the Website address box. Any path you include is ignored, because robots.txt only ever lives at the root, and the site you are reading now is checked automatically when the page loads.

2. Press Analyze, or the Enter key. The tool requests /robots.txt from that host over https and reports the HTTP status it got back.

3. Read the summary, then the per crawler verdicts, then the checks list. Errors are shown before warnings and notes.

4. Enter a path such as /admin/settings.html in the path tester and switch crawler tabs to see which rule decides it. Enter works there too.

5. If a host cannot be read from a browser, open its file in a new tab, copy the text into the Paste a file tab, and analyze it there.

Example: how one file answers three different requests

User-agent: *
Disallow: /search
Disallow: /admin/
Allow: /admin/help/
Sitemap: https://example.com/sitemap.xml

/admin/help/start.html is allowed. Two rules match it, and the longer pattern /admin/help/ beats /admin/.

/admin/keys.html is disallowed. Only /admin/ matches, and nothing overrides it.

/search?q=ip is disallowed. Rules are prefix matches, so /search covers every URL that starts with those seven characters, query strings included.

Worked examples: how three sample files are reported
Sample fileGroups, rules, sitemapsChecks raisedCrawler verdicts
User-agent: *
Disallow: /search
Disallow: /admin/
Allow: /admin/help/
Sitemap: https://example.com/sitemap.xml
1 group, 3 rules, 1 sitemapNoneGooglebot and GPTBot: Partly restricted, 2 Disallow rules, group *
User-agent: *
Disallow: /search

User-agent: GPTBot
Disallow: /
2 groups, 2 rules, 0 sitemaps1 note: no Sitemap lineGooglebot: Partly restricted, 1 Disallow rule, group *. GPTBot: Whole site disallowed, group GPTBot.
Disallow: /private
User-agent: *
Disallow: private/
Noindex: /old/
1 group, 1 rule, 0 sitemaps3 errors, 1 note: a rule above any User-agent line, a path with no leading slash, and a noindex lineGooglebot: Partly restricted, 1 Disallow rule, group *. That rule matches no real path, because every path starts with a slash.

These are illustrative files on the reserved domain example.com. Each row was worked out line by line from this page's parser and verdict logic, not from live lookups.

How a crawler decides, in the order it decides it

Flow diagram of robots.txt rule evaluation A crawler requests a URL, selects the single most specific user-agent group, compares the matching Allow and Disallow patterns, and either crawls the URL or skips it. Crawler wants a URL /admin/help/start.html Pick one User-agent group the most specific name that matches, else the group for * Longest matching pattern wins on an exact tie, Allow beats Disallow Allowed the URL is requested Disallowed the URL is skipped

A crawler obeys one set of rules: the group for the most specific name that matches. Groups that name the same token are combined, and the group for * is not combined with a specific one.

How Do You Read the Results?

Fetch status

The HTTP status the server returned for /robots.txt, and what it means for crawling. A 2xx status means the rules are read and applied. Any 4xx other than 429 is treated as though the file did not exist, so crawling is unrestricted. A 429 or a 5xx is treated at first as a temporary full block. On anything that is not a 2xx there is no file to parse, so the sections below report the consequence of the status itself rather than a set of rules. Normal: HTTP 200, or a 404 on a site that wants no restrictions. Worth a look: a 403, a 429 or any 5xx, because each changes how crawlers treat the whole site.

Groups and rules

A group is one or more consecutive User-agent lines plus the Allow and Disallow lines that follow them. The count tells you how much of the file is actually in force, since rules that sit above the first User-agent line belong to no group and are ignored. Normal: a group for * plus a few specific ones. Worth a look: zero groups, or a rule count far above what you expect, which often means a generated file nobody reviewed.

Access for common crawlers

For each named crawler the tool resolves which single group applies, then evaluates the site root against that group. There are four outcomes. Full access means the group that applies holds no Disallow rule at all. Partly restricted counts the Disallow rules in that group, which is a count of rules and not of URLs. Whole site disallowed means a rule blocks / and nothing narrower overrides it. No matching group means the file names neither that crawler nor *, which leaves it unrestricted. When the fetch returned no file, every row says so instead of showing a verdict. Normal: Full access or Partly restricted for the main search crawlers. Worth a look: Whole site disallowed for Googlebot, Bingbot or * on a live site.

Sitemaps declared

Every Sitemap line found. These are independent of the groups, so they apply to all crawlers, and they must be absolute URLs. The line is optional, and a missing sitemap is not an error. If no file was returned this section says that, rather than reporting none. Normal: absolute https URLs on your own domain. Worth a look: a sitemap on an old domain or staging host.

Syntax and best practice checks

Errors are lines a crawler cannot use, such as a rule with no colon or a path written as a full URL. Warnings are lines that parse but probably do not do what you intended. Notes are informational, for example a directive that only some search engines read. At most twenty-four are listed, followed by a count of anything beyond that. Normal: no errors, and notes only. Worth a look: any error, since errors are lines a crawler cannot use.

Test a single path

Enter a path and the tool shows the verdict for the selected crawler plus the exact rule that produced it. The tabs cover the same six crawlers as the access list above, so a path can be tested for each of them. On the Google-Extended tab, allowed means Google may use that path in its generative models, since that token is a permission control rather than a crawler. This is the fastest way to settle an argument about whether a URL is blocked, because it names the winning pattern instead of guessing.

What this tool cannot tell you

• It cannot prove a page is indexed or not indexed. robots.txt controls crawling; indexing is decided separately, and a blocked URL can still be listed if other sites link to it.

• It is not a security check. The file is public, it only asks politely, and a scraper that ignores it will not be stopped by it.

• It cannot read a host that refuses cross origin requests from a browser. In that case the file is unreadable here, not missing, and the Paste a file tab is the way round it.

• It reports the file for one host and one scheme only. https://example.com/robots.txt says nothing about blog.example.com or about the plain http version of the same site, and this tool always requests the https version.

• It reads rules the way RFC 9309 and Google's documentation describe. A user-agent token matches here when the crawler's name starts with it, which is slightly more lenient than some crawlers, and other crawlers can differ on details such as Crawl-delay.

How the Analysis Is Worked Out

Every row in the report is derived in your browser from the file text alone. Nothing is looked up in a database and no crawler is contacted: the tool reconstructs the decision a crawler would make and shows you the steps it took, so where two rules could apply the row names the one that actually won. The work happens in seven steps, and each one removes something the next one no longer has to consider.

First, the input is reduced to a bare host

Whatever you type is trimmed of its scheme, then of any path, query string or fragment, then of any user:pass@ prefix. The order matters and is not the obvious one. Stripping the credentials first lets an @ inside the path swallow the real host, so example.com/@name would be read as a host of name. Taking the path off first avoids that entirely, and the request is always made against https://<host>/robots.txt — one path, one scheme, no exceptions.

Then the file is fetched twice over, if it has to be

The first attempt is a plain fetch from your browser directly to the target host. It is the fastest path and the most private one, because nothing leaves your machine. It also fails whenever the host does not send a cross-origin header permitting a page on another origin to read its files, which is the case for most robots.txt files. When the direct read fails the same request is retried once through the public AllOrigins relay, which returns the body along with the original HTTP status code; the domain you typed is visible to that service. If both attempts fail the page says so and points you at the Paste a file tab rather than inventing content.

The status decides whether a file is parsed

Parsing only happens on a 2xx response. Every other status is reported as its consequence, because the rules inside a 404 body, a redirect page or an error page are never read by a crawler and reporting them would be worse than reporting nothing:

  • 2xx — the body is parsed and every section of the report is filled in from it.
  • 404 or 410 — no file exists. The crawler rows say crawling is unrestricted, which is the fact, and the summary shows the status rather than a rule count that does not exist.
  • 429 or any 5xx — Google first stops crawling the site and keeps retrying, then can fall back to its last good copy of the file. The crawler rows explain this instead of showing a rule verdict, because the status, not the file, drives the outcome at that point.
  • Any other 4xx, including 401 and 403 — treated as though no file exists. The result is the same as a missing file: crawling is unrestricted. This is the case that catches people out, since a permissions error on the file hands the whole site to a crawler rather than locking it away.

When the server redirects, your browser follows the chain itself and the tool reports the status of the final response. If the chain is too long or the target refuses cross-origin reads, the direct read fails and the tool tries the relay once, then asks you to use the Paste a file tab. This is different from Google, which follows about five hops and then treats the file as missing.

The body is parsed one line at a time

Each line is handled in the same order. A UTF-8 byte order mark on the very first character is stripped and noted, because Google tolerates it but nothing guarantees it. A line whose first non-space character is # is counted as a comment and skipped. Any # later in a line cuts the rest off, so a trailing comment after a rule does not become part of the path. A blank line is skipped. Everything else is split at the first colon: the part before it is lowercased and used as the directive name, and the part after it is trimmed and used as the value.

A line with no colon at all is recorded as an error, because no crawler can read it. A known directive is dispatched to its own handler, and an unrecognised directive is recorded as a warning rather than breaking the parse, since crawlers themselves skip lines they do not recognise. The Host and Clean-param directives are noted as Yandex extensions, and Noindex is recorded as an error with an explanation, because it stopped working in 2019 and leaving it in place silently does nothing.

Groups are built by the same rule a crawler uses

A User-agent line opens a new group when an Allow or Disallow line has appeared since the previous agent line, or joins the current one when none has, which is how several consecutive agent lines share a single set of rules. Other lines, such as Sitemap, are ignored for grouping, as Google describes. Rules that appear before the very first agent line are recorded as an error on the line and dropped, because no group owns them and no crawler applies them.

When a crawler is looked up, each token in each group is compared against the crawler's own name, lowercased. A token must match from the start of the name, and the longest matching token wins. Groups that name the same token are combined into one, and a group for * is never combined with a specific one. * only counts when no specific token matched anything, which is why a site with a GPTBot group and a wildcard group gives GPTBot the GPTBot rules and nothing else. A crawler with no group of its own and no wildcard to fall back on is unrestricted, and the row says so rather than reporting a verdict pulled from another group.

Path matching turns each pattern into a regular expression

For the path tester, each Allow and Disallow pattern is converted to a regular expression and tested against the path you typed. A trailing $ anchors the match to the end of the URL and is stripped from the pattern. Every * becomes .*. Every other regular expression special character is escaped so it is matched literally, which matters because a path containing a ? or a + would otherwise be treated as a quantifier and match the wrong URLs entirely. The result is anchored at the start, and only at the end when the dollar sign was there, so a rule for /search matches /search?q=ip and /searching but a rule for /search$ matches only the exact path /search, not /search?q=ip or /searching.

All matching patterns are collected and the longest wins, because pattern length is how specificity is measured. When an Allow and a Disallow are the same length, the Allow wins. The winning rule is printed with its opposite beside it so you can see exactly which comparison decided the answer, rather than being handed a verdict with no reasoning attached.

The checks list is assembled from three severities

Issues are collected as they are found and never reordered until the very end. Errors are lines a crawler cannot use; warnings are lines that parse but probably do not do what was intended; notes are informational, such as a Yandex-only directive. When the list is printed it is sorted by severity so errors come first, capped at twenty-four entries, and anything beyond the cap is summarised as a count rather than silently dropped. A file larger than 500 KiB raises an error before any line is parsed, because only the first 500 KiB is read by a crawler and anything past that limit is ignored without warning. A body that looks like HTML — a leading <!doctype, <html or <?xml — also raises an error, because a file that is actually a web page has no directives in it, and the practical effect is the same as having no robots.txt at all.

When Would You Use This Tool?

Before a launch

Staging servers often carry Disallow: /. Check it is gone from the live host before you announce the site.

After a migration

Confirm the new host serves a file at all, and that the Sitemap line points at the new domain rather than the old one.

Search Console warnings

When a URL is reported as blocked by robots.txt, paste the path into the tester to see which rule is responsible.

Rendering problems

If a page looks unstyled in a rendering test, check whether a broad rule is blocking the folder holding your CSS, JavaScript or images.

AI crawler policy

Verify that GPTBot, ClaudeBot, PerplexityBot and Google-Extended have exactly the access you decided to give them, and no more.

Auditing a site you do not own

The file is public, so you can see which sections a site keeps out of search without any access to its server.

What Does Each HTTP Status Do to Crawling?

The status code matters as much as the contents, because it largely decides whether the rules are used at all. The behavior below is as documented by Google Search Central (page last updated August 31, 2026, checked October 2, 2026) and follows RFC 9309 where that standard covers it. Other crawlers can differ.

How common HTTP statuses change robots.txt handling
Condition What Google's crawler does
200, plain text body Parses the file and applies the rules exactly as written.
200, but the body is an HTML page Google parses what it can and ignores the rest, so a page of markup usually restricts nothing.
3xx redirect Follows at least five hops. Beyond that the file is treated as missing.
4xx other than 429, including 401 and 403 Treated as though no robots.txt exists, so the whole site may be crawled.
429, or any 5xx For the first 12 hours Google stops crawling the site and keeps retrying. After that it uses its last good copy of the file for up to 30 days, or assumes no restrictions if it has none. After 30 days of errors it behaves as if there is no file, unless the site as a whole is unavailable, in which case it stops crawling.
File larger than 500 KiB Only the first 500 KiB is parsed. Anything after that is ignored.
crawl-delay, noindex or host lines Ignored by Google. Crawl-delay is read by Bing and Yandex; noindex has not worked in robots.txt since 2019.
Disallow, noindex and access control do different jobs
MethodStops crawling?Keeps the URL out of results?Best used for
robots.txt DisallowAsks compliant crawlers not to fetch the URLNot reliably: the URL can still be listed, usually without a description, if other pages link to itSaving crawl effort on low-value paths
noindex meta tag or X-Robots-Tag headerNo: the crawler has to fetch the page to see itUsually, once a search engine that honors it has seen the tagKeeping a crawlable page out of search results
Password or server side access ruleYes, for anyone without credentialsContent is not reachable, so it is usually not indexedContent that must be private
Removing the page (404 or 410)Nothing is left to crawlUsually dropped over timeRetired content

How Does It Fit With DNS and Hosting?

A crawler cannot read your rules until it has resolved your domain and reached your server, so an unreachable file is often a DNS or hosting problem rather than a robots problem. If Search Console reports the file as unreachable, confirm the records with the DNS Lookup tool and check that the host answers with the Ping tool before you edit a single line.

Groups are matched against the crawler's user-agent token, not against its IP address. That is why the name in a log line proves nothing on its own: anything can claim to be Googlebot, and the User Agent Checker shows how easily that string is set. Verification usually means a reverse DNS lookup on the address that made the request, or a check against the IP ranges the crawler's operator publishes.

About the data

Every result is read live when you press Analyze, and this page stores no copy of the file. The tool first asks for it directly from your browser, always over https. That works for hosts that permit cross origin reads, and it is the fastest and most private path. When a host refuses, the request is retried once through the public AllOrigins relay, which returns the file together with the original HTTP status code. The domain you typed is visible to that service, and the relay or your browser may serve a recently cached copy, so a file changed a moment ago can look unchanged. There is no other source. Pasted files are never sent anywhere, and a pasted file is not added to Recent checks, because there is no host to check again. Recent checks are kept in your browser's local storage and are cleared with the Clear button. The Google behavior described on this page comes from Google's own documentation as of October 2026 and may change.

What Other Tools Work With This One?

Sources and Further Reading

Frequently Asked Questions

What does the Disallow directive actually do?+

It asks a crawler not to request URLs that start with the given path. It is a request, not a block: search engines that follow the protocol obey it, while scrapers that ignore the protocol will fetch the URL anyway. Nothing about the page changes, and the file itself does not restrict human visitors.

Does blocking a page in robots.txt remove it from Google Search?+

No. Disallowing a URL stops Google fetching the content, but the URL can still be listed if other pages link to it, usually with no description. To keep a page out of the results, let crawlers reach it and use a noindex meta tag or an X-Robots-Tag header instead. Google cannot read a page that robots.txt blocks, so a noindex tag on it is not seen.

Is robots.txt enough to protect private pages?+

No, and it often makes things worse. The file is public at a fixed address, so every path you list is an invitation to look. Anything genuinely private needs authentication or a server side access rule, and should not appear in robots.txt at all.

Why would robots.txt block CSS or JavaScript files?+

Almost always by accident, through a broad rule such as a disallowed assets, includes or scripts folder. Google renders pages before indexing them, so when the stylesheet and script files are unreachable it sees a broken layout and may judge the page differently. Blocking a whole directory is convenient and rarely what you meant.

How do the wildcard and the dollar sign work in a path?+

An asterisk stands for any run of characters, so a rule for /*.pdf covers every path that contains .pdf, wherever it appears. A dollar sign anchors the end of the URL, so /*.pdf$ matches a path that ends in .pdf but not the same path with a query string added. A dollar sign anywhere except the end of a pattern is treated literally. Google, Bing and other major search engines support both, and both are part of RFC 9309.

Does one robots.txt file cover subdomains and both http and https?+

No. A file applies to exactly one origin, meaning one scheme, one host and one port. The file on https://example.com governs that address only. A subdomain such as blog.example.com needs its own file, and strictly so does the plain http version of the same site. This is the single most common surprise when a site is served from more than one hostname.

Do AI crawlers obey robots.txt?+

The major named ones state that they do, and each publishes a token you can target: GPTBot for OpenAI, ClaudeBot for Anthropic and PerplexityBot for Perplexity. Google-Extended is not a crawler but a control token that governs whether Google may use your content for its Gemini models, and it does not affect Search. Unnamed scrapers are a different matter, and a server side rule is the dependable way to stop those.

Why can this tool sometimes not read another site's file?+

A browser only lets a page read a response from another domain when that domain opts in with a cross origin header, and very few sites set one for robots.txt. When the direct read fails the tool retries once through a public relay, and if that is unavailable as well it says so rather than showing invented content. Opening the file in a new tab and pasting it into the Paste a file tab is the dependable fallback.

How the Robots.txt Analyzer Works

What it measures: The crawl rules in a site's robots.txt file, listed by user agent, including Allow, Disallow and Sitemap lines.

What it is based on: The Robots Exclusion Protocol, standardized in RFC 9309. Google's documentation explains how Google's crawlers read the file.

Limits of the result: Robots.txt is a request to well-behaved crawlers, not access control, so it does not protect private pages. A blocked page can still appear in search results if other sites link to it. Different crawlers can read edge cases differently, and a site can serve a different file to different visitors.

Last reviewed October 2026 · Editorial Policy · How our tools work

Check this result yourself

Any online tool can be wrong, including this one. Here are ways to compare this result with sources we do not control.

  • Read the raw file: add /robots.txt to the end of the site's address in your browser and compare it with the rules this tool lists.
  • See how Google reads the file: How Google interprets the robots.txt specification. For a site you own, the robots.txt report in Google Search Console shows what Google fetched.
  • The protocol itself is specified in RFC 9309.

Sources and how each tool works are listed in our methodology. Found a mismatch or a broken link? Tell us.

Comments:

Post a Comment