Robots.txt Tester

A free robots.txt tester and validator. Fetch any site's live file or paste your own, test URLs for Googlebot, Bingbot and AI crawlers such as GPTBot and ClaudeBot, and see the exact line that allows or blocks each one.

100% Free Google's Matching Rules 33 Crawlers Live Fetch No Sign-up
Step 1 · Load a robots.txt file
robots.txt

You can edit the file here after fetching it. Every change is tested again instantly, so you can try a fix before you upload it to your server.

Step 2 · Test URLs against a crawler

Up to 100 lines. A path such as /private/ works too.

Results update as you type in either box.

Add a robots.txt and at least one URL to see results.
Step 3 · Every crawler at once
Test at least one URL above to see how every crawler treats it.
Robots.txt validator · errors and warnings

      How to use this robots.txt tester

      Load a robots.txt file, list the URLs you care about, pick a crawler. The robots.txt tester shows each URL as allowed or blocked, names the exact line that made the decision, and tells you which group of rules the crawler followed. That last part is where most robots.txt mistakes hide, and it is the part most testers leave out.

      1

      Fetch the live file or paste your own

      Type a domain such as example.com and press Fetch. The tool downloads /robots.txt from that host, reports the HTTP status and loads the text into the editor. You can also paste a file you have not uploaded yet.

      2

      Add the URLs you want to check

      One per line, up to 100. Full URLs and bare paths such as /checkout/ both work. Include the pages you need indexed as well as the ones you want kept out, because the costly mistake is usually blocking something by accident.

      3

      Choose a crawler and read the deciding rule

      Googlebot is selected by default. Switch to Bingbot, GPTBot, ClaudeBot or any of the others, or type a custom user agent. Click a rule in the results and the matching line lights up in the editor.

      4

      Fix it in the editor and test again

      Edit the file right there. Results update as you type, so you can test robots.txt changes safely, then copy or download the corrected robots.txt and upload it to the root of your site.

      Robots.txt tester showing allowed and blocked URLs for Googlebot with the deciding rule for each
      Results for Googlebot. Each URL shows the line that decided it and the group that applied. Here /wp-admin/ is allowed for Googlebot even though the file disallows it, because Googlebot has its own group and skips the * rules.

      What this robots.txt checker shows you

      Most robots checker tools stop at a plain yes or no, and that is not enough to fix a problem. Every result in this robots.txt checker carries three pieces of information, and together they explain why a crawler behaves the way it does.

      Allowed or blocked, and the line that decided it

      Crawlers pick one winning rule per URL. The tool reports that rule with its line number, for example Line 11: Disallow: /*.pdf$. If no rule matched, the URL is allowed by default and the result says so.

      Which group the crawler actually followed

      A robots.txt file is split into groups, each starting with one or more User-agent lines. A crawler follows exactly one group: the one that names it most specifically. Only if no group names it does it fall back to User-agent: *. The results tell you which group was used, including the less obvious cases, such as Googlebot-Image falling back to the Googlebot group, Applebot following Googlebot when it has no group of its own, and AdSense's Mediapartners-Google ignoring the * group completely.

      Check robots.txt on a live site: the HTTP status

      When you fetch a live file, the status code matters as much as the text. Google's handling is specific, and the tool applies it to the results automatically.

      robots.txt returnsWhat Google does
      200 OKReads the file and follows the rules in it
      301, 302, 307, 308Follows up to five redirects, then treats the file as missing
      404, 410, 401, 403Treats the file as missing and may crawl everything
      429Treats it as a server error and pauses crawling
      500 to 599, timeouts, DNS errorsStops crawling the site, retries, uses the last cached copy for up to 30 days

      The server error row surprises people. A robots.txt that times out does not mean "no rules". For Google it means "do not crawl anything yet", and a flaky server can quietly slow down crawling of the whole site.

      Check robots.txt of a live site with HTTP status, file size and redirect details
      Live fetch. The status line shows the HTTP code, the size against Google's 500 KiB limit and any redirects, and the file lands in the editor ready to test or change.

      How Google decides if a URL is blocked by robots.txt

      The rules come from the Robots Exclusion Protocol, published as RFC 9309 in September 2022, plus a few leniencies Google documents. The matching logic in this tool is a line by line port of Google's open-source robots.txt parser, and it gives the same answer as that parser on every URL matching check in the test suite Google publishes with it. In short:

      1. The crawler finds the group that names it. Letters, hyphens and underscores count, case does not, so googlebot and Googlebot/2.1 both mean Googlebot.
      2. If several groups name the same crawler, their rules are merged into one.
      3. If no group names it, it uses the * group. If there is no * group either, everything is allowed.
      4. Within the chosen group, the rule with the longest matching path wins.
      5. If an Allow and a Disallow match with equal length, Allow wins.

      The most specific group wins, and the * group is ignored

      This is the mistake the sample file above demonstrates. Once a site adds a User-agent: Googlebot group, Googlebot stops reading the * group entirely. Every shared rule, such as keeping /wp-admin/ or internal search out, has to be repeated inside the Googlebot group. The validator below the tool flags this whenever named groups and a * group exist side by side.

      The longest rule wins, and ties go to Allow

      Rules in the groupURLResult
      Disallow: /shop/
      Allow: /shop/sale/
      /shop/sale/shoesAllowed, the Allow rule is longer
      Disallow: /shop/
      Allow: /shop/sale/
      /shop/shoesBlocked
      Allow: /page
      Disallow: /*.php
      /page.phpBlocked, /*.php is one character longer
      Allow: /$
      Disallow: /
      /Allowed, only the homepage
      Disallow: /folder
      Allow: /folder
      /folder/pageAllowed, equal length so Allow wins

      Wildcards: * and $

      * matches any sequence of characters, including none. $ marks the end of the URL, but only when it is the last character of the rule. A rule always matches from the start of the path, so Disallow: /fish blocks /fish, /fish.html and /fishheads/, while Disallow: /*.pdf$ blocks /files/list.pdf but not /files/list.pdf?download=1.

      Case, encoding, file size and typos

      Paths are case sensitive: /Private/ and /private/ are different rules. Non-ASCII characters are compared in percent-encoded form, so a rule for /café/ matches /caf%C3%A9/. Google reads only the first 500 KiB of the file. It forgives a handful of misspellings, including Disalow and User agent, and a missing colon. Other crawlers are not guaranteed to, which is why the validator still flags them.

      Test robots.txt for AI crawlers such as GPTBot and ClaudeBot

      Step 3 of the tool runs one URL against every crawler in the list at once, grouped into Google, other search engines, AI crawlers and SEO tools. It is the quickest way to answer a question search engine testers were never built for: which AI systems can read this page?

      Most AI companies now run more than one bot, and they are not interchangeable. Blocking a training crawler keeps your content out of future models. Blocking a search crawler removes you from that assistant's answers and citations.

      TokenCompanyWhat blocking it does
      GPTBotOpenAIOpts out of model training
      OAI-SearchBotOpenAIRemoves the site from ChatGPT search results
      ClaudeBotAnthropicOpts out of model training
      Claude-SearchBotAnthropicKeeps pages out of Claude's search index
      PerplexityBotPerplexityKeeps pages out of Perplexity's index
      Google-ExtendedGoogleOpts out of Gemini training and grounding. Google Search is not affected
      Applebot-ExtendedAppleOpts out of Apple AI training. Pages stay in Apple search
      CCBotCommon CrawlKeeps pages out of an open dataset many AI models are trained on

      Two details the matrix points out for you. Google-Extended and Applebot-Extended are control tokens: they never visit your site, they only tell Google and Apple how pages fetched by their main crawlers may be used. And user-triggered fetchers such as ChatGPT-User and Perplexity-User may not follow robots.txt at all, according to their own documentation, because a person asked for the page.

      Robots.txt checker testing one URL against Googlebot, Bingbot and AI crawlers like GPTBot and ClaudeBot
      Step 3, every crawler at once. The counts at the top cover all 33 crawlers, and the AI crawler section is shown here. GPTBot and CCBot are blocked by their own group, everything else falls through to the * rules.

      Blocking AI training while staying in AI search

      A common choice is to refuse training but keep the search and answer bots, so the site can still be cited. Paste this into the editor above and switch between GPTBot and OAI-SearchBot to see the difference:

      User-agent: GPTBot
      User-agent: ClaudeBot
      User-agent: Google-Extended
      User-agent: Applebot-Extended
      User-agent: CCBot
      Disallow: /
      
      User-agent: *
      Disallow: /wp-admin/
      Allow: /wp-admin/admin-ajax.php

      Googlebot blocked by robots.txt? How to find the cause

      If Search Console reports a page as blocked, fetch your live file here, add the exact URL from the report, keep Googlebot selected and read the deciding line. It is almost always one of these:

      • A short rule matching more than intended, such as Disallow: /p also blocking /products/ and /pricing/.
      • A staging file shipped to production with Disallow: / still in it.
      • A wildcard like Disallow: /*? catching tracking or pagination parameters on pages you want indexed.
      • A rule written for the wrong host. www, the bare domain, each subdomain and http versus https each need their own file.
      • A CDN or firewall serving a different robots.txt, or a 5xx error, to Google than to your browser.

      "Blocked by robots.txt" and "Indexed, though blocked by robots.txt"

      These two Search Console statuses are easy to mix up. Blocked by robots.txt means Google did not crawl the URL and did not index it. Indexed, though blocked by robots.txt means Google found links pointing to the URL and indexed the address anyway, usually with no description, because it was not allowed to read the page. robots.txt controls crawling, not indexing. To remove a page from results, allow crawling and add a noindex robots meta tag, so Google can actually see it.

      Using the tool as a Googlebot checker

      Pick Googlebot to see what Google Search can crawl, which is what most people want from a Googlebot tester. Pick Google-InspectionTool to see what the URL Inspection tool and Rich Results Test can reach; it follows the Googlebot group when it has none of its own. If you run AdSense, check Mediapartners-Google too. It ignores the * group, so a site wide Disallow: / does not stop it, but a group written for it will, and that costs ad relevance.

      Robots.txt validator: the errors and warnings it flags

      Below the tester, a robots.txt validator reads every line and reports problems with their line numbers. Click a line number to jump to it in the editor. It checks for:

      • Errors: rules above the first User-agent line, noindex in robots.txt (unsupported by Google since September 2019), relative sitemap URLs, and files over 500 KiB.
      • Warnings: misspelled field names, missing colons, paths that do not start with / or *, Disallow: / for all crawlers, rules that block CSS or JavaScript, and unknown fields.
      • Notes: Crawl-delay (ignored by Google, followed by Bing), Yandex-only fields, user-agent values with versions attached, groups that are merged, and named groups that make crawlers skip the * rules.
      Robots.txt validator listing errors and warnings with line numbers
      The validator. Errors stop a rule from working at all, warnings work for some crawlers but not others, and notes explain behaviour that is easy to misread.

      What happened to the Google Search Console robots.txt tester

      Google retired the old robots.txt tester in Search Console in late 2023 and replaced it with the robots.txt report. The report is useful: it lists the robots.txt files Google found for your top hosts, when each was last crawled, any fetch errors or warnings, and it lets you request a recrawl after you change the file.

      What it no longer does is let you type a URL and see whether a given rule blocks it, or try an edit before you publish. That gap is what this page covers, and it works for any site, not only the ones you have verified in Search Console. Use both: test and fix here, upload the file, then request a recrawl in the report so Google picks up the change sooner than its usual 24 hour cache.

      Robots.txt examples you can paste and test

      Each of these works as written. Paste one into the editor to check it against your own URLs before using it.

      Allow every crawler everything

      User-agent: *
      Disallow:
      
      Sitemap: https://example.com/sitemap.xml

      Block the whole site, for example on staging

      User-agent: *
      Disallow: /

      Staging sites are better protected with a password, because a blocked URL can still be indexed from links.

      Block a folder but allow one file inside it

      User-agent: *
      Disallow: /wp-admin/
      Allow: /wp-admin/admin-ajax.php

      Block internal search and filter parameters

      User-agent: *
      Disallow: /*?s=
      Disallow: /*?filter=
      Disallow: /*&sort=

      This is one of the few robots.txt changes that saves crawl budget on large sites, because faceted URLs multiply fast.

      Block Googlebot only

      User-agent: Googlebot
      Disallow: /
      
      User-agent: *
      Disallow:

      What robots.txt cannot do

      • It does not remove pages from Google. Use a noindex meta tag or an X-Robots-Tag header, and leave the URL crawlable so the tag can be seen.
      • It is not security. The file is public and lists the paths you would rather hide. Protect private areas with a login.
      • It is a request, not a barrier. Reputable crawlers follow it. Scrapers and some user-triggered fetchers do not.
      • It covers one host. https://example.com/robots.txt says nothing about https://shop.example.com or http://example.com.
      • It does not describe your content. That is the job of structured data. If you are working on how pages appear in results, the schema markup generator builds the JSON-LD for that.

      Other free SEO tools on Calcxi

      These sit in the same SEO category as this robots.txt tester.

      Robots.txt Generator

      Build a new robots.txt from presets for WordPress, WooCommerce and Blogger, with AI crawler controls, then send it straight back here to test.

      Schema Markup Generator

      JSON-LD for 15 schema types, with Google's required fields marked and a clear label on which types still earn a rich result.

      YouTube Tag Extractor

      Pulls the hidden tags from any public video, useful for keyword research on YouTube.

      YouTube Title Generator

      Title ideas built around a keyword, with length kept inside what search results display.

      YouTube Video Stats Checker

      Views, likes and engagement for any public video in one place.

      All SEO tools

      The full set. More technical SEO tools are being added to this category.

      Robots.txt tester FAQ

      What is a robots.txt tester?

      A robots.txt tester checks whether a crawler such as Googlebot is allowed to crawl a URL under the rules in a site's robots.txt file. A good one also shows which rule made the decision and which group of rules the crawler followed, so you can fix the file rather than guess.

      How do I check if my robots.txt is working?

      To check robots.txt on a live site, fetch the file with the tool above, confirm it returns 200 OK, then test a few URLs you need indexed and a few you want blocked with Googlebot selected. After uploading changes, open the robots.txt report in Search Console to confirm Google has fetched the new version, and request a recrawl if it has not.

      Is there still a robots.txt tester in Google Search Console?

      No. Google retired it in late 2023 and replaced it with the robots.txt report, which shows the files Google found, when it fetched them and any errors. It does not test individual URLs, which is what this robots.txt tester is for.

      How accurate is this robots.txt checker for Googlebot?

      The matching logic is a direct port of Google's open-source robots.txt parser and gives the same result on every URL matching check in the test suite Google publishes with it, including wildcards, the longest match rule, index.html handling and misspelled fields. It also applies Google's documented fallbacks, such as Googlebot-Image using the Googlebot group. Other search engines follow the same standard, RFC 9309, though they may differ on edge cases.

      Why is Googlebot blocked by robots.txt when I never blocked Google?

      Usually a rule written for everyone is broader than it looks, such as Disallow: /p matching every path that starts with those letters, or a User-agent: * group with Disallow: / left over from staging. Test the exact URL here and the result will point to the line responsible.

      Does Disallow in robots.txt stop a page from being indexed?

      No. It stops crawling. A blocked URL can still appear in Google if other pages link to it, shown without a description. To keep a page out of results, allow crawling and add a noindex robots meta tag or an X-Robots-Tag header.

      How long does Google take to notice robots.txt changes?

      Google usually caches robots.txt for up to 24 hours, sometimes longer if the file cannot be refreshed. You can speed this up by requesting a recrawl from the robots.txt report in Search Console.

      Is it robots.txt or robot.txt?

      It must be robots.txt, plural and in lowercase, placed at the root of the host, such as https://example.com/robots.txt. A file named robot.txt, or one placed in a subfolder, is ignored by every crawler.

      How do I block Googlebot but allow other crawlers?

      Add a group for Googlebot with Disallow: / and a separate User-agent: * group with an empty Disallow:. Remember that Googlebot-Image, Googlebot-News and Google-InspectionTool follow the Googlebot group when they have none of their own, so they are blocked too.

      Does Google support Crawl-delay in robots.txt?

      No, Google ignores Crawl-delay. Bing follows it, and Yandex stopped using it in 2018. Googlebot adjusts its crawl rate on its own based on how quickly your server responds, and a slow or failing robots.txt reduces crawling more than any directive would.

      How do I block AI crawlers like GPTBot with robots.txt?

      Add User-agent: GPTBot followed by Disallow: /, and repeat the User-agent line for each bot you want to stop, such as ClaudeBot, CCBot and Google-Extended. Test the result in Step 3 above, which checks every AI crawler at once and shows which ones are still allowed.

      Does robots.txt apply to subdomains?

      No. Each combination of protocol, host and port has its own robots.txt. The file at https://example.com/robots.txt does not cover https://blog.example.com or http://example.com, and the tester marks such URLs as belonging to another host.

      What is the maximum size of a robots.txt file?

      Google reads the first 500 KiB and ignores everything after that. The limit comes from RFC 9309, which requires crawlers to parse at least 500 KiB. The validator shows how close your file is to it.

      How the live fetch works, and its limits

      Browsers cannot read another site's robots.txt directly, so the Fetch button in this robots tester asks a small Calcxi server to download it. The server only ever requests /robots.txt, identifies itself as CalcxiRobotsTester, follows at most five redirects like Google does, stops reading at 500 KiB and stores nothing. Private and internal network addresses are refused.

      Some sites show different content to Googlebot than to other visitors, and a firewall may block the fetch entirely. If the result looks wrong, open your robots.txt in a browser, paste the text into the editor and test it there. Pasted text and test URLs never leave your browser. This tool is a guide to how crawlers read the file; the final word on what Google did with your site is always Search Console.

      Aayush Kulshrestha, founder of Calcxi

      Written & verified by

      Aayush Kulshrestha

      B.Tech Computer Science · 8 years in web development & SEO · Bhilwara, India
      About · LinkedIn · Report an error