robots.txt generator and tester, sitemap.xml builder

Build and test robots.txt (RFC 9309) and make sitemap.xml from a URL list.

Start from

AI crawler names as of 2026-10-14. robots.txt is a request: well-behaved crawlers follow it, others do not. Blocking AI search crawlers also removes the site from those AI answers.

Group 1

Product tokens such as Googlebot or GPTBot, matched without regard to case.

Rules

Not in RFC 9309. Google ignores it; Bing and Yandex read it.

Absolute URLs. They apply to every crawler, wherever they appear in the file.

    What this tool does

    Three tabs, all working on your device:

    • robots.txt builder: groups of user agents with Allow and Disallow rules, an optional Crawl-delay and Sitemap lines, with presets for allowing or blocking everything, WordPress, and blocking AI crawlers. Warnings appear as you type: a path without a leading slash, a sitemap URL that is not absolute, an agent name with characters crawlers ignore.
    • robots.txt tester: paste any robots.txt (or use the one you just built), name a crawler such as Googlebot or GPTBot, and list URLs. Each one is marked allowed or blocked, with the line number of the rule that decided it.
    • sitemap.xml: paste URLs, one per line, optionally with a date after a comma. You get a valid sitemap, split into several files plus a sitemap index when there are more than 50,000 URLs or a file would pass 50 MB, and a report of the rows that were left out and why.

    How the tester decides, per RFC 9309

    robots.txt was standardised as RFC 9309 in September 2022, and Google's crawler follows it. The tester applies the same rules:

    1. Pick the group. The crawler's product token is compared with every User-agent line, ignoring case. All groups that name it are merged. If none does, the * group is used; if there is no * group either, everything is allowed. A crawler with its own group does not also follow *.
    2. Find matching rules. * matches any run of characters and $ at the end means "the URL ends here", so /*.pdf$ blocks /files/a.pdf but not /files/a.pdf?download=1. Matching is case-sensitive and starts at the beginning of the path.
    3. The longest rule wins. With Allow: /example/page/ and Disallow: /example/page/disallowed.gif, the GIF is blocked because its rule is longer. If an Allow and a Disallow are equally long, Allow wins.
    4. Encoding is normalised. /caf%C3%A9 and /café are the same path; %62%61%7A matches baz. %2A and %24 in a rule match a literal * and $ in the URL.
    5. /robots.txt itself is always allowed.

    The test suite checks these against the examples in RFC 9309 and in Google's documentation.

    Blocking AI crawlers

    The presets list user agents published by the companies that run them, as of 14 October 2026: training crawlers (GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, CCBot, meta-externalagent, Bytespider, Amazonbot and others) and, in the stricter preset, the crawlers that fetch pages for AI search answers or when a user asks a chatbot about a page (OAI-SearchBot, ChatGPT-User, Claude-SearchBot, Claude-User, PerplexityBot, Perplexity-User). Google-Extended and Applebot-Extended are opt-out tokens, not separate crawlers: Googlebot still indexes your pages for Search. Blocking the search crawlers keeps your pages out of those AI answers as well. robots.txt is a request, not a lock: some crawlers ignore it, and only a firewall rule actually stops a request.

    Sitemaps: what matters and what does not

    Each <loc> must be absolute, on the same host as the sitemap, under 2,048 characters, and escaped twice: percent-encoding for the URL (the tool turns /cà-phê into /c%C3%A0-ph%C3%AA) and XML entities for the file (& becomes &amp;). Google ignores <changefreq> and <priority> and uses <lastmod> only when it is consistently accurate, so set a date only when it is the real date the content changed. For split files, give the address where you will publish them; the index lists them there. Submit the sitemap (or the index) in Search Console, or add a Sitemap: line to robots.txt.

    The article robots.txt vs noindex vs sitemap explains which of the three to use when, including the classic mistake of blocking a page you want removed. To set the title and share image of each page, use the Open Graph and meta tag generator; to check a URL's encoding, the URL encoder.

    Frequently asked questions

    Does Disallow in robots.txt remove a page from Google?

    No. It stops crawling, not indexing. A blocked URL can still appear in results, without a description, if other pages link to it. To remove a page, let it be crawled and add a noindex meta tag or X-Robots-Tag header.

    Which rule wins when Allow and Disallow both match?

    The longest matching rule (the one with more characters). If they are the same length, Allow wins. The tester shows the deciding rule and its line number.

    Does Google respect Crawl-delay?

    No. Crawl-delay is not part of RFC 9309 and Google ignores it. Bing and Yandex read it. Google adjusts its crawl rate automatically; you can report problems in Search Console.

    How many URLs can a sitemap have?

    50,000 URLs and 50 MB uncompressed per file. Above that, split it into several sitemaps and list them in a sitemap index, which is what this tool does automatically.

    Will blocking GPTBot remove my site from ChatGPT answers?

    Not by itself. GPTBot collects training data; OAI-SearchBot is used for ChatGPT search results and ChatGPT-User for pages a user asks about. The stricter preset blocks those too.