Crawler policy

Should you block GPTBot?

Most of the argument about this question is about content and consent. That part is yours to decide. This page is about the part almost nobody gets right: which crawler you are actually blocking, and what it costs you.

The short version. Blocking GPTBot does not remove you from ChatGPT Search. GPTBot collects training data. OAI-SearchBot is what retrieves pages so ChatGPT can cite them. They are different crawlers with different jobs, and people block the wrong one every day.

Two jobs, not one

Every AI crawler that reaches your site is doing one of two things, and the distinction decides everything that follows.

Training crawlers

They collect text used to train a model. Being in the training data can mean being described from memory, without a live fetch and usually without a link. Blocking them is a decision about how your content is used.

GPTBot (OpenAI), ClaudeBot (Anthropic), and Google-Extended, which is a robots control token rather than a crawler.

Retrieval crawlers

They fetch your page to answer a question now, and they are what decides whether you can be quoted or cited in an answer. Block these and you are not in the answer, whatever else you have done.

OAI-SearchBot, PerplexityBot, Claude-SearchBot, Googlebot, Bingbot, ChatGPT-User.

This is why AI Site View scores only the six retrieval crawlers, which carry 42 of the 60 points in the Technical Access half of the score. GPTBot and ClaudeBot are still probed and still reported, as a training access preference marked allowed, blocked or unknown, and they earn no points in either direction. Blocking model training is a policy choice, not a defect, and we will not score it as one. The full weighting is on the methodology page.

The mistake to avoid

The common failure is a robots.txt that blocks GPTBot in the belief that this protects the site from AI, while OAI-SearchBot is also caught by a broad rule or a wildcard. The owner keeps their training stance and quietly loses the citation path as well. The opposite mistake is allowing everything because it all looked like one decision. It never was.

Three defensible positions

1. Allow retrieval, block training

The common choice for a business that wants to be found and cited but does not want its writing used to train a model it gets nothing from.

# Retrieval: allowed, so you can be fetched and cited
User-agent: OAI-SearchBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: Claude-SearchBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Googlebot
Allow: /

User-agent: Bingbot
Allow: /

# Training: blocked, which does not affect retrieval above
User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: Google-Extended
Disallow: /

2. Allow everything

Reasonable if your goal is reach and you would rather be described from memory than not described at all. You do not need rules for this. An absent robots.txt rule is permission, so the honest version is simply not blocking anything.

User-agent: *
Allow: /

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

3. Block both

A real position for licensed archives, membership content and publishers with their own commercial arrangements. Just take it deliberately: this removes the citation path too.

User-agent: GPTBot
Disallow: /

User-agent: OAI-SearchBot
Disallow: /

User-agent: ChatGPT-User
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: Claude-SearchBot
Disallow: /

User-agent: PerplexityBot
Disallow: /

What robots.txt does not do

Robots.txt is a policy statement. Well behaved crawlers respect it, and the ones named here publish that they do. It is not enforcement, and more importantly for most sites, it is not the only thing deciding what a crawler receives. Your CDN, firewall or bot protection can refuse a crawler with a 403 while your robots.txt cheerfully welcomes it. That gap is invisible to any checker that reads the file and stops, and it is the most common real failure we see. There is a whole page on how that happens and how to fix it.

Rules are also matched per user agent, not inherited. A group for User-agent: * does not apply to a crawler that has its own group, so a specific block or allow needs to be written out for each token you care about.

Check what your site actually does. A free scan sends a real request with each crawler's published user agent, cross checks it against your robots.txt, and shows you where the two disagree. It reports your training access preference separately, without scoring it.

Related reading: every AI crawler explained, how AI reads websites, and the measurement methodology.