Free tool
Robots.txt generator
Convertica's free robots.txt generator builds the file from a few choices: the paths to block, your sitemap, and what each of 20 AI crawlers may do, from a preset or one by one. Before you copy it, the file is read back by the RFC 9309 rules engine behind our AI visibility checker, so you see what it allows and what it blocks. The tester under it checks any robots.txt file against any crawler and URL. Both run in your browser, with no sign-up.
Short answer
A robots.txt generator writes the plain text file a site publishes at /robots.txt to tell crawlers which URLs they may fetch. Convertica's free robots.txt generator builds it from your choices, adds rules for 20 AI crawlers from a preset or one by one, and tests the result against the RFC 9309 rules before you copy it.
- The file is tested before you copy it: each of the 20 listed AI crawlers is marked allowed or blocked, with the line that decides it.
- A crawler with a group of its own does not read the * group, so the generator repeats your path rules in every group that allows a crawler by name.
- Training, search and user-triggered crawlers are separate settings. Blocking GPTBot does not block OAI-SearchBot.
- The generator writes User-agent, Disallow, Allow and Sitemap lines only. Crawl-delay, Noindex and Host are not in RFC 9309 and are left out.
- robots.txt is a request, not a lock: it does not remove a page from a search index and it is not access control.
Robots.txt generator: build your file
Free to use, no sign-up. The form starts with a made-up example for example.com. Replace it with your own paths and the file updates as you type. Nothing you enter leaves your browser.
Your robots.txt file
6 lines
General rules: crawlers the file does not name are allowed, except 2 blocked paths.
Listed AI crawlers: 0 allowed by name, 0 blocked by name, 20 on the general rules.
Tested: 20 of 20 listed AI crawlers may fetch /.
1 Sitemap line.
# All crawlers
User-agent: *
Disallow: /cart/
Disallow: /account/
Sitemap: https://www.example.com/sitemap.xml
This file, tested: the made-up example above
The file above was read back by the same rules engine as the AI visibility checker. Each verdict names the line that decides it.
| Crawler | Used for, and your setting | At / | At /cart/ |
|---|---|---|---|
| OAI-SearchBotOpenAI | Search and answersSet to: General rules | AllowedNo rule in the * group matches this path. | BlockedDisallow: /cart/ on line 3, in the * group. |
| Claude-SearchBotAnthropic | Search and answersSet to: General rules | AllowedNo rule in the * group matches this path. | BlockedDisallow: /cart/ on line 3, in the * group. |
| PerplexityBotPerplexity | Search and answersSet to: General rules | AllowedNo rule in the * group matches this path. | BlockedDisallow: /cart/ on line 3, in the * group. |
| GooglebotGoogle | Search and answersSet to: General rules | AllowedNo rule in the * group matches this path. | BlockedDisallow: /cart/ on line 3, in the * group. |
| ApplebotApple | Search and answersSet to: General rules | AllowedNo rule in the * group matches this path. | BlockedDisallow: /cart/ on line 3, in the * group. |
| DuckAssistBotDuckDuckGo | Search and answersSet to: General rules | AllowedNo rule in the * group matches this path. | BlockedDisallow: /cart/ on line 3, in the * group. |
| MistralAI-IndexMistral AI | Search and answersSet to: General rules | AllowedNo rule in the * group matches this path. | BlockedDisallow: /cart/ on line 3, in the * group. |
| Amzn-SearchBotAmazon | Search and answersSet to: General rules | AllowedNo rule in the * group matches this path. | BlockedDisallow: /cart/ on line 3, in the * group. |
| ChatGPT-UserOpenAI | Fetch for a userSet to: General rules | AllowedNo rule in the * group matches this path. | BlockedDisallow: /cart/ on line 3, in the * group. |
| Claude-UserAnthropic | Fetch for a userSet to: General rules | AllowedNo rule in the * group matches this path. | BlockedDisallow: /cart/ on line 3, in the * group. |
| Perplexity-UserPerplexity | Fetch for a userSet to: General rules | AllowedNo rule in the * group matches this path. | BlockedDisallow: /cart/ on line 3, in the * group. |
| MistralAI-UserMistral AI | Fetch for a userSet to: General rules | AllowedNo rule in the * group matches this path. | BlockedDisallow: /cart/ on line 3, in the * group. |
| Amzn-UserAmazon | Fetch for a userSet to: General rules | AllowedNo rule in the * group matches this path. | BlockedDisallow: /cart/ on line 3, in the * group. |
| GPTBotOpenAI | Model trainingSet to: General rules | AllowedNo rule in the * group matches this path. | BlockedDisallow: /cart/ on line 3, in the * group. |
| ClaudeBotAnthropic | Model trainingSet to: General rules | AllowedNo rule in the * group matches this path. | BlockedDisallow: /cart/ on line 3, in the * group. |
| Google-ExtendedGoogle | Model trainingSet to: General rules | AllowedNo rule in the * group matches this path. | BlockedDisallow: /cart/ on line 3, in the * group. |
| Applebot-ExtendedApple | Model trainingSet to: General rules | AllowedNo rule in the * group matches this path. | BlockedDisallow: /cart/ on line 3, in the * group. |
| MistralAI-TrainingMistral AI | Model trainingSet to: General rules | AllowedNo rule in the * group matches this path. | BlockedDisallow: /cart/ on line 3, in the * group. |
| AmazonbotAmazon | Model trainingSet to: General rules | AllowedNo rule in the * group matches this path. | BlockedDisallow: /cart/ on line 3, in the * group. |
| CCBotCommon Crawl | Open crawl dataSet to: General rules | AllowedNo rule in the * group matches this path. | BlockedDisallow: /cart/ on line 3, in the * group. |
Check before you publish
What each operator says about the crawlers this file blocks at /
Robots.txt tester: check a file against any crawler and URL
Paste a robots.txt file, name a crawler and list the URLs you care about. The tester reads the file in your browser, the way RFC 9309 describes, and shows which line decides each URL. It also works as a robots.txt validator: lines a crawler cannot use, such as a misspelled directive, are listed under the result. It starts with a made-up example.
Googlebot: URLs it may fetch
5 of 6
Googlebot is named in the file, so it reads its own group (User-agent line 8) and not the * group.
Blocked: /staging/new-home/.
The tester applies RFC 9309 as written. It cannot see a firewall or bot protection rule, and it cannot tell you whether a crawler obeys the file.
Example result, for the made-up file above
| URL path | Result, and the line that decides it |
|---|---|
/search?q=shoes | AllowedNo rule in the group matches. |
/search/about | AllowedNo rule in the group matches. |
/products/?sort=price | AllowedNo rule in the group matches. |
/data/feed.json | AllowedNo rule in the group matches. |
/data/feed.json?v=2 | AllowedNo rule in the group matches. |
/staging/new-home/ | BlockedDisallow: /staging/ on line 9. |
Sitemap line in this file: https://www.example.com/sitemap.xml.
How the file was read
To see all 20 listed AI crawlers for a pasted file in one table, use the robots.txt AI crawler check on the AI visibility checker.
How to use the robots.txt generator
To use the robots.txt generator, choose what crawlers in general may do, list the paths to block, pick a preset for the AI crawlers or set each one, and add your sitemap. The file rebuilds as you type and is tested each time. Then copy or download it and upload it to the root of your site.
- Set the general rules. Most sites leave crawlers allowed and block a few paths, such as a cart, an account area or internal search results.
- List the paths to block. One per line, each starting with /. A path blocks every URL that starts with it, so
/cartalso blocks/cart-rules/while/cart/does not. - Choose what the AI crawlers may do. Start from a preset, then open the list to change any crawler. Each row says what the operator states the crawler is for.
- Add other crawlers by name if you want to block or allow one that is not listed.
- Add your sitemap. Use the full address, including https://.
- Read the table under the file. It shows, crawler by crawler, what the file means at / and at the path you chose. Warnings point to lines that do nothing or work against each other.
- Copy or download the file and upload it so that it loads at
/robots.txt.
The generator does not crawl your site and does not know your platform. You decide which paths to block. If you are unsure whether a path matters, leave it out until you have checked: a rule you did not mean can keep crawlers away from pages you want found.
How do you create a robots.txt file?
To create a robots.txt file, make a plain text file named robots.txt, add groups of rules that each start with a User-agent line, upload the file to the root of your site, and test it. Google's documentation gives the same four steps. The generator above does the second one and tests the result.
- Create a file named robots.txt. Use a text editor, not a word processor, and save it as UTF-8. Word processors can add curly quotes and other characters that crawlers cannot read.
- Add the rules. Each group starts with one or more
User-agentlines and continues withDisallowandAllowlines, one rule per line. - Upload it to the root of the host. How depends on your hosting or platform. Some platforms write the file for you and offer a setting instead.
- Test it. Before upload with the tester above, and after upload on the live address: the steps are under where robots.txt goes.
| Rule | What it means | Source |
|---|---|---|
| Name | Exactly robots.txt, in lower case | RFC 9309, section 2.3 |
| Location | The top-level path of the host: https://www.example.com/robots.txt. Not a subfolder | RFC 9309, section 2.3 |
| Scope | One protocol, host and port. A subdomain needs its own file, and so does http if it is still served | Google, "How to write and submit a robots.txt file" |
| Encoding | UTF-8 plain text, served as text/plain | RFC 9309, section 2.3 |
| Size | A crawler must read at least the first 500 kibibytes. Google ignores what comes after that | RFC 9309, section 2.5, and Google's robots.txt specification |
| Changes | Crawlers may cache the file. The RFC says a cached copy should not be used for more than 24 hours, and Google says it generally caches for up to 24 hours | RFC 9309, section 2.4, and Google's robots.txt specification |
What goes in a robots.txt file?
A robots.txt file holds groups of rules. Each group starts with one or more User-agent lines that name the crawlers it is for, followed by Disallow and Allow lines that each give the start of a URL path. Sitemap lines stand outside the groups. Lines that begin with # are comments, and blank lines mean nothing.
| Line | What it does | What the generator writes |
|---|---|---|
User-agent: * | Starts the group for every crawler that no other group names | Always first, from your choice under General rules |
User-agent: GPTBot | Starts, or adds a crawler to, a group for that crawler. The name is not case-sensitive | One line for each crawler you set to Allow or Block, grouped by setting |
Disallow: /cart/ | Blocks every URL whose path starts with /cart/. The path is case-sensitive | One line for each path to block |
Allow: /cart/help/ | Allows URLs under a blocked path. The longer matching rule wins, and a tie goes to Allow | One line for each exception. Allow: / alone when a group has nothing to block |
Disallow: / | Blocks the whole site for the group | For every crawler you set to Block |
* and $ in a path | * matches any run of characters. $ at the end means the URL ends there | Kept as you type them |
Sitemap: https://... | Gives the full address of a sitemap. It belongs to no group | One line for each sitemap, at the end |
# comment | Ignored by crawlers | One comment above each group, saying who it is for |
A crawler reads the file in two stages. First it picks its group: every group that names it, merged, or the * group if none does. Then, for each URL, the longest matching rule in that group decides.
group = every group that names the crawler, merged
otherwise the * group
otherwise no rules at all
rule = the matching Allow or Disallow with the longest path
(a tie goes to Allow)
verdict = Allow, or no matching rule: allowed
Disallow: blocked
The first stage is where hand-written files go wrong. A crawler that has a group of its own does not read the * group at all, so a rule written for everyone stops applying to it. The AI visibility checker page explains how robots.txt decides with two more worked examples.
Two details from Google's documentation are worth knowing. The * group does not cover Google's AdsBot crawlers, which must be named. And Google ignores any line that is not one of the four fields it supports: user-agent, allow, disallow and sitemap.
Worked examples: what the generator writes, and why
The examples below are built and tested by the same code as the tools above. The site and its paths are made up. They show how the rules behave. They are not a recommended set of rules for any site.
1. The file the form starts with
Two blocked paths, one sitemap and no AI-specific rules give a file of 6 lines. No crawler is named, so all 20 listed AI crawlers read the * group: each one is allowed at / and blocked at /cart/, by Disallow: /cart/ on line 3.
2. Search and user-triggered crawlers allowed, training crawlers blocked
The same paths with the third preset give 32 lines:
# Every crawler that is not named below
User-agent: *
Disallow: /cart/
Disallow: /account/
# AI crawlers allowed by name. They do not read the * group, so its path rules are repeated here.
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
User-agent: Googlebot
User-agent: Applebot
User-agent: DuckAssistBot
User-agent: MistralAI-Index
User-agent: Amzn-SearchBot
User-agent: ChatGPT-User
User-agent: Claude-User
User-agent: Perplexity-User
User-agent: MistralAI-User
User-agent: Amzn-User
Disallow: /cart/
Disallow: /account/
# AI crawlers blocked by name
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: MistralAI-Training
User-agent: Amazonbot
Disallow: /
Sitemap: https://www.example.com/sitemap.xml
GPTBot is blocked at /. OAI-SearchBot is allowed at / and still blocked at /cart/, because the group that names it repeats the two path rules. Without that repetition, naming OAI-SearchBot would have opened the cart and the account area to it. CCBot is not named, so it follows the general rules: allowed at /. In all, 14 of the 20 may fetch the homepage.
3. The block preset
The fourth preset blocks 18 of the 20 listed crawlers by name, in one group with Disallow: /. Googlebot and Applebot are left on the general rules and stay allowed at /. They are the crawlers behind Google Search and Apple's search features, so blocking either one is a far bigger decision than an AI setting. Each has a switch of its own if that is what you want.
4. Lines that do nothing
Block /cart/, /cart/checkout/, /account/ and allow /account/help/ and /blog/, and the generator writes all five lines and adds two warnings:
- Disallow: /cart/checkout/ does nothing: a shorter Disallow already blocks every URL it matches.
- Allow: /blog/ does nothing: no path you block covers it, so those URLs are allowed without it.
Allow: /account/help/ gets no warning, because it opens part of a blocked path. Lines that do nothing are harmless to crawlers. They are worth removing because the next person to read the file will assume they matter.
5. One file, two crawlers
The tester starts with a file in which Googlebot has a group of its own. Tested for Googlebot and then for Bingbot, which the file does not name, the same six URLs give different results:
| URL path | Googlebot | Bingbot |
|---|---|---|
/search?q=shoes | Allowed. No rule in the group matches. | Blocked. Disallow: /search on line 3. |
/search/about | Allowed. No rule in the group matches. | Allowed. Allow: /search/about on line 4. |
/products/?sort=price | Allowed. No rule in the group matches. | Blocked. Disallow: /*?sort= on line 5. |
/data/feed.json | Allowed. No rule in the group matches. | Blocked. Disallow: /*.json$ on line 6. |
/data/feed.json?v=2 | Allowed. No rule in the group matches. | Allowed. No rule in the group matches. |
/staging/new-home/ | Blocked. Disallow: /staging/ on line 9. | Allowed. No rule in the group matches. |
Googlebot is named in the file, so it reads its own group (User-agent line 8) and not the * group. So none of the four rules written for * applies to it, and the search results pages the file meant to block are open to Googlebot. Bingbot is not named in the file, so the * group applies (User-agent line 2). The staging folder, blocked only in Googlebot's group, is open to Bingbot. Whoever wrote this file probably wanted both crawlers to get all five rules: the fix is to repeat the four general rules in Googlebot's group, or to move the staging rule into the * group and delete Googlebot's group.
How do you block AI crawlers in robots.txt?
To block AI crawlers in robots.txt, add a group that names each crawler you want to keep out, followed by Disallow: /. There is no single name for all of them: each operator publishes its own names, and most publish separate ones for search, for fetches a user asks for and for model training.
The generator lists 20 crawlers and control tokens from nine operators (OpenAI, Anthropic, Perplexity, Google, Apple, DuckDuckGo, Mistral AI, Amazon, Common Crawl), sorted into the four groups the operators' own pages support: eight for search and answers, five that fetch a page because a user asked, six for model training and one open data crawler. The four presets are rules over those groups, and nothing more:
| Preset | Search and answers (8) | Fetch for a user (5) | Model training (6) | Open crawl data (1) | May fetch / |
|---|---|---|---|---|---|
| No AI-specific rules | General rules | General rules | General rules | General rules | 20 of 20 |
| Allow all listed AI crawlers | Allow | Allow | Allow | Allow | 20 of 20 |
| Allow search and user-triggered crawlers, block training crawlers | Allow | Allow | Block | General rules | 14 of 20 |
| Block listed AI crawlers, except Googlebot and Applebot | Block, except Googlebot and Applebot (general rules) | Block | Block | Block | 2 of 20 |
Whether to block any of them is your decision, and this page does not make it for you. What each choice does, in the operators' own words, is in the crawler table on the AI visibility checker page, with a link to every source. Six things to know before you choose:
- Blocking a training crawler is not leaving AI search. OpenAI documents GPTBot and OAI-SearchBot as independent settings: a site can disallow GPTBot, which collects content that may be used for training, and still allow OAI-SearchBot, which surfaces sites in ChatGPT's search features. Anthropic and Mistral document the same split.
- Blocking a search crawler has a cost its operator states. OpenAI says a site that opts out of OAI-SearchBot will not be shown in ChatGPT search answers, though it can still appear as a navigational link. Anthropic says blocking Claude-SearchBot may reduce a site's visibility in user search results.
- Google's AI Overviews have no crawler of their own. Google says robots.txt rules for Googlebot are the control for how a site is crawled for Search, its AI features included. Google-Extended only governs Gemini training and grounding.
- Some user-triggered fetchers may not follow the file. OpenAI says robots.txt rules may not apply to ChatGPT-User, Perplexity says Perplexity-User generally ignores them, and Amazon says Amzn-User may not follow all of them, because a person starts the request. A Block setting for those is a stated preference, not a guarantee.
- Applebot follows Googlebot when it is not named. Apple documents this. Block Googlebot alone and the tested table shows Applebot blocked too, with a warning.
- The list is not complete. It holds only crawlers whose operator's own page we could read. Others exist, and operators add and rename them. Use "Other crawlers by name" for any you have checked yourself.
CCBot is the one case the presets leave to you. Common Crawl publishes an open repository of crawl data and states no single use for it, so no preset about "training" or "search" can honestly sort it. Only the block preset touches it.
Should a robots.txt file have Crawl-delay, Noindex or Host lines?
Crawl-delay, Noindex and Host lines are not part of RFC 9309, the robots.txt standard, so each crawler decides for itself whether to read them. Google supports none of the three. This robots.txt generator writes User-agent, Disallow, Allow and Sitemap lines only, and the tester lists other lines as found and not evaluated.
| Line | Who says what |
|---|---|
Crawl-delay |
|
Noindex |
|
Host |
|
Clean-param |
|
What that means in practice:
- Crawl-delay is worth adding by hand only for a crawler whose operator says it reads the line, in that crawler's own group. For Google, a slower crawl is not a robots.txt setting.
- Noindex belongs on the page, as a robots meta tag or an
X-Robots-Tagheader, and the page must stay crawlable so that the tag can be seen. - Host was not found on any current operator page we read, so the generator has no reason to write it.
- Clean-param is specific to Yandex. If Yandex matters to you, its documentation covers the syntax.
Microsoft's page on Bing's crawlers could not be read for this table, because its text is added by scripts, so nothing is said here about Bing and Crawl-delay.
What does robots.txt not do?
A robots.txt file asks crawlers not to fetch certain URLs. It does not remove a page from a search index, it does not hide the page from people, and it cannot make any crawler obey. RFC 9309 says in so many words that its rules are not a form of access authorization.
- It does not remove a page from search. Google says robots.txt is not a mechanism for keeping a web page out of Google: a blocked URL can still be shown in results if other pages link to it. Use noindex, or a password.
- It is not access control. Anyone can open a blocked URL in a browser. Private files need a login.
- It is public. The RFC points out that listing a path in robots.txt makes that path discoverable. Do not list anything whose address is itself a secret.
- It cannot enforce anything. Following the file is up to each crawler. The operators listed above say what theirs do, and three say their user-triggered fetchers may not follow it.
- It does not override your firewall. A CDN or bot protection rule can turn away a crawler the file allows, before the file is even read.
- It applies to one host. A file on www.example.com says nothing about shop.example.com.
The reverse mistake is as common: a file that fails. If robots.txt returns a 404, RFC 9309 lets a crawler fetch anything on the site. If it returns a server error, the RFC tells a crawler to assume the whole site is blocked. Google documents how its own crawlers handle each status in its robots.txt specification.
Where does robots.txt go, and how do you test it after upload?
Upload robots.txt to the root of the host it is for, so that it loads at https://www.example.com/robots.txt. Then open that address in a private browser window. If you see the lines you generated, as plain text, crawlers can read them. No submission is needed: Google says its crawlers find and use the file on their own.
- Upload it to the root. On a platform that manages the file for you, look for a robots.txt setting or template instead of a file upload.
- Load it in a private window. You should see plain text, not a page with your site's header around it and not a download prompt.
- Check the status. The address should answer 200. If it redirects, RFC 9309 says a crawler should follow the redirect and apply the rules it finds to the host it started from.
- Paste the live file into the tester above. What is live can differ from what you uploaded when a plugin, a CDN or the platform rewrites it.
- Read the robots.txt report in Search Console. Google's report shows the files it found for your hosts, when each was last crawled and any warnings or errors, and lets you ask for a recrawl after an urgent fix.
- Look at your logs later. Server or CDN logs show which crawlers request the file and which pages they fetch after it.
To see what a crawler that does not run JavaScript receives from a page once it is allowed in, use the crawlability test.
After robots.txt: what to check next
A robots.txt file settles who may fetch your pages. Whether those pages can be read, understood and acted on is a separate set of checks: a page that is fetched still has to state its facts in the HTML, and a visitor who arrives from an AI answer still has to be persuaded.
Once AI assistants send you visitors, the AI traffic tracking page builds the GA4 filter that shows them. See all free tools and how they fit together.
Robots.txt generator FAQ
What is a robots.txt generator?
A robots.txt generator is a tool that writes a robots.txt file for you: the plain text file at the root of a site that tells crawlers which URLs they may fetch. You choose what to block and the tool writes the User-agent, Disallow, Allow and Sitemap lines in the right order. Convertica's generator also tests the file before you copy it.
Is this robots.txt generator free?
Yes. The generator and the tester are free and need no sign-up. Both run in your browser: nothing you type or paste is sent to a server and nothing is stored, so you can use them for a site that is not live yet.
Is robots.txt still used?
Yes. The Robots Exclusion Protocol became an internet standard, RFC 9309, in September 2022, and Google, OpenAI, Anthropic, Perplexity, Apple and Amazon each document robots.txt as the way to control their crawlers. What has changed is the list of crawlers worth a decision: AI search, AI training and user-triggered fetchers now have names of their own.
How do I block GPTBot in robots.txt?
Add a group for it: a line that says User-agent: GPTBot, then a line that says Disallow: /. OpenAI says disallowing GPTBot indicates that a site's content should not be used to train its generative AI foundation models. It is a separate setting from OAI-SearchBot, the crawler behind ChatGPT's search features, so blocking GPTBot alone does not take a site out of ChatGPT search.
Does blocking AI crawlers remove my site from Google?
No, unless you block Googlebot. Google-Extended, the token for Gemini training and grounding, does not affect inclusion or ranking in Google Search, according to Google. Googlebot is different: it crawls for Search, AI Overviews and AI Mode included, so blocking it blocks all of that. This generator's block preset leaves Googlebot and Applebot alone for that reason.
Does robots.txt stop a page from showing in search results?
No. A robots.txt rule stops a crawler that follows it from fetching the page. Google says robots.txt is not a mechanism for keeping a page out of Google, and that a blocked URL can still appear in results when other pages link to it. To keep a page out, use a noindex tag or header on a page crawlers may fetch, or protect it with a password.
Is robots.txt enforceable, and is ignoring it illegal?
The file itself enforces nothing. RFC 9309 says its rules are not a form of access authorization, and Google says robots.txt cannot enforce crawler behavior: following it is up to the crawler. Whether ignoring it breaks a law or a contract depends on the country and the facts, which is a question for a lawyer, not for a robots.txt tool. To enforce a block, use a login, a firewall or a server rule.
Should I add Crawl-delay to robots.txt?
It depends on which crawler you want to slow down, because Crawl-delay is not part of RFC 9309. Google says it does not support it, Yandex says it has not used it since 2018, and Apple and Amazon say their crawlers do not follow it. Anthropic says its bots support it. This generator leaves the line out. You can add it by hand under the group it is for.
Can I use noindex in robots.txt?
Not for Google. Google says the noindex rule in a robots.txt file is not supported, and it retired its code for that unpublished rule on September 1, 2019. Use a noindex robots meta tag or an X-Robots-Tag response header instead, and do not block that page in robots.txt, because a crawler that cannot fetch the page cannot see the tag.
Where do I put the robots.txt file?
At the root of the host it is for, so that it loads at https://www.example.com/robots.txt. It cannot sit in a subfolder. Each subdomain, and each protocol and port, has its own file: rules at www.example.com do not apply to shop.example.com. Save it as plain text in UTF-8 with the exact name robots.txt.
Do I need a robots.txt file at all?
Not to be crawled. With no file, or a file that returns a 404, crawlers treat every URL as allowed: RFC 9309 says a crawler may then access any resource, and Google says it assumes there are no crawl restrictions. A file is how you block paths, address crawlers by name and list your sitemap.
How do I test a robots.txt file?
Before upload, paste it into the robots.txt tester on this page, enter a crawler's name and the URLs you care about, and read which line decides each one. After upload, open the file in a private browser window to confirm that it loads, then check the robots.txt report in Google Search Console, which shows the robots.txt files Google found, when each was last crawled, and any warnings or errors.
Why does the generator repeat my blocked paths for the AI crawlers it allows?
Because a crawler that is named in a file reads only its own group. If the file allowed GPTBot by name with a single Allow line, GPTBot would stop reading the * group and could fetch the paths you blocked for everyone else. Repeating the path rules in the named group keeps them in force.