When I checked my server logs for this post, I expected a clean story. OpenAI’s bots were reading my pages fine, including my bio and my services page. I can’t tie any single visit to a lead, but I get one or two inquiries a week from people who say they found me through AI search. They tell me in emails, on my intake form, in Instagram and LinkedIn DMs.
Perplexity was another story. My robots.txt let it in. My server told it “too many requests” on 26 of its 27 tries at my pages over eight days. It took several rounds with my host’s support team, and a log file showing the same crawler getting my robots.txt one second and a 429 on my page two seconds later, before they confirmed it: a bug on their platform was rate-limiting legitimate AI crawlers. As of November 10, 2026, the fix is still pending.
Robots.txt is a request. The server response is what actually happens.
# same crawler, two seconds apart 11:53:24 PerplexityBot 200 /robots.txt 11:53:26 PerplexityBot 429 /2026/10/your-fake-5-star-... # robots.txt said yes. # the server said no.
This space changes fast. Several of the rules below changed in the weeks before I wrote this, and more are scheduled for early 2027. Every bot and rule here was checked against the operators’ own documentation on November 5, 2026, and I’ll keep the post updated as things move. Spot something that’s changed? Let me know.
Why the Bot Names Actually Matter
A blanket AI-bot block can also block the crawler that makes your pages eligible for ChatGPT search. Leaving everything at the defaults is a decision too, just one nobody made on purpose.
Each AI company runs several bots, and each bot does a different job. One collects training data. One builds a search index. One fetches a page because a real person just asked about it. Block the wrong one and you opt out of the thing you actually wanted.
One day of bot visits on this site
Exa, a search engine built for AI tools, visited more often than Google and Bing combined. Source: my host’s tally of one day of my access logs, November 2026.
AI Crawler Chart: Sorted by Job
Here’s where the main AI bots fall, grouped by what they do with your pages. Allowing one makes your pages eligible for that use. Whether you actually get cited still depends on the product and the query.
Training Crawlers:
Collect pages that may train future models. Meta’s also indexes content directly.
Training Control Tokens:
No crawler. They govern how content Google and Apple already crawl can be used. Google’s also covers Gemini grounding.
AI Search Indexers:
Build the index an assistant searches before it answers with links
User-Triggered Fetchers:
Open one page because someone asked
Training and answer eligibility are separate decisions, and a few controls straddle both. Most “block AI” advice mashes them together.
Quick picks: what kind of site are you?
Consultant, agency or local serviceAllow the search indexers and fetchers on public pages. Decide training separately. For a small expert brand, obscurity is usually the bigger risk.
Publisher or paid contentBlock GPTBot, ClaudeBot, meta-externalagent, Amazonbot and Applebot-Extended. Keep the search indexers. Weigh Google-Extended on its own. Know what the block costs: Meta says meta-externalagent also indexes content directly, and Amazon says Amazonbot improves its products and services generally, so neither is a pure training bot.
Ecommerce / DTC brandAllow the search indexers on product and content pages. Discourage crawling of cart, checkout and account paths.
Any site that wants search trafficKeep Googlebot, Bingbot and Applebot allowed on the pages you want found.
The AI Crawlers in Your Logs and What Each One Does
User-agent: GPTBot # training User-agent: OAI-SearchBot # ChatGPT search User-agent: ChatGPT-User # user-initiated visits User-agent: OAI-AdsBot # ChatGPT ad landing pages
OpenAI
The one most people get wrong. OpenAI’s crawler docs treat each bot as an independent setting, so you can allow search while refusing training. Blocking GPTBot does nothing to your ChatGPT search visibility. Blocking OAI-SearchBot does, and OpenAI says opted-out sites won’t show in ChatGPT search answers beyond navigational links.
ChatGPT-User only visits when a user’s question or a Custom GPT needs your page, and OpenAI says robots.txt may not apply to it. OAI-AdsBot only checks pages submitted as ChatGPT ads, so leave it alone if you advertise there. Search changes take about 24 hours to register. OpenAI has also said it aims to honor the shared training signal in the coming months.
User-agent: ClaudeBot # training User-agent: Claude-SearchBot # Claude search User-agent: Claude-User # user-initiated fetches Crawl-delay: 1 # supported, non-standard
Anthropic
Same three-bot pattern, documented in Anthropic’s crawler article. All three honor robots.txt, including Claude-User, and Anthropic supports Crawl-delay if you’d rather slow them down than block them. It warns against blocking by IP, because that can stop the bot from reading the robots.txt that holds your opt-out.
On October 30, 2026, Anthropic began rolling out support for the general “no AI training” shared signal, and an explicit ClaudeBot rule takes precedence over it. The same help page also points to Claude-Agent, the browser Claude uses to complete tasks for people, which is documented separately.
User-agent: PerplexityBot # Perplexity search User-agent: Perplexity-User # user-initiated, generally # ignores robots.txt # no training crawler
Perplexity
Perplexity’s crawler docs say neither of its documented bots collects training data. Block PerplexityBot and you stop it crawling those pages for Perplexity search. Perplexity-User generally ignores robots.txt, since a person asked for the page, so a crawler block alone won’t keep a page out of every answer.
Perplexity publishes IP lists for both bots and spells out Cloudflare and AWS WAF allow rules. One warning from those docs: Cloudflare’s Bot Fight Mode can still challenge them even with an allow rule in place.
User-agent: meta-externalagent # training + indexing User-agent: meta-webindexer # Meta AI search User-agent: meta-externalfetcher # user-initiated User-agent: meta-externalads User-agent: facebookexternalhit # ads + link previews
Meta
Meta’s web crawler page lists five bots, and the differences matter. meta-externalagent crawls for uses such as training foundation models and indexing content directly. meta-webindexer improves Meta AI search, and Meta says allowing it helps Meta AI cite and link you. meta-externalfetcher handles user requests and may bypass robots.txt.
The other two have nothing to do with AI answers. facebookexternalhit builds the preview when your link is shared on Facebook, Instagram or Messenger, so blocking it gives you bare links. meta-externalads crawls for advertising products. If you run Meta ads, leave both alone. Meta says robots.txt changes can take up to 24 hours.
User-agent: Googlebot # Search, AI Overviews, AI Mode User-agent: Google-Extended # token only: Gemini training # and Gemini grounding # in-page limits for Search: nosnippet data-nosnippet max-snippet noindex # Search Console, per property: Search generative AI
Per Google’s common crawlers list, Google-Extended is a robots.txt token, not a crawler. Google uses its existing crawlers for the content it governs, and the token decides whether that content may train future Gemini models and ground answers in Gemini Apps and Vertex AI. Google says it has no effect on Search inclusion or ranking. (Google-CloudVertexBot is a separate crawler that only runs when a site owner asks it to build a Vertex AI agent.)
The catch: Google-Extended does not keep you out of AI Overviews or AI Mode. For those, Google’s AI features guide lists nosnippet, data-nosnippet, max-snippet and noindex, all of which also change your regular search results. The cleaner option now lives in Search Console. The Search generative AI control (Settings, then Search generative AI), rolled out to all sites as of August 31, 2026, keeps a property out of AI Overviews, AI Mode and Discover’s generative AI features without touching your regular rankings. It doesn’t cover training. Google also plans to treat the shared training opt-out as a Google-Extended block when you haven’t written a Google-Extended rule, which would cost you Gemini grounding too.
User-agent: Applebot # Siri, Spotlight, Safari User-agent: Applebot-Extended # token only: Apple model # training # in-page, for AI answers: nosnippet
Apple
Apple’s Applebot page works a lot like Google’s. Applebot crawls for Siri, Spotlight and Safari. Applebot-Extended never crawls; disallowing it opts you out of training Apple’s foundation models, and Apple says it isn’t considered in Search ranking. A separate nosnippet tag keeps content out of the broad world-knowledge answers Apple generates, and Apple says those pages stay discoverable in Spotlight, Siri and Safari.
Two quirks worth knowing. If your robots.txt never names Applebot but does name Googlebot, Applebot follows the Googlebot rules. And Applebot ignores Crawl-delay.
User-agent: Bingbot # Bing + Copilot, together # today (legacy): noarchive nocache # honored from Feb 1, 2027: AI Training # robots.txt or page AI Grounding # page-level only
Microsoft
There’s no Copilot crawler to block. Copilot grounds its answers in the Bing index, so Bingbot is the whole ballgame, and blocking it removes you from Bing and Copilot together. Control happens with page-level preferences instead, and they’re mid-transition.
Today, the legacy tags still govern Copilot, and they don’t do the same thing. Under Microsoft’s legacy policy, NOARCHIVE keeps a page out of answers and links entirely, while NOCACHE still lets its URL, title and snippet appear. On October 30, 2026, Microsoft announced separate AI Training and AI Grounding preferences that it starts honoring on recrawl from February 1, 2027. After March 1, 2027, it stops reading the old tags as training or grounding preferences. If you rely on them as of December 15, 2026, Bing’s transition guide says to publish the new page-level grounding preference and record a temporary preference in Bing Webmaster Tools by March 1, or those pages default to allowing grounding until they’re recrawled.
User-agent: Amazonbot # may train Amazon AI models User-agent: Amzn-SearchBot # Alexa search User-agent: Amzn-User # live Alexa answers # per page, training only: noarchive
Amazon
The one most guides skip. Amazon’s crawler page lists the same three jobs as OpenAI and Anthropic. Amazonbot improves Amazon products and services, and Amazon says its crawls may be used to train Amazon AI models. Amzn-SearchBot makes your content eligible for Alexa search experiences and isn’t used for training. Amzn-User fetches live pages to answer Alexa questions and may not follow every robots.txt rule.
Three quirks worth knowing. Amazon ignores Crawl-delay. It may work from a cached copy of your robots.txt up to 30 days old, so a change can take far longer than the day other operators quote. And it honors the page-level noarchive tag as a training opt-out, the same tag Microsoft is retiring as an AI control.
The New Shared Training Opt-Out
# training opt-out, for providers that honor it User-agent: __usage_ai-training Disallow: / # optional: keep Gemini grounding # (this also allows Gemini training) User-agent: Google-Extended Allow: /
On October 30, 2026, an IETF draft defined a single robots.txt token, __usage_ai-training, that states a training preference for every company that honors it. It’s still a work-in-progress draft, not a finished standard, and support arrives on different schedules. It also isn’t a crawl block: bots keep fetching your pages, and the token only says how the content may be used. Participation is voluntary, so it speaks only to the providers that choose to honor it. Existing vendor-specific rules keep working. One wrinkle with Google: a Google-Extended rule is all or nothing, so Allow: / keeps Gemini grounding but also permits Gemini training.
| Company | Support |
|---|---|
| Anthropic | Rolling out now. A ClaudeBot rule wins. |
| Planned for early 2027. Read as a Google-Extended block unless you name Google-Extended. | |
| Microsoft | Honored on recrawl from February 1, 2027. |
| OpenAI | “In the coming months,” per its statement. |
Copy-Paste robots.txt for Each Choice
Three setups cover most sites. Swap in your own sitemap URL. Most bots your file never names follow your User-agent: * group, and with no * group they can crawl everything. A few borrow other bots’ rules instead (see the tips below).
These examples use WordPress paths like /wp-admin/. The bot rules work on any site, but Shopify, Squarespace and Wix each handle robots.txt their own way, so check your platform’s help docs before editing.
Open door (what this site runs right now)
The stock WordPress file plus one block for PetalBot, Huawei’s search crawler, which was my busiest visitor and sends a US consultant nothing. It names no AI bots, so the * group sets the default for every crawler that honors robots.txt. Naming the bots is optional; if you do, repeat the admin rules in that group.
User-agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php User-agent: PetalBot Disallow: / Sitemap: https://peterstringer.com/wp-sitemap.xml
Allow AI search, block selected training uses
Search bots aren’t named, so they follow your * rules. Leaving Google-Extended out is a choice too: once Google ships its plan, it reads the shared token as a Google-Extended block. Microsoft’s grounding control lives on the page, not here.
User-agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php User-agent: __usage_ai-training Disallow: / User-agent: GPTBot User-agent: ClaudeBot User-agent: meta-externalagent User-agent: Amazonbot User-agent: Applebot-Extended Disallow: / # Google-Extended: pick one. # Leave it out: Google reads the # shared token as a block. # Or keep Gemini grounding (and # allow Gemini training): # User-agent: Google-Extended # Allow: / Sitemap: https://www.example.com/wp-sitemap.xml
Discourage crawling of store utility pages
robots.txt is public and isn’t access control. Protect account and member content with login and server-side checks.
User-agent: * Disallow: /cart/ Disallow: /checkout/ Disallow: /my-account/ Sitemap: https://www.example.com/sitemap.xml
The most specific group wins. Once GPTBot has its own group, your User-agent: * rules stop applying to it. Repeat any path blocks you still want.
Give it a day. OpenAI, Perplexity and Meta all say changes can take up to 24 hours to register. Amazon may work from a copy up to 30 days old.
Don’t block by IP. Anthropic warns it can stop the bot from reading the robots.txt that holds your opt-out. Use the file.
Some bots borrow other bots’ rules. If you don’t name them, Applebot follows your Googlebot rules, Amzn-SearchBot follows your rules for other search bots, and ExaSearchBot follows your rules for the major search engines before falling back to *. Name them if you want them treated differently.
Stack names, drop dead ones. Several User-agent lines can share one rule block, which keeps a long list readable. And clear out retired names: Anthropic’s page lists only ClaudeBot, Claude-SearchBot and Claude-User, so an old anthropic-ai line no longer does anything.
Check what’s actually served. Load yoursite.com/robots.txt in a browser after every change. A CDN can rewrite it: Cloudflare’s managed robots.txt, when switched on, puts its own AI rules in front of yours.
Check That the Bots Are Actually Getting In
Start with a thirty-second test from your own computer. In Terminal on a Mac, compare a normal request with one that borrows PerplexityBot’s user agent. (On Windows, use curl.exe and put each command on a single line.)
# normal request curl -s -o /dev/null -w "%{http_code}\n" https://yoursite.com/ # same request, wearing PerplexityBot's name curl -s -o /dev/null -w "%{http_code}\n" \ -A "Mozilla/5.0 (compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)" \ https://yoursite.com/
If the first returns 200 and the second returns 403 or 429, the two requests got different responses. Run the pair a few more times to see whether the difference keeps following the user agent. But a 200 doesn’t settle it. My test returned 200 fifteen times in a row while Perplexity’s real crawler got a 429 on 26 of its 27 page requests. The limit applied to the crawler itself, not to anyone borrowing its name from a laptop. Only your logs show what the real bots got.
# every matching log file: status, path, user agent
zcat -f access.log* | grep -iE "GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|Claude-SearchBot|Claude-User|PerplexityBot|Perplexity-User|meta-webindexer|meta-externalagent" | awk -F'"' '{split($2,r," "); split($3,s," "); print s[1], r[2], $6}' | sort | uniq -c | sort -rn | head -40
A perfect robots.txt means nothing if your firewall, or your host’s, turns the bots away at the door. That line reads every matching log file, plain and compressed, so the date range is whatever your host keeps, and keeps bot, URL and status together, so a 200 on /robots.txt can’t hide a 429 on an article. It assumes the standard combined log format, so check yours first. If your host keeps a duplicate file like access.log.0, leave it out so a day isn’t counted twice.
On Shopify, Squarespace or Wix you won’t get raw server logs. If your site runs behind Cloudflare, its AI Crawl Control dashboard shows which AI crawlers got through and the status codes they received.
A 403, 429 or 503 deserves a look, but the status alone won’t tell you the cause or where it came from. The same firewall that throttled Perplexity on my site was also, correctly, turning away bots probing my login page. So check which bots got it, on which pages. User agents are easy to fake, so confirm the IP against the operator’s list: OpenAI has one per bot, Perplexity has two, and Anthropic and Apple publish theirs too.
What About llms.txt and Markdown Pages?

# who asked for it GPTBot 1 SEO tools 4 browsers 2 AI search bots 0 # total: 7 requests
llms.txt is a proposed Markdown index of a site’s key pages, written for AI tools (here’s the original proposal). It gets a lot of discussion in SEO circles. Google’s AI optimization guide says Google Search doesn’t use AI text files, and that keeping one will neither harm nor help your visibility. OpenAI, Anthropic and Perplexity publish llms.txt files for their own developer docs, but none of their crawler pages lists it as a factor in search inclusion or citations.
My own logs show the same. This site has served an llms.txt since September. Over eight days it got 7 requests: one identified itself as GPTBot, four came from SEO tools and two from browsers. None identified as the AI search crawlers I was tracking. That matches Ahrefs’ study of 137,210 domains using Ahrefs Web Analytics that got traffic in May 2026: of the roughly 38,000 that published an llms.txt, 97% got zero requests in May 2026, and AI search crawlers made just 1.1% of the requests that did happen. And a fetch doesn’t prove the file shaped a single answer.
Where it earns its keep is developer documentation. A coding agent can use it as a documentation index when pointed to it, which is why Anthropic publishes one for Claude Code’s docs and Cursor for its API docs. For a marketing site, it’s optional. I keep mine because my theme generates it automatically and it costs nothing. I wouldn’t spend money on one.
The same goes for publishing Markdown copies of your pages, the way Meta does for its developer docs. AI agents and coding tools do request them (one site owner logged about 1,400 Markdown requests in 44 days), but nobody has shown it earns citations, and Google’s guide says you don’t need Markdown files to appear in Search. If your site already runs on Cloudflare’s Pro plan, its Markdown for Agents toggle does it for free. Otherwise, I wouldn’t build it by hand.
AI Crawler FAQ
Does blocking GPTBot remove me from ChatGPT search?
No. GPTBot is OpenAI’s training crawler. ChatGPT search runs on OAI-SearchBot, which you control separately.
Will blocking Google-Extended keep me out of AI Overviews?
No. AI Overviews and AI Mode use content Googlebot crawls for Search. Google-Extended covers Gemini training and Gemini grounding. To stay out of AI Overviews, AI Mode and Discover’s generative AI features, use the Search generative AI control in Search Console. For page- or text-level limits, Google points to nosnippet, data-nosnippet, max-snippet and noindex, which also affect regular results.
Is there one robots.txt line that opts out of AI training everywhere?
Close to it, for providers that honor it. The __usage_ai-training token, defined in a work-in-progress IETF draft on October 30, 2026, states a usage preference rather than blocking crawling. It is backed by Anthropic, Google, Microsoft and OpenAI, with support arriving between now and early 2027. Vendor-specific rules keep working, and Anthropic and Google say a rule naming their own bot or token wins.
Do AI bots obey robots.txt?
The training crawlers and search indexers from OpenAI, Anthropic, Perplexity, Meta, Google, Apple and Amazon say they do. The user-triggered fetchers from OpenAI, Perplexity, Meta and Amazon say they may not, because a person asked for the page.
How do I keep my site out of Microsoft Copilot?
There’s no Copilot bot to block. Today the legacy tags govern it: NOARCHIVE keeps a page out of answers and links, while NOCACHE still lets the URL, title and snippet appear. Microsoft is replacing them with page-level AI Training and AI Grounding preferences honored from February 1, 2027, and stops reading the old tags for AI after March 1, 2027.
How long until a robots.txt change takes effect?
Plan on 24 hours for most. OpenAI, Perplexity and Meta all say their systems can take up to a day to pick up the new file. Amazon says it may use a cached copy up to 30 days old.
Why are AI crawlers getting 429 errors on my site?
A 429 means Too Many Requests: a rate limit, and robots.txt can’t override it. It usually comes from your host, your CDN or a security plugin. Check your access logs for which bots got it on which pages, confirm the IPs are genuine, then send those log lines to whoever runs the limit. On my site, my host’s support team traced it to a bug in their platform.
Do I need an llms.txt file?
Probably not for a marketing site. Google says Search doesn’t use it, and the OpenAI, Anthropic and Perplexity crawler docs don’t list it as a factor in search inclusion or citations. In Ahrefs’ study of 137,210 domains using Ahrefs Web Analytics, 97% of the sites with a valid llms.txt recorded zero requests for it in May 2026. It’s most useful as a documentation index for coding agents. Keeping one won’t hurt.
Get Your Site in Front of AI Search
Robots.txt is step one. After that comes the part most sites skip: making sure the pages AI engines can reach are the ones worth citing. That’s the AI search and discovery work I do for clients, alongside paid media and AI consulting.
AI ConsultingDashboards, RAG chatbots, AI search
Paid Media ConsultingMeta, Google and server-side tracking
Free Meta Ads AuditFor accounts spending $30K+ a month
