SEO Optimization

The robots.txt Mistake That’s Making You Invisible to ChatGPT and Claude

10 min read

Somewhere in your site’s root directory sits a two-kilobyte text file almost nobody reads, and it might be quietly telling ChatGPT, Claude, and every other AI answer engine to stay away from your content. Not because you decided that. Because a security plugin, a CDN default, or a robots.txt template you copied years ago made the call for you.

Meanwhile, the way people find businesses is splitting in two. Google search still matters, but a growing slice of queries now get answered directly inside ChatGPT, Perplexity, and Google’s AI Overviews, with a citation link (or none at all) standing in for the ten blue links you used to compete for. If your site is invisible to the crawlers that feed those answers, you don’t lose a ranking. You lose the mention entirely.

This is a practical guide to exactly which bots are crawling your site, what each one does with your content, and how to configure robots.txt (and the WordPress settings that quietly override it) so you’re making a real choice instead of an accidental one.


What Are AI Crawlers, and Why Do They Matter Now?

The New Traffic Source: AI Answer Engines

A crawler is just software that requests your pages, one URL at a time, so a company can build a product out of what it finds. Googlebot has done this for two decades to build the search index. In the last few years, OpenAI, Anthropic, Google, and others have shipped a second wave of crawlers whose job is different: instead of (or in addition to) building a search index, they collect text to train AI models, or they fetch a page live so a chatbot can answer a user’s question with your content as the source.

That second use case, live retrieval for an AI answer, is the one that matters most for a small business today. When someone asks ChatGPT or Perplexity “who does WordPress development near me” or “what’s the best way to add schema markup to a site,” the assistant’s answer engine dispatches a crawler in real time, reads a handful of candidate pages, and synthesizes a response, sometimes with a citation link, sometimes without. If your robots.txt disallows that bot, you were never a candidate.

Training vs. Search: Two Very Different Bots

Every major AI lab now ships separate bots for separate jobs, and conflating them is the single most common mistake site owners make. A bot that scrapes your site to train a future model is doing something very different from a bot that fetches your page right now because a user asked a live question. You can, and often should, treat them differently: allow the one that can send you a citation and a click, and block the one that only feeds a training dataset you’ll never see credit for.

WHY IT MATTERS

A blocked crawler doesn’t show up as an error in Google Search Console or a dip in your analytics. It shows up as nothing: a channel that quietly never happens. Most site owners who are accidentally blocking AI answer engines have no idea, because there’s no dashboard that tells you what you’re missing.

Meet the Bots: A Field Guide to Who’s Crawling Your Site

OpenAI’s Three Bots

OpenAI publishes documentation for three distinct crawlers, each controllable independently in robots.txt. OAI-SearchBot surfaces your pages inside ChatGPT’s search feature; disallowing it means you can’t appear in ChatGPT search answers, though you can still show up as a navigational link. GPTBot is the training crawler, used to collect content for OpenAI’s generative model training; disallowing it opts your future content out of that training set without affecting search visibility. ChatGPT-User fires when a live user asks ChatGPT a question that requires fetching a specific page, and OpenAI notes it isn’t used for automatic crawling and isn’t the one to manage for search visibility, that’s OAI-SearchBot’s job.

Anthropic’s Three Bots

Anthropic runs a parallel structure. ClaudeBot collects web content that may contribute to training Claude models. Claude-User fires when someone asks Claude a question and the assistant needs to fetch a specific page in response. Claude-SearchBot crawls to improve the quality and relevance of Claude’s search results. Anthropic’s own documentation states plainly that disabling Claude-User “may reduce your site’s visibility for user-directed web search,” the clearest signal from any lab that blocking the wrong bot has a real visibility cost.

Google’s Split Identity: Googlebot vs. Google-Extended

This is the pairing that trips up the most site owners. Googlebot is the crawler that has always powered classic Google Search, and you almost never want to block it. Google-Extended is a separate, newer control, announced by Google in 2023 (originally covering Bard, now Gemini, and Vertex AI), that lets you decide independently whether your content can be used to improve Google’s generative AI models, without touching your regular search ranking at all. Because it’s a distinct user-agent token, you can disallow Google-Extended while leaving Googlebot completely untouched, opting out of AI training without opting out of search.

The Bots That Don’t Ask Permission

Not every AI company plays by the same rules. Cloudflare’s threat research team documented Perplexity using undeclared, stealth crawlers that ignored explicit robots.txt disallow rules and rotated through unofficial IP ranges and shifting ASNs, along with spoofed user agents, to keep accessing sites that had blocked its declared bot. robots.txt is a voluntary honor system defined by the Robots Exclusion Protocol (formalized in 2022 as RFC 9309), and a well-behaved crawler respects it because the company operating it says it will, not because there’s a technical lock. For bots that don’t comply, robots.txt alone isn’t enough; a firewall-level tool like Cloudflare’s bot management earns its keep there.

How robots.txt Actually Works

The Syntax You Actually Need

A robots.txt file is a plain text file at the root of your domain, and its whole vocabulary fits in a few lines. Each rule targets a specific User-agent token and applies a Disallow (or Allow) path. To block a single bot from your entire site:

User-agent: GPTBot
Disallow: /

To allow that same bot everywhere except a private directory, use Allow alongside a narrower Disallow. And because AI crawlers can be aggressive, most labs also support the non-standard but widely honored Crawl-delay directive to slow a bot down without blocking it entirely:

User-agent: ClaudeBot
Crawl-delay: 1

Rules are matched by user-agent string, so you write one block per bot you want to treat differently, stacking as many User-agent/Disallow pairs as you need in the same file.

What robots.txt Can’t Do

robots.txt controls crawling, not indexing, and it definitely doesn’t control what a well-behaved AI has already learned from a page it crawled before you added the rule. It also can’t retroactively pull your content out of a model that already trained on it, and, as the Perplexity example shows, it can’t force a non-compliant bot to obey. Think of it as a clearly posted sign, not a locked gate; it’s necessary, but for the crawlers that ignore signs, you need a second layer.

QUICK REFERENCE: KEY USER-AGENT TOKENS
OAI-SearchBot   ChatGPT search results
GPTBot          OpenAI model training
ChatGPT-User    Live ChatGPT user fetch
ClaudeBot       Claude model training
Claude-User     Live Claude user fetch
Claude-SearchBot  Claude search quality
Googlebot       Classic Google Search
Google-Extended Gemini / Vertex AI training

Step-by-Step: Auditing and Configuring AI Crawler Access on WordPress

Step 1: Read Your Current robots.txt

Visit yourdomain.com/robots.txt in a browser right now. WordPress generates a virtual one by default if you haven’t created a physical file, but plenty of SEO and security plugins overwrite it. Look for any line disallowing / under a bot token you don’t recognize, and check whether it’s more restrictive than you intended.

Step 2: Decide Bot-by-Bot, Not All-or-Nothing

Resist the urge to either block everything labeled “AI” or allow everything indiscriminately. A defensible starting position for most small businesses: allow the search-oriented bots (OAI-SearchBot, Claude-SearchBot, Claude-User, ChatGPT-User, Googlebot) so you’re eligible to be cited when someone asks an AI assistant a relevant question, and make an explicit, informed choice about the training-oriented bots (GPTBot, ClaudeBot, Google-Extended) based on how you feel about your published content contributing to a model you don’t control.

Step 3: Watch for Silent Blockers

The rule you never wrote is usually the one causing the damage. Three places AI crawler access gets blocked without anyone intending it:

  • Security and firewall plugins that ship a “block bad bots” list which lumps GPTBot in with actual scraper malware
  • CDN and edge providers (Cloudflare included) that now offer a one-click “Block AI bots” toggle in their dashboard, bundling training and search crawlers into a single switch
  • Caching or “AI content protection” plugins installed for an unrelated reason that quietly append their own robots.txt rules on activation

After any plugin install or CDN setting change, re-check /robots.txt. It takes ten seconds and it’s the single most common cause of “why isn’t ChatGPT ever citing us” support tickets.

Step 4: Verify With Real Traffic

Confirming a bot is actually respecting your rules (and that it’s genuinely who it claims to be) means checking your server logs for the relevant user-agent strings and cross-referencing hits against the IP ranges each company publishes (OpenAI publishes openai.com/gptbot.json and openai.com/searchbot.json; Google documents its verification method in Search Central). Google’s own robots.txt report in Search Console is the simplest starting point if you only check one thing, since it flags syntax errors and shows which rule is blocking which URL for Googlebot specifically.

Beyond robots.txt: Getting Cited Correctly, Not Just Crawled

Structured Data Is How AI Understands What It’s Reading

Letting a bot through the door only helps if what it finds inside is easy to understand. An AI crawler that reaches your page still has to parse messy HTML to figure out what it actually is: an article, a product, a local business, an FAQ. Google’s documentation on structured data explains that schema.org markup gives search and AI systems an explicit, machine-readable answer instead of forcing them to infer one, which is why it’s one of the highest-leverage additions you can make to a site that wants to be cited accurately rather than paraphrased or misrepresented.

The llms.txt Experiment

A newer, unofficial proposal called llms.txt suggests publishing a plain-Markdown summary of your site at /llms.txt specifically for language models to read instead of parsing full HTML pages. It’s not a recognized web standard the way robots.txt is (no major AI lab has committed to consuming it universally as of this writing), so treat it as a low-cost experiment worth trying, not a must-do that should distract from clean structured data and a sane robots.txt.

Where amplifi.schema Fits In

Once you’ve decided which bots are welcome, the next problem is making sure what they read is accurate. This is the exact gap we built amplifi.schema to close: a free, open-source WordPress plugin that uses Claude to generate, validate, and deploy correct schema.org JSON-LD across an entire site, so the AI crawlers you’ve just allowed through the door have a clean, structured answer waiting for them instead of a guess.

OPEN SOURCE

amplifi.schema is MIT licensed and free to use, part of the combined amplifi.plugins suite. If your site is letting AI crawlers in but giving them nothing structured to work with, this closes that gap in minutes.

View on GitHub

Frequently Asked Questions

Usually not blindly. Blocking every bot labeled “AI” also blocks OAI-SearchBot, Claude-User, and Claude-SearchBot, the ones that can actually cite and send traffic to your site from AI answer engines. A better approach is bot-by-bot: allow the search-oriented crawlers and make a deliberate call on the training-oriented ones (GPTBot, ClaudeBot, Google-Extended) based on your own comfort level.

GPTBot crawls automatically to gather content for training OpenAI’s models. ChatGPT-User fires only when a live person asks ChatGPT a question that requires fetching a specific page in real time, it’s not automated crawling. OAI-SearchBot is the third and separate bot that determines whether you appear in ChatGPT’s search results. Each is controlled independently in robots.txt.

Yes. Google-Extended is a separate user-agent token from Googlebot, introduced specifically so publishers can opt out of Gemini and Vertex AI model training while leaving classic Google Search crawling and ranking completely untouched. Disallow Google-Extended and leave Googlebot alone.

Only for crawlers that voluntarily honor it, which the major labs (OpenAI, Anthropic, Google) publicly commit to. It’s not enforced by any technical mechanism, though, and Cloudflare’s threat research team has documented at least one company, Perplexity, using undeclared crawlers that ignored disallow rules entirely. For non-compliant bots, robots.txt alone isn’t sufficient; a firewall-level bot-blocking tool is the real backstop.

Not yet, as a requirement. llms.txt is a proposed, unofficial convention for publishing a plain-Markdown summary at /llms.txt for language models, but it isn’t a standard the major AI labs have committed to consuming across the board. It’s a cheap, low-risk experiment worth trying, but clean structured data (schema.org JSON-LD) and a correctly configured robots.txt do far more of the real work today.

Visit yourdomain.com/robots.txt directly in a browser; it’s always publicly readable. WordPress serves a virtual default if no physical file exists, but SEO plugins, security plugins, and CDN dashboards can all silently override it, so re-check this URL after any plugin install or hosting configuration change. Google Search Console’s robots.txt report will also flag syntax errors for Googlebot specifically.

Check your robots.txt today, it takes ten seconds, and it might be the reason ChatGPT has never once mentioned your business.

Built by amplifi.studio — see also amplifi.schema: AI-generated schema.org JSON-LD for your whole site.