/ โ† Agent Readiness Fixes / AI Crawler Access
In this guide
  1. Four places a crawler can be refused
  2. The crawler names the providers publish
  3. How crawlers read robots.txt groups
  4. Three robots.txt policies, written correctly
  5. The firewall and CDN layer
  6. Reading the evidence
  7. The fix, step by step
  8. Edge cases worth knowing
  9. Keeping access the way you set it
  10. Questions and answers

Four places a crawler can be refused

When the Agent Readiness Audit reports that an AI crawler cannot reach a page, the refusal comes from one of four places. They behave differently, so it is worth knowing which one you are dealing with before changing anything.

LayerWhat the crawler experiencesTypical cause
robots.txtIt reads the file, finds a disallow rule for its name or for *, and never requests the page.An old Disallow: / for all bots, a copied block list, a staging robots.txt pushed to production.
CDN or edge firewallIt requests the page and receives a 403, a JavaScript challenge or a CAPTCHA instead of HTML.An "AI bots" or "bot fight" toggle, a managed rule set, a country block.
Web server or security pluginA 403, 406 or 429 from your own server, sometimes after a few successful requests.Wordfence, ModSecurity, fail2ban, a user agent deny list in .htaccess or nginx.
Page-level directivesThe page is fetched but marked as off limits for indexing or snippets.noindex or nosnippet in a meta robots tag or an X-Robots-Tag header.

The first layer is polite: a crawler that honours robots.txt simply stays away and leaves no trace in your logs beyond a request for /robots.txt. The second and third are forceful: the crawler arrives and is refused, which shows up as error codes. The fourth is a different kind of problem, because the page is fetched but the site has asked for it not to be used, and each provider decides for itself how its systems treat those tags.

๐Ÿ’ก A blank log is a clue in itself. If a crawler requests /robots.txt and then nothing else, robots.txt is the reason. If it requests pages and gets 403s, look at the firewall or server instead.

The crawler names the providers publish

Only use names that the providers themselves document. Lists copied from forums often contain retired names, invented ones and bots that never read robots.txt. The table below covers the main published names as of September 2026. Providers do rename and add crawlers, so check each provider's own documentation before relying on it.

ProviderNameWhat the provider says it is for
OpenAIGPTBotCollecting content that may be used to train its models.
OpenAIOAI-SearchBotFinding and surfacing sites in ChatGPT search results.
OpenAIChatGPT-UserFetching a page because a ChatGPT user asked for it. OpenAI says robots.txt rules may not apply to these user-initiated visits.
AnthropicClaudeBotCollecting web content to improve its models.
AnthropicClaude-SearchBotImproving the quality and relevance of search results for Claude users.
AnthropicClaude-UserFetching a page when a person asks Claude a question that needs it. Anthropic says its bots honour robots.txt.
PerplexityPerplexityBotBuilding the index that Perplexity links to in its answers; Perplexity says it is not used to train foundation models.
PerplexityPerplexity-UserFetching a page for a user's question; Perplexity says it generally ignores robots.txt because a person requested it.
GoogleGoogle-ExtendedA robots.txt token only, not a separate crawler. It controls whether content Googlebot collects may be used for Gemini models; Google says it does not affect Google Search.
AppleApplebot-ExtendedA token only. It controls whether content Applebot collects may be used to train Apple's models.
Common CrawlCCBotBuilding an open web archive that many research and AI projects use.
MetaMeta-ExternalAgentCollecting content for Meta's AI work, according to Meta's crawler documentation.

Two points catch people out. First, Google's AI Overviews and AI Mode are part of Google Search, so they depend on ordinary Googlebot access, not on Google-Extended. Blocking Googlebot to keep out of AI features would remove you from Search entirely. Second, Microsoft's Copilot draws on the Bing index, so a rule against bingbot has AI consequences as well as search ones.

โš ๏ธ Older names such as anthropic-ai and Claude-Web still appear in many robots.txt files. They are not in Anthropic's current documentation, so rules for them do nothing useful. Leaving them in is harmless, but do not assume they cover the current bots.

How crawlers read robots.txt groups

Most unintended AI blocks come from misunderstanding how groups work. The rules are set out in RFC 9309, the robots exclusion standard, and the major crawlers follow it.

The first rule causes a classic mistake. Imagine a site that blocks its admin area for everyone, and later adds a group to welcome an AI crawler:

User-agent: *
Disallow: /admin/
Disallow: /basket/

User-agent: OAI-SearchBot
Allow: /

OAI-SearchBot now follows only its own group, so it is allowed into /admin/ and /basket/. The reverse is more common and more damaging: a site adds a named group containing one harmless rule, and the crawler stops obeying the * group that held all the real restrictions. Every named group must repeat the rules that should still apply.

Three robots.txt policies, written correctly

Pick the policy that matches your decision, then adapt the paths. Each example is complete, so a crawler that matches a named group still gets the private-area rules.

Open to search and assistant crawlers, closed to training

User-agent: GPTBot
User-agent: ClaudeBot
User-agent: CCBot
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: Meta-ExternalAgent
Disallow: /

User-agent: *
Disallow: /admin/
Disallow: /basket/
Disallow: /search?

Sitemap: https://www.example.co.uk/sitemap.xml

OAI-SearchBot, Claude-SearchBot, PerplexityBot and the user-initiated fetchers have no named group here, so they follow * and can read everything except the private areas.

Open to all AI crawlers

User-agent: *
Disallow: /admin/
Disallow: /basket/

Sitemap: https://www.example.co.uk/sitemap.xml

Nothing else is needed. Adding Allow: / groups for each AI crawler adds no permission they did not already have and risks the group trap described above.

Closed to AI crawlers, open to ordinary search

User-agent: GPTBot
User-agent: OAI-SearchBot
User-agent: ClaudeBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
User-agent: CCBot
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: Meta-ExternalAgent
Disallow: /

User-agent: *
Disallow: /admin/

This keeps Googlebot and bingbot, so ordinary search listings continue. Be aware that user-initiated fetchers may still visit when a person pastes your link into an assistant, because some providers say robots.txt does not apply to those requests. If you need a hard stop, it has to be enforced at the firewall.

The firewall and CDN layer

A robots.txt file that says yes counts for nothing if the edge says no. This layer has become the most common cause of surprise blocks, because it is often configured by a hosting company or an agency rather than by whoever looks after the content.

When you add an allow rule, match on the provider's verified identity rather than the user agent string alone. Anyone can send a request claiming to be GPTBot. OpenAI and Perplexity publish the IP ranges their crawlers use, and several CDNs maintain their own lists of verified bots, so an allow rule based on those cannot be abused by a scraper that borrows the name.

โš ๏ธ Do not solve a firewall block by turning the whole firewall off. Add a narrow exception for the verified crawlers you have chosen, and leave the rest of the protection in place.

Reading the evidence

Two quick checks tell you most of what you need. First, request a page while presenting a crawler's product token as the user agent, and look only at the status line:

for ua in GPTBot OAI-SearchBot ClaudeBot Claude-SearchBot PerplexityBot; do
  printf "%-18s " "$ua"
  curl -s -o /dev/null -w "%{http_code}\n" -A "$ua" https://www.example.co.uk/services/
done

A mix of 200s and 403s shows a user agent rule in the firewall or server. All 200s does not prove crawlers are welcome, because rules based on IP ranges or verified-bot lists will treat your own machine differently from the real crawler. That is why the second check matters: search the access logs for the real visits.

grep -iE "gptbot|oai-searchbot|claudebot|claude-searchbot|claude-user|perplexitybot" access.log \
  | awk '{print $9, $7}' | sort | uniq -c | sort -rn | head -20
What the log showsWhat it means
Only requests for /robots.txtThe crawler read your rules and decided it may not go further.
403 or 406 responsesYour server or a security plugin refused it.
429 responsesRate limiting. Raise the limit for verified crawlers or add a Crawl-delay for crawlers that support it.
503 responsesOverload or a challenge page served with an error code.
No lines at allBlocked at the CDN before reaching the server, or the crawler has not visited yet. Check the CDN's own logs.
200 responses for pagesAccess is working. Any remaining audit findings are about content, not permission.

The fix, step by step

Step 1

List the crawlers you want and the ones you do not

Write down a short decision before editing anything. For each provider, decide whether you want its search or answer crawler, its training crawler and its user-initiated fetcher. A shop that wants to be recommended will usually allow OAI-SearchBot, Claude-SearchBot and PerplexityBot, and may choose either way on GPTBot, ClaudeBot and CCBot. Take the names only from each provider's current documentation, not from an old block list.

Step 2

Read the live robots.txt group by group

Open /robots.txt on every host you use, including the www and non-www versions and any shop or blog subdomain. For each crawler on your list, find the one group it will obey: its own named group if there is one, otherwise the * group. Note what that group allows. Pay special attention to named groups that contain only one rule, because the crawler ignores everything in * once it has its own group.

Step 3

Rewrite the rules so each crawler gets the intended answer

Put crawlers you want to exclude in a single group with Disallow: /, stacking their User-agent lines together without blank lines. Let crawlers you welcome fall through to the * group, and keep your private-area rules there. Remove pointless Allow: / groups and retired names. Keep the Sitemap line. If your platform generates robots.txt, make the change in its settings or template so an update does not overwrite it.

Step 4

Clear the firewall, CDN and plugin blocks

Open your CDN dashboard and look for AI crawler blocking, bot fight modes, managed challenge rules and country or network blocks. Then check your security plugin and server configuration for user agent deny lists and aggressive rate limits. For each crawler you chose to allow, add a narrow exception based on the provider's published IP ranges or the CDN's verified bot list, and leave challenges in place for unverified traffic.

Step 5

Test each user agent from outside your network

Run the Agent Readiness Audit again and compare its crawler results with your decision list. Then use curl -A with each product token against a few key pages and note the status code of each response. Expect 200 for crawlers you allowed. Remember that a clean curl result cannot prove that IP-based rules are correct, because your own address is not in a provider's range, so do not stop here.

Step 6

Confirm real visits in the access logs

Over the following days, search your server or CDN logs for each crawler name and group the results by status code. You want to see page requests returning 200, not just requests for /robots.txt followed by silence. If a crawler you allowed still receives 403, 429 or 503, trace the request in the CDN event log to find which rule fired, adjust it, and check again.

Edge cases worth knowing

Keeping access the way you set it

For the related robots.txt problems that affect ordinary search crawlers, see the robots.txt AI blocks guide, and once access is sorted, move on to content extractability.

Questions and answers

1. Which AI crawlers should a small business allow?

There is no single right answer, because it depends on whether you want your content used to train models as well as to answer questions. Many small businesses allow the search crawlers, such as OAI-SearchBot, Claude-SearchBot and PerplexityBot, because those are the ones that let assistants find, cite and link to their pages. The training crawlers, such as GPTBot, ClaudeBot and CCBot, are a separate choice you can make either way without affecting the search ones.

2. Does blocking Google-Extended remove my site from AI Overviews?

No. Google-Extended is a robots.txt token that controls whether content Google has already crawled may be used for its Gemini models. Google says it does not affect Google Search, and AI Overviews and AI Mode are part of Search. They depend on ordinary Googlebot access. The only way to stay out of them through robots.txt would be to block Googlebot itself, which removes you from Google Search results too, so almost no business should do that.

3. Why does the audit say GPTBot is blocked when my robots.txt allows everything?

Because robots.txt is only one of the layers. A CDN setting that blocks AI crawlers, a bot challenge page, a security plugin or a rate limit can still refuse the request with a 403, 429 or 503 status. The crawler is technically allowed but practically turned away. Search your access logs for GPTBot to see the status codes it received, then check your CDN's bot and security settings, where the block usually turns out to be.

4. Can I trust a request that says it is ClaudeBot or GPTBot?

Not on the user agent string alone, since any scraper can copy it. For allow rules and for log analysis, verify the source. OpenAI and Perplexity publish the IP address ranges their crawlers use, and several CDNs keep their own verified bot lists that check identity automatically. Base firewall exceptions on those rather than on the name. That way you welcome the real crawler without opening a door that anyone could walk through by changing one header.

5. Do AI crawlers really obey robots.txt?

The major providers say their automated crawlers do, and you can see it in logs when a crawler reads robots.txt and then stops. User-initiated fetchers are different. OpenAI says robots.txt may not apply to ChatGPT-User, and Perplexity says Perplexity-User generally ignores it, because a person asked for that specific page. Scrapers that do not identify themselves ignore robots.txt entirely. If you need a guaranteed block, enforce it at the firewall as well.

6. Should I still have rules for anthropic-ai and Claude-Web?

They do no harm, but they no longer do anything useful. Anthropic's current documentation lists ClaudeBot, Claude-SearchBot and Claude-User, and a rule for an older name does not cover any of them. If your aim is to block or allow Anthropic's crawlers, write the rule for the current names. Keeping the old lines is fine if you prefer a belt-and-braces file, as long as nobody mistakes them for the rules that actually apply today.

7. How long after unblocking will AI crawlers come back?

There is no published timetable. Crawlers re-read robots.txt regularly, often within a day, so an allowed crawler can start fetching pages soon after the change. How often it returns depends on the provider and on how much it values your site. A firewall change takes effect immediately for new requests. Watch your logs over a week or two rather than expecting an instant change in how often assistants mention you.

See which AI crawlers can reach your pages

The Agent Readiness Audit requests your page with real AI crawler user agents and checks robots.txt and reports what stops each one reading it, so you can see which crawlers get through and which are turned away.

Open Agent Readiness Fixes โ†’
๐Ÿ’ฌ Got a problem?
Related Guides: All Agent Readiness Fixes  ·  robots.txt AI Blocks  ·  Adding an llms.txt File  ·  Agent Readiness Guide  ·  Learning Hub

About aiwebpageseo

aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical SEO tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.