Researchai crawlers
Back to writing

Crawler policy

Can AI assistants reach your website? Crawlers, robots.txt, and access

Check the crawler’s purpose, the delivered robots rules, the HTTP response and the content it actually receives.

Monochrome generative point study “Tidal Bell,” a mathematical form rendered in black and white.

The robots file below allows OAI-SearchBot and disallows GPTBot. One company, two decisions: let OpenAI’s search crawler read a public essay while declining automatic collection for model development. That is the choice I would make for a publication that wants discovery without granting every documented use the same permission.

The policy passes through several systems: the publisher chooses a use, the crawler reads the delivered rule, and the edge decides whether to return the page. Later use of that page is another event. One permission switch can’t describe all four.

I would begin with the use I want to permit or decline and the observation that could show the control worked. Allowing a search crawler creates an opportunity for discovery. The economic case begins when someone measures visits that matter.

Method & limits

Provider purposes, published robots behavior, and seven official network-feed endpoints were checked October 26, 2026. The original templates cover eight named identities; the comparison also includes Google-Extended and OAI-AdsBot. Valid feed JSON supplies network evidence to compare with requests. Personal-traffic analysis, compliance rates, discovery gains, citation rates, and downstream-use outcomes remain unmeasured.

One provider, several jobs

OpenAI makes the split unusually clear. OAI-SearchBot supports ChatGPT Search discovery, GPTBot collects material that may contribute to foundation-model development, ChatGPT-User visits at a user’s request, and OAI-AdsBot validates submitted ad landing pages. OpenAI says its ad-validator collection is not used for foundation-model training. Blocking that validator can create an ad-review problem without changing the training preference at all. OpenAI crawler documentation.

The providers disagree about user-directed fetches: Anthropic says Claude-User honors robots, while Perplexity says Perplexity-User generally ignores them. “User” names a workflow, not a common permission contract. An incident needs that product’s documented policy and the request evidence.

A publisher can decline all documented automated uses together when maintaining product-specific permissions costs more than their distinctions are worth, but that simpler intention still needs to account for the receiving products’ different user-fetch exceptions before the owner can judge which requests fit the policy.

OpenAI

  • OAI-SearchBotAutomatic Search discoveryPublished robots behaviorSupported
  • GPTBotModel developmentPublished robots behaviorSupported
  • ChatGPT-UserA user opens a URLPublished robots behaviorMay not apply
  • OAI-AdsBotSubmitted-ad landing-page reviewPublished robots behaviorProduct workflow

Anthropic

  • ClaudeBotModel developmentPublished robots behaviorHonored
  • Claude-SearchBotSearch discoveryPublished robots behaviorHonored
  • Claude-UserA user directs retrievalPublished robots behaviorHonored

Perplexity

  • PerplexityBotSearch discoveryPublished robots behaviorSupported
  • Perplexity-UserA user directs retrievalPublished robots behaviorGenerally ignored

Google

  • Google-ExtendedSpecified Gemini training and grounding usesPublished robots behaviorPolicy token
Provider purposes and stated robots behavior, checked October 26, 2026. Compliance remains unmeasured. Google-Extended is a use-policy token carried through ordinary Google requests.
View as a table
ProviderTokenJobPublished robots behaviorWhat to expect
OpenAIOAI-SearchBotAutomatic Search discoverySupportedSearch-policy changes may take roughly 24 hours
OpenAIGPTBotModel developmentSupportedA training-collection choice independent of Search
OpenAIChatGPT-UserA user opens a URLMay not applyUser action rather than automatic indexing
OpenAIOAI-AdsBotSubmitted-ad landing-page reviewProduct workflowReachability matters for ad validation
AnthropicClaudeBotModel developmentHonoredFuture collection preference
AnthropicClaude-SearchBotSearch discoveryHonoredSearch policy independent of ClaudeBot
AnthropicClaude-UserA user directs retrievalHonoredAnthropic also documents non-standard Crawl-delay
PerplexityPerplexityBotSearch discoverySupportedProvider says it is not a foundation-model training crawler
PerplexityPerplexity-UserA user directs retrievalGenerally ignoredProvider says it is not for foundation-model training
GoogleGoogle-ExtendedSpecified Gemini training and grounding usesPolicy tokenNo separate HTTP User-Agent to find in logs

The policy file can express the choice

The first template allows search-oriented access and blocks the two documented model-development crawlers. The second declines access for all eight identities in the original policy sheet. They are starting policies, and both must be reconciled with the file already serving the host.

A named OAI-SearchBot group containing only Allow: / can reopen /internal-search/ and /facets/ when those blocks live only under *, because RFC 9309 selects matching product groups before its fallback and gives them their own rules to apply to the requested path. Copy the intended exclusions and test both an article and an excluded URL. Product tokens match without case sensitivity; paths should match case-sensitively. The RFC interpretation is the rule to check when adding a named group.

Check each host’s public policy bytes and cache state against the intended file. That verifies delivery. To observe access, keep an attributed page request and its response; to judge discovery, measure what follows.

Allow search, block training

A starting point for the eight automatic and user-triggered identities in the original July policy. Carry existing path exclusions into every matching group and replace the example sitemap hostname.

User-agent: OAI-SearchBot
Allow: /

User-agent: GPTBot
Disallow: /

User-agent: ChatGPT-User
Allow: /

User-agent: Claude-SearchBot
Allow: /

User-agent: ClaudeBot
Disallow: /

User-agent: Claude-User
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Perplexity-User
Allow: /

Sitemap: https://example.com/sitemap.xml
Block listed AI agents

An automatic-crawl preference for the eight listed identities. ChatGPT-User rules may not apply, and Perplexity-User generally ignores them. Private resources need authorization at the application or edge.

User-agent: OAI-SearchBot
Disallow: /

User-agent: GPTBot
Disallow: /

User-agent: ChatGPT-User
Disallow: /

User-agent: Claude-SearchBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: Claude-User
Disallow: /

User-agent: PerplexityBot
Disallow: /

User-agent: Perplexity-User
Disallow: /

Google-Extended never appears in the request log

Google-Extended is a robots product token for specified Gemini training and grounding uses. Google says ordinary agents make the requests, leaving logs without a dedicated Google-Extended User-Agent to count. Record the use preference in the policy and test the network request under its ordinary identity.

Google-Extended leaves Search inclusion and ranking unchanged. Google’s Search AI guidance now describes a Search Console setting for AI Overviews, AI Mode, and generative features in Discover, rolled out worldwide on August 31, 2026. Record that property setting alongside training preferences and page-level noindex or snippet controls. Googlebot must be able to read applicable page directives.

Google’s product-token description exposes the limit of a request-centered audit. Google-Extended governs documented downstream uses without creating a network identity to count. Logs can show a verified Google request at the measured point. Testing the downstream choice requires more than searching for a User-Agent that doesn’t exist.

Decline the documented Google-Extended uses

An additional product-use preference. Ordinary Search directives govern their own jobs.

User-agent: Google-Extended
Disallow: /

A user request changes the rules

A Perplexity-User visit after a PerplexityBot disallow can fit the documented user-request exception. The same explanation doesn’t transfer to Claude-User, whose provider says it honors robots. Judge a request against its exact product and the policy served at that time.

The model-development choice concerns future collection. Restricting ClaudeBot expresses that preference; it supplies no account of material Anthropic already holds. That limitation belongs beside the policy decision, because a new rule cannot describe the history of previously collected copies.

For a public essay, decide whether blocking automatic collection while allowing assisted retrieval fits the publication’s purpose. Private content needs an enforced permission check regardless of the requester’s name, as RFC 9309 makes clear.

An allowed bot can still receive a 403

Imagine a public article that robots.txt allows OAI-SearchBot to fetch, followed by an attributed request that reaches the CDN and receives 403 from a WAF rule. Editing the GPTBot group will not fix it. Preserve the denied request, locate the matching edge rule and check the response after a scoped repair. A successful OAI-AdsBot visit would concern a different workflow.

The shell filter below finds claimed identities in current and rotated NGINX logs. A copied User-Agent is cheap. Attribution requires the trusted client address and the corresponding provider-published network evidence, with the exact range snapshot saved beside the classification. OpenAI and Perplexity publish product-specific feeds; Google publishes IP and DNS verification methods; Anthropic supplies bot-network guidance. Verification method.

For a release check I would save the public robots file, parser decisions for representative paths, and any attributed article response. OpenAI’s September guidance allowed roughly 24 hours for Search policy updates. If the request window stays empty, record provider delivery as unobserved: the same silence can follow a new policy or a crawler with nothing to fetch.

Find agents in access logs

Adjust the log path for your server or CDN export. This reads current and rotated gzip logs without changing them.

zgrep -hEi 'OAI-SearchBot|GPTBot|ChatGPT-User|OAI-AdsBot|ClaudeBot|Claude-SearchBot|Claude-User|PerplexityBot|Perplexity-User' /var/log/nginx/access.log*

curl -sS -D - https://example.com/robots.txt -o /dev/null

The registry is part of the release

The registry should preserve the product, documented purpose, request mode, chosen policy, official verification source, and date. Attach network snapshots to classifications and keep provider promises attributable to their documents, so a later policy update can change the promise without silently rewriting an earlier observed response.

A feed outage remains an unknown input. Replacing it with an empty list would turn missing evidence into a collection of apparent failed matches. A retained snapshot can support a classification under a declared age policy; it cannot become contemporaneous merely because it is the only file available.

A small publication may need a versioned policy and release checklist. A traffic system earns its cost when recurring disputes or product changes demand request history. I would require a proposed diff, parser decisions for representative paths, and public readback before calling a rule deployed. A verified request and response can then show access. Search inclusion, citations, and training use need their own measurements.

One page can locate the failed control

Choose a public page with a useful sentence, a link and any data the reader needs. Save the final robots.txt response and evaluate the rule for that exact path. Then save the page’s redirect chain, status, content type and body. A 200 challenge or login page is a different outcome from the article.

Compare the initial text with the browser through the HTML and rendered-page method. In logs, classify claimed names and verified networks independently. A laptop request wearing a bot label is still a laptop probe.

Keep a dated result for the URL, bot product, policy decision, response, and content. Repair the point that failed and repeat that check. I would call access working when the intended caller receives the intended public page, then measure what the assistant does with it.

Use the page-access checklist to test delivery, then weigh the decision to block GPTBot against the use you want to permit.

Sources

  1. OpenAI crawler documentationVerified Oct 26, 2026
  2. Anthropic crawler guidanceVerified Oct 26, 2026
  3. Perplexity crawler documentationVerified Oct 26, 2026
  4. Google robots.txt introduction and limitationsVerified Oct 26, 2026
  5. OpenAI OAI-SearchBot IP rangesVerified Oct 26, 2026
  6. OpenAI GPTBot IP rangesVerified Oct 26, 2026
  7. OpenAI ChatGPT-User IP rangesVerified Oct 26, 2026
  8. Anthropic bot IP rangesVerified Oct 26, 2026
  9. PerplexityBot IP rangesVerified Oct 26, 2026
  10. Perplexity-User IP rangesVerified Oct 26, 2026
  11. OpenAI — Overview of OpenAI CrawlersVerified Oct 26, 2026
  12. OpenAI — ChatGPT Search publisher guidanceVerified Sep 23, 2026
  13. Anthropic — ClaudeBot, Claude-User, and Claude-SearchBot guidanceVerified Oct 26, 2026
  14. Perplexity — crawler and user-agent documentationVerified Oct 26, 2026
  15. Google — common crawlers and Google-ExtendedVerified Oct 26, 2026
  16. Google Search Central — AI features and publisher controlsVerified Sep 23, 2026
  17. Google — verify crawler and fetcher requestsVerified Oct 26, 2026
  18. Google Search Console — Control generative AI features in SearchVerified Oct 26, 2026
  19. OpenAI — Current crawler purposes and product-specific IP feedsVerified Oct 26, 2026
  20. RFC 9309: Robots Exclusion Protocol — group selection, retrieval and access boundaryIETF / RFC Editor · 2022-09Verified Oct 25, 2026

    Read product-token group selection, retrieval and caching provisions and the access-authorization boundary. This specifies a cooperative protocol, not evidence of a provider’s actual compliance.

  21. OpenAI — OAI-AdsBot published IP feedVerified Oct 26, 2026

    Endpoint returned valid JSON on this date. Use the feed together with the trusted request address and provider purpose; a claimed User-Agent alone is not verified identity.

Read next