Free tools / AI crawler directory

Every AI crawler, in one table.

The 15 robots.txt tokens the Lantad scanner checks, from 9 vendors, with what each one is for, whether it publishes a user agent we can probe live, and the robots.txt lines that control it.

  • 15 robots.txt tokens
  • 9 vendors
  • 12 probed live
Worked example

One policy.
Two different answers.

The policy most sites want: keep the crawlers that can put you in a live answer, turn away the ones that collect training data. Five of the 15 tokens under that policy, with the purpose class that decided each one.

Allow AI search and on-demand, block training Site root

OAI-SearchBot, AI search, allowed

ChatGPT-User, on-demand fetch, allowed

Claude-SearchBot, AI search, allowed

GPTBot, training, blocked

ClaudeBot, training, blocked

The full policy covers all 15 tokens, and the copy-paste version is in the fix list below.

Kept: these crawlers can put you in a live answer
Turned away: these collect training data

An example policy, not a measurement of any site. This page fetches nothing. To evaluate your own file, use the robots.txt tester.

What this page cannot tell you

  • Whether your own robots.txt allows a given token. That needs your file, and the robots.txt tester reads it.
  • Whether your server treats a crawler's user agent differently from an ordinary visitor. That needs a request sent under the crawler's own agent, which is what What does GPTBot see on your page? does.
  • Whether the page a crawler reaches contains any readable text. That is the measurement a full scan makes.
  • Whether any crawler obeyed anything. robots.txt is a request, not a firewall, and this page can give you the correct product token without promising anyone honours it.
The registry

15 tokens, 9 vendors

CrawlerVendorWhat it controlsHow we check itUser agent sentDocs
GPTBot OpenAI Training data Rule plus live probe Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot Docs
OAI-SearchBot OpenAI Answering search Rule plus live probe Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot Docs
ChatGPT-User OpenAI A user's request Rule plus live probe Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot Docs
ClaudeBot Anthropic Training data Rule plus live probe Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) Docs
Claude-SearchBot Anthropic Answering search Rule plus live probe Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Claude-SearchBot/1.0; +Claude-SearchBot@anthropic.com) Docs
Claude-User Anthropic A user's request Rule plus live probe Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Claude-User/1.0; +Claude-User@anthropic.com) Docs
anthropic-ai Anthropic Training data Rule only, no probe No request user agent. Cannot appear in a log. Docs
PerplexityBot Perplexity Answering search Rule plus live probe Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot) Docs
Perplexity-User Perplexity A user's request Rule plus live probe Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Perplexity-User/1.0; +https://perplexity.ai/perplexity-user) Docs
Google-Extended Google Training data Rule only, no probe No request user agent. Cannot appear in a log. Docs
Applebot-Extended Apple Training data Rule only, no probe No request user agent. Cannot appear in a log. Docs
Meta-ExternalAgent Meta Training data Rule plus live probe meta-externalagent/1.1 Docs
Bytespider ByteDance Training data Rule plus live probe Mozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; Bytespider; https://zhanzhang.toutiao.com/) Docs
CCBot Common Crawl Training data Rule plus live probe CCBot/2.0 (https://commoncrawl.org/faq/) Docs
Amazonbot Amazon Training data Rule plus live probe Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Amazonbot/0.1) Chrome/131.0.0.0 Safari/537.36 Docs

Rule-only tokens are switches a vendor reads inside robots.txt. They send no request of their own, so there is nothing to probe and the report says so rather than inventing a result.

Rendered from the scanner's own bot registry, so this table and the crawlers a scan actually evaluates are the same list. Every row carries an id, so a single crawler can be linked and cited on its own. What each token controls is explained in the next section.

What it controls

Three kinds of crawler, three different decisions

Every row above carries one of these classes. They are not interchangeable, and blocking them does not cost the same thing.

9 of 15 tokens

Training data

Collects pages to train models. Blocking it keeps you out of training data but not out of live AI answers, and it costs nothing in a Lantad scan: a training block is a deliberate owner choice, not a defect.

3 of 15 tokens

Answering search

Fetches pages to answer live queries and cite sources. This is the class that puts you in the answer, so a scan treats a block here as a real access loss.

3 of 15 tokens

A user's request

Fetches one page on demand because a person asked an assistant about that exact URL. Someone was already interested enough to ask, and the assistant went and looked. A block here is an access loss too.

A scan deducts Access score only when the AI search and on-demand fetch classes are disallowed. Blocking a training crawler is a content decision and costs nothing in the grade. The deduction is set out in the methodology.

How to use it

Set a policy, then check it landed

Reputable AI crawlers read robots.txt and honour it. It is a request, not a firewall: enforcement belongs at your edge.

  1. Decide by purpose, not by vendor. The policy most sites want keeps the 6 crawlers that can put you in a live answer and turns away the 9 that collect training data.
  2. Copy the correct tokens, do not guess them. The recipes below that name tokens are rendered from the same registry as the table, so they cannot name a token that does not exist.
  3. Test the file you actually published. Which AI crawlers does your robots.txt allow? evaluates every token against your file and quotes the deciding line.
  4. Check your edge is not overriding it. What does GPTBot see on your page? reports the status your server returned to a request that identified as the crawler.
  5. Then make sure the page has text to read. Access is the doorway; readability is the room. Start at Fix AI visibility by stack, with Why AI crawlers can't read your Next.js site, Why AI crawlers can't read your React site and Why AI crawlers can't read your Shopify site covering the stacks this happens on most.
Copy and paste

4 positions, written out

Most sites want one of these. Pick the paragraph that describes your position and the file underneath it is the whole change.

Let everything in

The default position for most marketing sites: you want to be described, quoted and cited, and there is nothing on the site you would withhold.

User-agent: *
Allow: /

Sitemap: https://example.com/sitemap.xml

Allow AI search and on-demand fetches, block training

The publisher's position. Search and user-request crawlers may fetch a page to answer a question about it; training crawlers may not take it wholesale.

User-agent: OAI-SearchBot
User-agent: ChatGPT-User
User-agent: Claude-SearchBot
User-agent: Claude-User
User-agent: PerplexityBot
User-agent: Perplexity-User
Allow: /

User-agent: GPTBot
User-agent: ClaudeBot
User-agent: anthropic-ai
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: Meta-ExternalAgent
User-agent: Bytespider
User-agent: CCBot
User-agent: Amazonbot
Disallow: /

Keep one section private

You are happy to be read, except for the parts that are not for public summarising: an internal knowledge base, a customer portal, staging content.

User-agent: *
Allow: /
Disallow: /account/
Disallow: /internal/
Disallow: /staging/

Block every AI crawler

The full refusal: every one of the 15 tokens named and turned away. The list renders from the registry, so it cannot omit a token the scanner knows.

User-agent: *
User-agent: GPTBot
User-agent: OAI-SearchBot
User-agent: ChatGPT-User
User-agent: ClaudeBot
User-agent: Claude-SearchBot
User-agent: Claude-User
User-agent: anthropic-ai
User-agent: PerplexityBot
User-agent: Perplexity-User
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: Meta-ExternalAgent
User-agent: Bytespider
User-agent: CCBot
User-agent: Amazonbot
Disallow: /

anthropic-ai, Google-Extended and Applebot-Extended are in the token-naming recipes above and will never appear in your logs, because they publish no request user agent. The instruction still lands: it is read at crawl time and enforced through the vendor's ordinary crawler. We wrote up what each of the three actually controls in the crawler tokens that never appear in your logs.

A token is not a crawler, and this is where most robots.txt files go wrong. Some tokens name a bot that will knock on your server with a published user agent. Others exist only inside robots.txt, as a switch a vendor reads before deciding whether to use your content, with no request to observe and nothing to probe.

Lantad reads all 15 in your robots.txt and probes the 12 that publish a user agent. The remaining 3 are reported as rule-only, with the reason, rather than implying a test that never happened.

FAQ

Common questions

Where does this list come from, and how current is it?

From the bot registry the scanner itself runs: 15 tokens from 9 vendors. Every row on this page, including each user agent string and each robots.txt snippet, is rendered from that registry at build time, so the directory cannot name a crawler the scanner does not check or leave out one it does. The user agent strings were recorded from vendor documentation, and each row links the vendor page it came from so you can check it against the source.

Why do 3 rows show no user agent?

Because anthropic-ai, Google-Extended and Applebot-Extended are robots.txt product tokens, not crawlers. They publish no request user agent of their own, so no request ever arrives carrying those names and a log search for them returns zero on every site, forever. That zero is not evidence of anything. The other 12 tokens do publish a user agent, so they are the only ones a log file or an edge rule can observe directly. What each of the three controls is written up in the crawler tokens that never appear in your logs.

Why are there three tokens for one vendor?

Because vendors separate the jobs. OpenAI and Anthropic each publish separate tokens for training, AI search and user-request fetches, and a site can hold a different position on each. Blocking training while allowing search is a coherent policy, and it needs separate lines to express.

What does the "What it controls" column mean for my score?

Purpose is the class of work the crawler does: training, AI search, or on-demand fetch. A scan deducts Access score only when the AI search and on-demand fetch classes are disallowed, because those are the ones that decide whether you can appear in a live answer. Blocking a training crawler costs nothing in the score: it is a choice about your content, not a defect in your site. The deduction is set out in the methodology.

Does blocking a training token remove me from a model?

No. It signals that your content should not be taken for future training. It does nothing about content already collected, and it does not remove you from a model that was trained before the rule existed.

Does adding these robots.txt lines actually stop a crawler?

It instructs one. robots.txt is a voluntary standard: reputable AI crawlers read it and honour it, and a crawler that ignores it is not stopped by a text file. If you need enforcement rather than a request, that belongs at your edge or in your server config. This page can give you the correct product token; it cannot promise anyone obeys it.

If my robots.txt allows a crawler, can it definitely reach me?

No, and this is the most common surprise on the whole site. A CDN rule or bot-management setting can block a crawler your robots.txt allows. That is why a full Lantad scan probes the 12 tokens that publish a user agent live and reports how your server actually answered, rather than trusting the file.

Does this page check my own site?

No. It fetches nothing and knows nothing about your domain: it is a static reference rendered from the registry. To see which of these tokens your own robots.txt allows, and the exact rule that decides each one, use the robots.txt tester. To see what a crawler actually receives from a page, use What GPTBot sees.

Free to reuse and republish with attribution and a link to this page. This directory is published under CC BY 4.0.