Robots.txt Validator

Give it a site address, a crawler name and a path, and it fetches the live file and answers yes or no.

Secure server processingWeb & SEOWorkingNo account needed

What this tool does

Robots.txt Validator takes a site address, requests /robots.txt from that origin, and then answers the question you actually came with: may this crawler fetch this path? The Crawler box chooses the group — the longest user-agent token that prefixes the name you typed, with the wildcard group as the fallback — and the URL or path box supplies the target. The verdict names the winning line by number, lists every Allow and Disallow in that group with a yes-or-no beside each, and reports the group's Crawl-delay when one is set. Matching follows Google's specification: * and $ are honoured, the longest matching pattern wins, Allow beats Disallow on a tie, and a Disallow with no value after the colon allows everything.

Because it is a validator and not only a fetcher, it also reads the file for the mistakes that make a rule silently do nothing: a misspelt directive, an Allow or Disallow written above the first User-agent line so that no crawler claims it, a pattern beginning with neither / nor *, a relative Sitemap address, a $ placed anywhere but the end, an unencoded space in a path, a Crawl-delay that is not a number, and Noindex:, which Google has never obeyed. Those come back as a list of errors and warnings beneath the verdict, together with the number of groups in the file and every Sitemap line declared anywhere in it.

How the fetch is made decides which file you get. Only the scheme, host and port of what you type are used — the path is thrown away and the request goes to the root — so https://example.com and http://www.example.com are two separate files that can quietly drift apart. The request identifies itself with OmniKitly's own user agent, follows up to five redirects with every hop re-checked before it is opened, and stops reading at 512 KB. The work happens on the processing service, so the address, the crawler name and the path you are testing all travel there over an encrypted connection, and the job record and the JSON report it produced are deleted together once the short retention window passes.

Three limits are worth knowing before you lean on an answer. The verdict is computed from the first 20,000 characters the fetch keeps, so a robots.txt longer than that is matched against a truncated copy and the decision can come out wrong on a rule below the cut — the size shown in the report is the size of that excerpt, not of the served file. Any response that is not a plain-text 200 skips the verdict altogether and shows the raw JSON report instead, which is honest but is not an allow-or-block answer. And the input box is labelled as though it also accepted pasted rules, with a Load sample button that fills it with some; that path does not work, because whatever sits in the box is sent as an address to fetch and pasted rules come back as an invalid URL.

How to use it

  1. Point it at the site. A full URL with its scheme, such as https://example.com. A bare hostname is rejected as an invalid URL, and everything after the host is discarded before the request is made.
  2. Name the crawler. The Crawler box takes a token such as Googlebot, Bingbot or GPTBot. It is compared against the user-agent lines in the file and is never sent to the site — the fetch always identifies itself as OmniKitly.
  3. Give it the path to test. Either a path such as /private/report.pdf, or a full URL, in which case its path and query string are taken. That is what the winning group's rules are matched against.
  4. Read the verdict, then the problems list. The first line says allowed or blocked and why, naming the rule and its line number. Underneath, the errors and warnings tell you which lines in the file are doing nothing at all.

Processing & privacy

Secure server processing. This operation requires temporary server processing.

Common use cases

A page has vanished from search

Test the live path against Googlebot instead of trusting the copy of robots.txt in your repository, and read back the exact line that blocked it.

A staging rule survived a launch

A leftover Disallow: / in the wildcard group blocks the whole site. Testing any path at all comes back blocked, with the line number you need to delete.

Deciding whether an AI crawler is covered

Run the same path twice, once as GPTBot and once as Googlebot. A named group replaces the wildcard group outright, so the two answers can legitimately differ.

Comparing the apex host against www

Each host serves its own file. Fetch both and test the same path against each when only one version of the site is being crawled.

Auditing a hand-edited file

The problems list catches a misspelt directive or a rule stranded above the first User-agent line. Both look reasonable to a person and are ignored by every crawler.

Questions

Does it tell me whether one specific path is blocked?
Yes, that is what it returns. The Crawler and URL or path settings are applied to the file it has just fetched, and the answer names the longest matching rule and the line it sits on.
Can I paste the contents of a robots.txt instead?
Not today. The box is labelled as if it accepted pasted rules and the Load sample button fills it with some, but the input is always sent as an address to fetch, so a pasted file comes back as an invalid URL.
Which group does it apply to my crawler?
Google's rule: the longest user-agent token that is a prefix of the name you typed, falling back to * when nothing matches. A crawler with its own group ignores the wildcard group completely.
Is the address sent anywhere?
Yes. The lookup runs on the processing service, the request to the site is made from that machine, and the job record holding what you typed is removed when the retention window expires.
Why does it need https:// in front of the domain?
The input is parsed as a URL before anything is fetched, and a bare hostname is not a valid one. The scheme also decides which file you get, since the http and https hosts can serve different ones.
Can it check a staging or intranet site?
No. Addresses that resolve to private, loopback, carrier-grade NAT or link-local ranges are refused, as are localhost and .local, .internal, .home and .lan names, so the fetch only reaches the public web.
Does a Disallow keep a page out of search results?
No. It asks a crawler not to fetch the page. A blocked URL can still be listed as a bare link from other signals, so reach for a noindex meta tag or an X-Robots-Tag header when the goal is to stay out of the index.
What happens if the site returns a 404 or a 403?
No verdict is produced for either. A missing file means no crawl restrictions at all, and a 403 usually means a bot filter refused the unfamiliar user agent; both hand back the raw JSON report with the final URL, the status and the body.
Are there size limits?
The fetch stops reading at 512 KB and only the first 20,000 characters are kept for the verdict, so a very large file is judged on a truncated copy. Google ignores anything past the first 500 KB of a robots.txt in any case.

Related tools