OAI-SearchBot vs GPTBot vs ChatGPT-User
The agents share a vendor, not a purpose. Search discovery, training collection, and a user-triggered fetch need separate policy decisions.
An OAI-SearchBot vs GPTBot comparison explaining ChatGPT-User, robots.txt policies, training boundaries, verification, and common mistakes.
01 / Purpose
Name the product use before writing the rule
OAI-SearchBot supports Search discovery and surfacing. GPTBot is associated with potential model training. ChatGPT-User represents user-triggered access in supported experiences. A blanket User-agent: * decision may be intentional, but it hides materially different product choices and makes later review difficult.
Create a policy row for each agent with an owner, intended state, rationale, scope, and checked date. The decision can be “allow,” “disallow,” or “not separately specified,” but it should never be inferred from the fact that another OpenAI agent is mentioned. Shared infrastructure does not collapse documented purposes.
02 / Matrix
The three-agent comparison
A publisher can allow Search discovery while declining GPTBot training collection. It can also consider whether user-triggered retrieval is necessary for customers asking ChatGPT to visit or summarize a page. The right combination depends on publication, licensing, privacy, and product requirements—not a universal SEO prescription.
Robots rules should use the exact token and valid syntax. Place specific groups deliberately, avoid contradictory generated fragments, and keep sensitive material behind authentication rather than relying on robots exclusions. A robots file is public policy for compliant agents, not an access-control system.
| Agent | Documented use | Publisher question |
|---|---|---|
| OAI-SearchBot | Search discovery and surfacing | Should public content be eligible? |
| GPTBot | Potential model training | May this content support training? |
| ChatGPT-User | User-triggered retrieval | Should a user request fetch it? |
03 / Robots
Generate a readable robots policy
Prefer one owned source file or configuration object that renders the public robots.txt. Duplicated rules in a CDN, application, and static file can disagree. After deployment, request the production URL, follow redirects, verify the content type and status, and compare the exact group text with the approved matrix.
Path matching is case-sensitive under the standard, and the most specific applicable group and rule behavior can surprise hand-written implementations. Use representative allowed and disallowed paths in a focused test. Do not rely on comments as enforcement, and do not publish private filesystem paths or internal service names in the file.
04 / Verification
A user-agent string is not proof of identity
Any client can copy a published user-agent string. For operational reporting, validate source IPs using the provider’s current published method where available, retain the raw request time and path, and label unverified traffic separately. Rate, behavior, and reverse DNS can support investigation but should not be presented as identity proof without an authoritative chain.
A verified request proves a fetch, not that the URL was indexed, used for training, shown in an answer, or requested successfully by a user. Join logs with response status and bytes served to diagnose access. Keep product-outcome claims tied to product evidence, such as a referral or a sampled result, rather than to crawler activity alone.
05 / Maintenance
Treat crawler policy as a dated contract
Bot names, documentation, IP ranges, and product behavior can change. Store the source URL and last-checked date beside the policy. Review after vendor announcements, licensing decisions, major content changes, and unexplained log shifts. A stale comparison article is more dangerous than no article because it gives a precise-looking answer after the contract moved.
When policy changes, deploy intentionally and preserve the prior version. Explain which use changed and which did not. If GPTBot moves from allow to disallow, do not claim Search discovery was disabled. If OAI-SearchBot changes, do not imply that previously collected training data was removed. Precision is the entire point of keeping separate agents.
- 01OAI-SearchBot: Search Visibility and Access
OAI-SearchBot robots.txt guidance covering its ChatGPT search role, independent access control, published IP ranges, verification, and claim limits.
- 02GPTBot: Training Control, Not Search Inclusion
GPTBot robots.txt guidance explaining OpenAI model-training controls, its separation from OAI-SearchBot, verification steps, and safe publisher claims.
- 03ChatGPT-User: User-Triggered Page Requests
ChatGPT-User robots.txt guidance covering user-triggered requests, why it is not an automatic search crawler, access verification, and policy limits.
- 01OpenAI: Bot and crawler documentation
The names, purposes, published user-agent strings, and current crawler policy guidance for OpenAI agents.
Checked 2026-07-20 - 02OpenAI: Publishers and Developers FAQ
The practical relationship between OAI-SearchBot, ChatGPT discovery, GPTBot training preferences, and user interactions.
Checked 2026-07-20 - 03IETF: Robots Exclusion Protocol
User-agent group matching, path rules, caching, and the protocol boundary for compliant crawlers.
Checked 2026-07-20