Your robots.txt file is a 30-year-old plain text file that now helps decide whether your business is visible to AI systems. Many websites either block all AI crawlers, cutting themselves off from AI search, or allow everything, handing their content to training pipelines with no compensation. A more useful approach is to differentiate: welcome the AI search crawlers that cite and link to your content, and decide separately about the training crawlers that consume it without attribution.
The AI crawler landscape in 2026
The number of AI bots crawling the web has exploded. In 2023, there were a handful. By 2026, there are over a dozen distinct AI crawlers from OpenAI, Google, Anthropic, Perplexity, Meta, ByteDance, Cohere, Apple, Amazon, and the Common Crawl Foundation. Each serves a different purpose, and understanding those purposes is the foundation of any sound robots.txt strategy.
The crawlers fall into two fundamental categories:
- Search crawlers index your content so AI systems can cite, reference, and link to your website when users ask relevant questions. These crawlers drive traffic and visibility. Blocking them is the equivalent of delisting yourself from the next generation of search engines.
- Training crawlers scrape your content to train or fine-tune AI models. Your text, images, and data become part of the model's weights. You receive no attribution, no traffic, and no compensation. Your content is consumed, not referenced.
The critical insight: blocking all AI crawlers sacrifices visibility. Allowing all AI crawlers sacrifices your content. A strategic robots.txt differentiates between the two.
Complete AI crawler directory
Search crawlers (recommendation: Allow)
These crawlers power AI search features that cite and link to your content. Allowing them means your business can appear in AI-generated answers with proper attribution.
| Crawler | Owner | Purpose | Action |
|---|---|---|---|
| OAI-SearchBot | OpenAI | Powers ChatGPT search results with citations and links back to sources | Allow |
| ChatGPT-User | OpenAI | Fetches pages on behalf of ChatGPT users requesting real-time information | Allow |
| PerplexityBot | Perplexity AI | Indexes content for Perplexity's AI search engine, which cites its sources | Allow |
| Claude-SearchBot | Anthropic | Indexes content to improve Claude's search results | Allow |
| Claude-User | Anthropic | Fetches pages when Claude users request real-time information | Allow |
| Applebot | Apple | Powers search features such as Siri and Spotlight | Allow |
| Amazonbot | Amazon | Powers Alexa answers and Amazon services | Allow |
Training crawlers (recommendation: Block)
These crawlers collect content to train AI models. Your content becomes part of model weights: consumed, not cited. Blocking them protects your intellectual property without affecting your AI search visibility.
| Crawler | Owner | Purpose | Action |
|---|---|---|---|
| GPTBot | OpenAI | Collects content for training OpenAI models. Separate from search. | Block |
| ClaudeBot | Anthropic | Collects content for training Anthropic's Claude models. Separate from Claude-SearchBot and Claude-User. | Block |
| Google-Extended | Controls use of your content for Gemini training. Separate from search indexing via Googlebot, which also powers AI Overviews. | Block | |
| Applebot-Extended | Apple | Controls use of content crawled by Applebot for training Apple's AI models | Block |
| CCBot | Common Crawl | Builds the Common Crawl dataset used as training data for many LLMs | Block |
| Bytespider | ByteDance | Collects content for training ByteDance AI models | Block |
| cohere-ai | Cohere | Collects data for Cohere's LLM training | Block |
| Diffbot | Diffbot | Extracts structured data from web pages for AI knowledge graphs | Block |
| FacebookBot | Meta | Collects content for Meta AI model training | Block |
Practical robots.txt configuration
Based on the crawler directory above, here is a robots.txt configuration that maximizes AI search visibility while blocking training crawlers:
Recommended robots.txt configuration:
# AI search crawlers (allow)
User-agent: OAI-SearchBot
Allow: /
User-agent: ChatGPT-User
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Claude-SearchBot
Allow: /
User-agent: Claude-User
Allow: /
User-agent: Applebot
Allow: /
User-agent: Amazonbot
Allow: /
# AI training crawlers (block)
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: Applebot-Extended
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Bytespider
Disallow: /
User-agent: cohere-ai
Disallow: /
User-agent: Diffbot
Disallow: /
User-agent: FacebookBot
Disallow: /
# Traditional search engines and everything else (allow)
User-agent: Googlebot
Allow: /
User-agent: Bingbot
Allow: /
User-agent: *
Allow: /
Sitemap: https://www.yourdomain.com/sitemap.xmlImportant notes: Replace https://www.yourdomain.com/sitemap.xml with your actual sitemap URL. The User-agent: * rule at the bottom serves as a default for any crawlers not explicitly named. Also note that OpenAI maintains two separate crawlers: GPTBot (training) and OAI-SearchBot (search). Blocking GPTBot does not block search, and allowing OAI-SearchBot does not grant training access.
Understanding the allow vs. block decision
Every robots.txt directive involves a tradeoff between visibility and content protection. Here is how to think through the decision for your specific situation:
Block all AI crawlers: Maximum content protection, zero AI visibility. As AI assistants absorb a growing share of the questions that used to go into a search box, this approach gets more expensive over time. You are opting out of a discovery channel where buying decisions are increasingly being made.
Allow all AI crawlers: Maximum potential visibility, zero content protection. Your articles, guides, and original research become training data for models that may compete with your content or reproduce it without attribution. For businesses built on proprietary knowledge, this is an unacceptable trade.
Differentiate by crawler type: The balanced approach I recommend. You gain strong AI search visibility (your content gets cited with links in ChatGPT, Perplexity, and Claude) while protecting your intellectual property from training pipelines. It is not perfect (the line between search and training can blur), but it is the most strategic position available today.
For service businesses (agencies, consultancies, local services), visibility should be the priority: being recommended by an AI agent is directly tied to revenue. For content businesses (publishers, researchers, educators), the training/search distinction matters more, because the content itself is the product.
The GPTBot vs. OAI-SearchBot distinction
One of the most common points of confusion in AI crawler management is OpenAI's dual-crawler system. Understanding the difference is essential:
- GPTBot crawls content to feed OpenAI's model training pipeline. Content accessed by GPTBot may be used to train future GPT models. Blocking GPTBot prevents your content from being used as training data. This has no effect on whether ChatGPT can search for and cite your content in real time.
- OAI-SearchBot crawls content specifically for ChatGPT's search feature. When a user asks ChatGPT a question and it needs to find current information, OAI-SearchBot fetches relevant pages. It then cites your content with a link back to your site, the same model as traditional search engine results.
- ChatGPT-User is the user-agent used when ChatGPT browses the web on behalf of a specific user interaction. It functions similarly to a browser, fetching a specific page in response to a specific query.
You can (and should) block GPTBot while allowing both OAI-SearchBot and ChatGPT-User. This gives you AI search visibility without contributing to model training. Many website owners mistakenly block GPTBot thinking they are blocking ChatGPT entirely. They are not: they are only blocking the training crawler while the search crawlers remain unaffected if separately allowed.
Monitoring and verifying crawler access
Setting up your robots.txt is step one. You need to verify it is working correctly and that AI crawlers are actually reaching your content:
- Check server logs. Look for user-agent strings matching AI crawlers (OAI-SearchBot, PerplexityBot, ClaudeBot). Successful requests should return 200 status codes. If you see these crawlers receiving 403 or 429 errors, something upstream (CDN, WAF, rate limiting) is blocking them despite your robots.txt allowing access.
- Check the robots.txt report in Google Search Console. It shows the version of the file Google fetched and flags parsing errors, although it does not test AI-specific bots.
- Use dedicated validation tools. Services like TechnicalSEO.com's robots.txt tester let you test specific user-agent and URL combinations against your rules to confirm the expected behavior.
- Query AI systems directly. Ask ChatGPT or Perplexity questions that should reference your content. If they cite your pages with links, the search crawlers are working. If they do not, investigate whether crawler access, indexing, or content quality is the bottleneck.
- Monitor crawl frequency. If a search crawler was previously accessing your site and stops, check for accidental robots.txt changes, server configuration changes, or CDN-level bot management rules that may have been updated without your knowledge.
CDN and WAF considerations
One of the most common (and least obvious) causes of AI crawler blocking is not the robots.txt file at all. Content delivery networks (CDNs) and web application firewalls (WAFs) like Cloudflare, Sucuri, Fastly, and AWS WAF often include bot management features that can block AI crawlers at the network level, before they ever reach your robots.txt.
Key areas to check:
- Cloudflare Bot Management: Check your Bot Fight Mode and Super Bot Fight Mode settings. These can aggressively challenge or block AI crawlers. You may need to create custom WAF rules that allow specific AI user agents through.
- Rate limiting: AI crawlers can generate significant request volume. If your rate limiting is too aggressive, legitimate search crawlers may be throttled or blocked.
- JavaScript challenges: Some WAFs present JavaScript challenges (CAPTCHAs, Turnstile) that AI crawlers cannot solve. Ensure known AI search crawlers are exempt from challenge pages.
- IP-based blocking: Some security configurations block requests from cloud infrastructure IP ranges, which is where AI crawlers originate. Verify that the IP ranges published by OpenAI, Anthropic, and Perplexity are not caught by IP blocklists.
RSL 1.0: Really Simple Licensing
Robots.txt tells crawlers what they can access, but it says nothing about how your content can be used. This is the gap that RSL 1.0 (Really Simple Licensing) aims to fill.
RSL is an emerging standard that lets you attach machine-readable licensing terms to your content: think of it as Creative Commons for the AI era. You can specify:
- Whether your content can be used for AI model training
- Whether it can be cited with or without attribution
- Whether commercial use of your content in AI outputs requires compensation
- Which specific AI use cases you permit or prohibit
While RSL adoption is still early and no major AI company has committed to fully honoring it, the legal and regulatory environment is shifting rapidly. The EU AI Act, ongoing copyright litigation against AI companies, and growing publisher advocacy are all pushing toward enforceable content licensing standards. Forward-thinking businesses should monitor RSL development and be ready to implement it when adoption reaches critical mass.
Common mistakes to avoid
- Blocking Googlebot thinking it blocks Google AI. Googlebot powers both organic search and AI Overviews. Blocking it removes you from both. Use
Google-Extendedto block only the Gemini training crawler while preserving your Google search visibility. - Using a blanket
Disallow: /for all user agents. This blocks every crawler, including AI search bots that would cite and link to you. Always use specific user-agent directives, not a blanket block. - Forgetting to update after CMS migrations. A site migration to a new platform often resets robots.txt to its default. Always verify your robots.txt immediately after any platform change, theme update, or hosting migration.
- Ignoring CDN and WAF-level blocking. Your robots.txt may say "allow," but if Cloudflare's Bot Fight Mode is active, AI crawlers never reach your content. Check your CDN and WAF bot management settings.
- Not testing the file. A single syntax error (a missing colon, an extra space, a misspelled user-agent name) can render your entire robots.txt ineffective. Always validate after editing.
- Assuming compliance. Robots.txt is a convention, not a technical enforcement mechanism. Some crawlers may ignore your directives. Combining robots.txt with server-level access controls (IP blocking, authentication) provides stronger protection for truly sensitive content.
Connecting robots.txt to your broader AI visibility strategy
Your robots.txt is the gate: it determines whether AI crawlers can reach your content. But access alone does not make your content worth citing. A complete AI visibility strategy combines multiple layers:
- Crawler access (robots.txt): opens the gate for AI search crawlers.
- Structured data (Schema.org markup): gives AI agents machine-readable facts about your business.
- llms.txt: provides a curated AI-specific summary of your business.
- Brand entity presence: builds mentions across YouTube, Reddit, Wikipedia, and LinkedIn.
- Agentic readiness: makes your site actionable by autonomous AI agents.
Each layer builds on the previous one. Without crawler access, none of the other layers matter: AI agents cannot cite content they cannot reach. But crawler access alone is not enough. It opens the door; structured data, llms.txt, and brand presence determine what happens once the agent walks through it.
Key takeaways
- Differentiate search crawlers from training crawlers. Allow OAI-SearchBot, ChatGPT-User, PerplexityBot, Claude-SearchBot, Claude-User, Applebot and Amazonbot. Block, if you wish, GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, CCBot, Bytespider, cohere-ai, Diffbot and FacebookBot.
- Your robots.txt is a business decision, not just a technical configuration file. It determines whether AI systems can discover and cite your business.
- Understand the GPTBot vs. OAI-SearchBot distinction. Blocking GPTBot prevents training but does not block ChatGPT search. You can have both content protection and search visibility.
- Check your CDN and WAF settings. Cloudflare Bot Fight Mode, rate limiting, and JavaScript challenges can block AI crawlers even when your robots.txt allows them.
- Verify access regularly by checking server logs for AI crawler user agents, querying AI systems directly, and using robots.txt validation tools.
- Monitor RSL 1.0 as an emerging machine-readable content licensing standard that complements robots.txt access rules.
- Robots.txt is the foundation layer of your AI visibility stack. Combine it with structured data, llms.txt, brand entity presence, and agentic readiness for comprehensive coverage.