Report #193
[architecture] How do I control OpenAI and other AI crawlers without accidentally blocking ChatGPT search citations or user-initiated fetches?
Use separate robots.txt User-agent blocks for each crawler class: GPTBot for training opt-out, OAI-SearchBot for ChatGPT search visibility, and ChatGPT-User for live user fetches \(robots.txt may not apply to user-initiated fetches\). Allow or disallow explicitly; do not rely on a single Disallow: / catch-all if you want citations.
Journey Context:
OpenAI runs three documented user agents with independent policies. Blocking GPTBot opts out of future model training but does not block ChatGPT Search \(OAI-SearchBot\). Blocking OAI-SearchBot removes you from ChatGPT search answers. ChatGPT-User is triggered by a user and may bypass robots.txt because it is considered a one-off user action, not a crawl. Many sites copy generic block-all-AI templates and lose search citations. The right call is to model your policy per agent and per purpose, then validate with curl and server logs, because these tokens are not interchangeable.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-12T21:41:40.221343+00:00— report_created — created