AI Training Data Policy

No Comments
Ai training data policy

Element Code: AI-005

TL;DR: This check asks whether your site declares a clear position on AI training, whether AI crawlers like GPTBot, Google-Extended, ClaudeBot, and CCBot may use your pages to train models. If you have no stance expressed in robots.txt and no published policy, you are letting every AI company decide for you. Pick a position, encode it in robots.txt, and write it down.
CHECK ID
AI-005
TYPE
Policy signal
SEVERITY
Context based
FIX EFFORT
Low
LIVES IN
robots.txt + page

What "AI Training Data Policy" means

Large language models are trained on scraped web content. Over the last few years the major AI companies started publishing named crawlers and honoring robots.txt rules for them, so site owners finally have a lever. This check looks for two things: a machine readable directive (in robots.txt or via response headers) telling AI crawlers whether they may use your content, and a human readable policy page stating your position. If both are missing, the check flags it, because silence is a decision you did not consciously make.

Worth being precise here: allowing an AI crawler to train on your content is a different question from allowing it to fetch your page live to answer a user's question (retrieval, sometimes called grounding or RAG). Some crawlers do one, some do both, and the same company often runs separate user agents for each. Blocking the wrong one can cut you out of AI answer surfaces you actually want to appear in.

Why it matters

Three reasons, and they pull in different directions, which is exactly why you need a deliberate stance.

Rights and licensing. If your content is your product, original research, paywalled analysis, photography, proprietary data, you may not want it absorbed into a model for free. Publishers from the New York Times to Reddit have taken formal positions and, in some cases, struck paid licensing deals. Your robots.txt is the first place you assert that.

Visibility. The flip side: if you want to show up in ChatGPT answers, Perplexity citations, or Google AI Overviews, blocking every AI user agent can make you invisible there. Retrieval crawlers are how you get cited. Blindly disallowing everything with "AI" in the name is a common mistake I see that quietly kills a growing traffic channel.

Trust and compliance. A published policy page tells partners, regulators, and contributors what happens to content on your site. For membership sites, communities, and anywhere users submit content, that transparency is increasingly expected and sometimes legally relevant under text and data mining opt out regimes like the EU's.

The crawlers you are actually deciding about

User agentOperatorPrimary purpose
GPTBotOpenAIModel training
OAI-SearchBotOpenAISearch / retrieval
Google-ExtendedGoogleGemini training opt out token
ClaudeBotAnthropicModel training
CCBotCommon CrawlOpen dataset (feeds many models)
PerplexityBotPerplexityAnswer engine indexing

User agent names change and new ones appear, so verify current tokens against each operator's published documentation before you commit rules. Never treat a list like this as frozen.

The decision, mapped

Is your content your product? Yes / mixed No, want reach Block training crawlers GPTBot, ClaudeBot, CCBot, Google-Extended Allow crawlers but keep separate call on training vs search Keep retrieval bots allowed so you still get cited Publish the policy page Document what you allow Publish the policy page Review quarterly

How to detect the current state

  • Fetch your robots.txt at https://yourdomain.com/robots.txt and look for named AI user agents. No mention of them means no policy is being enforced.
  • Server logs: filter for user agent strings containing GPTBot, ClaudeBot, CCBot, PerplexityBot. This tells you who is actually crawling you and how often, which is the ground truth.
  • Screaming Frog: you can set a custom user agent and run a crawl as, say, GPTBot to confirm your robots rules block or allow it the way you intended.
  • Check for a policy page: search your own site for terms like "AI", "machine learning", or "training data" in your terms or a dedicated policy URL. If nothing exists, that half of the check is failing too.

How to fix it, step by step

  1. Decide your position using the map above. Training, retrieval, or both, and for which crawlers.
  2. Encode it in robots.txt. To block a training crawler, add a block such as:
    User-agent: GPTBot
    Disallow: /

    Repeat per user agent you want to block. To opt out of Google's model training without hurting Search rankings, use User-agent: Google-Extended with Disallow: /, which does not affect Googlebot.
  3. Leave retrieval bots allowed if you want AI answer visibility. Do not blanket disallow everything that looks AI shaped.
  4. Publish a short policy page stating your stance in plain language and link it from your footer or terms. This is the human readable half the check wants.
  5. Verify and monitor. Refetch robots.txt, crawl as each user agent to confirm, and keep watching logs, since bots that ignore robots.txt need blocking at the firewall or CDN instead.

Do vs Don't

Do

  • Make a deliberate, documented decision
  • Separate training bots from retrieval bots
  • Use Google-Extended to opt out of Gemini training without losing Search
  • Publish a plain language policy page
  • Watch server logs for bots that ignore robots.txt

Don't

  • Leave the question unanswered by default
  • Blanket block every user agent with "AI" in the name
  • Assume robots.txt stops a bot that does not honor it
  • Block Googlebot when you only meant to block Gemini training
  • Copy someone else's robots rules without checking current user agent names

What "good" looks like

A robots.txt with explicit, current rules for the AI crawlers you care about, matching a decision you actually made. Retrieval bots handled separately from training bots so you keep AI answer visibility if you want it. A short published policy page that a human can read and a link to it from your footer. And a habit of rechecking every quarter, because the crawler list and the etiquette around it keep moving.

FAQ

Does blocking GPTBot remove me from ChatGPT answers?
Not necessarily. GPTBot is the training crawler. OpenAI runs a separate retrieval agent for live answers. Blocking the training one does not automatically block retrieval, but check both user agents and set each intentionally.
Will opting out of AI training hurt my Google rankings?
No, if you use the right token. Google-Extended controls model training and is independent of Googlebot, which handles Search. Disallowing Google-Extended does not affect your ranking in Google Search.
Does robots.txt actually stop AI crawlers?
It stops the ones that honor it, and the major named crawlers currently do. Bots that ignore robots.txt need to be blocked at the CDN or firewall level by user agent or IP. Robots.txt is a request, not a wall.
Do I need a separate policy page, or is robots.txt enough?
Robots.txt enforces the rule for machines. A policy page communicates it to humans, partners, and contributors. This check wants both, because one without the other leaves a gap.

Not sure who is scraping you or whether you are cited?

An audit checks your AI crawler directives, your retrieval visibility, and your robots setup together, so your policy matches your actual goals instead of accidentally hiding you.

Get an Advanced SEO Audit

Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.

About SEO ProCheck

Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.

Work With Me

Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.

Subscribe to our newsletter!

More from our blog