---
title: "GPTBot, OAI-SearchBot and ChatGPT-User: What Each OpenAI Bot Does on Your Site"
description: "GPTBot trains OpenAI's models, OAI-SearchBot powers ChatGPT search, ChatGPT-User opens pages on request. What blocking each costs, with real site data."
url: "https://skybootstrap.com/gptbot/"
canonical_url: "https://skybootstrap.com/gptbot/"
date: "2026-11-01T06:43:00+06:00"
modified: "2026-11-03T12:47:36+06:00"
author: Skybootstrap Team
type: article
site: SkyBootstrap
language: en-US
---

# GPTBot, OAI-SearchBot and ChatGPT-User: What Each OpenAI Bot Does on Your Site

GPTBot is OpenAI’s training crawler: it gathers pages OpenAI may use to train its AI models. OAI-SearchBot indexes pages for ChatGPT search, ChatGPT-User opens a page when someone asks ChatGPT a question, and OAI-AdsBot checks ad landing pages. You can block GPTBot and keep the other three, because OpenAI treats each setting separately.

Don’t trust the name alone, though. Our own WordPress site, tlinky.com, logged more fake ChatGPT-User requests than real ones over roughly a week.

## OpenAI runs four bots, and each one has a different job

GPTBot collects pages that may train OpenAI’s models, OAI-SearchBot indexes pages for ChatGPT search, ChatGPT-User opens a page when someone asks ChatGPT, and OAI-AdsBot checks ad landing pages. [OpenAI’s crawler page](https://developers.openai.com/api/docs/bots) lists all four, each with its own robots.txt name and its own IP list.

| Bot | What it does | robots.txt name | User agent contains | IP list |
| --- | --- | --- | --- | --- |
| GPTBot | Gathers pages OpenAI may use for model training | `GPTBot` | `GPTBot/1.4; +https://openai.com/gptbot` | `openai.com/gptbot.json` |
| OAI-SearchBot | Indexes pages so ChatGPT search can show them | `OAI-SearchBot` | `OAI-SearchBot/1.4; +https://openai.com/searchbot` | `openai.com/searchbot.json` |
| ChatGPT-User | Opens a page when a ChatGPT user’s question, a Custom GPT or a GPT Action needs it | `ChatGPT-User` | `ChatGPT-User/1.0; +https://openai.com/bot` | `openai.com/chatgpt-user.json` |
| OAI-AdsBot | Checks landing pages submitted as ChatGPT ads | `OAI-AdsBot` | `OAI-AdsBot/1.0; +https://openai.com/adsbot` | `openai.com/adsbot.json` |

GPTBot is a training crawler. OpenAI says disallowing it signals that your content shouldn’t be used to train its generative models.

OAI-SearchBot is the bot behind ChatGPT search results. OpenAI recommends allowing it if you want to appear there.

ChatGPT-User is not a crawler in the usual sense. It visits one page because a person’s request led there, and OpenAI warns that robots.txt may not govern it. OpenAI also says ChatGPT-User doesn’t decide whether your site appears in ChatGPT search; OAI-SearchBot does.

OAI-AdsBot only visits pages someone submitted as an ad. OpenAI says its data isn’t used to train foundation models. It only visits pages submitted as ChatGPT ads, so unless you advertise there you’re unlikely to see it.

When any of them fetches robots.txt itself, OpenAI may add a “robots.txt” marker to the user agent, which helps you spot those requests in a log.

## What blocking GPTBot and the other OpenAI bots costs you

Blocking GPTBot opts your pages out of OpenAI’s model training and leaves ChatGPT search alone, because OpenAI handles each bot’s setting on its own: GPTBot is independent of OAI-SearchBot. Blocking OAI-SearchBot is the costly one: OpenAI’s page says opted-out sites drop out of ChatGPT search answers with navigational links as the exception.

| If you block | You lose | You keep |
| --- | --- | --- |
| GPTBot | Future use of your pages in OpenAI model training (as OpenAI describes it) | ChatGPT search, user visits |
| OAI-SearchBot | Appearing in ChatGPT search answers | Navigational links; training is a separate choice |
| ChatGPT-User | Possibly ChatGPT opening your pages when users ask about them; OpenAI warns robots.txt might not govern these user-started visits | Everything else |
| OAI-AdsBot | Only matters if you run ChatGPT ads | Everything else |

OpenAI adds one detail that matters if you allow both: when GPTBot and OAI-SearchBot are both allowed, it may use one crawl for both purposes to avoid crawling twice. So allowing both doesn’t necessarily mean twice the crawling.

Changes take time: about 24 hours for search, by OpenAI’s own estimate.

If you’re weighing this against other AI companies, Anthropic also runs separate bots for training, search and user requests, and our explainer on ClaudeBot, Claude-SearchBot and Claude-User walks through its three.

## How often OpenAI’s bots visited our WordPress site

OpenAI’s bots visited our tlinky.com site 209 times in roughly a week, all IP-verified: OAI-SearchBot made 164 hits, ChatGPT-User made 40 and GPTBot made just 5. Another 56 requests only pretended to be ChatGPT-User. tlinky.com, our URL-shortener and link tools site, runs our [Skyboot AI Markdown plugin](https://skybootstrap.com/skyboot-ai-markdown/). With its IP-verified-only setting on, as on tlinky.com, the plugin’s AI Analytics only counts an OpenAI hit if its address is on one of OpenAI’s published lists.

![Skyboot AI Markdown AI crawlers table on tlinky.com showing OAI-SearchBot 164 hits, ChatGPT-User 40 and GPTBot 5, all IP verified](https://skybootstrap.com/wp-content/uploads/2026/10/gptbot-tlinky-openai-crawlers.webp "tlinky.com, about one week to 28 Oct 2026: IP-verified crawler hits (Skyboot AI Markdown, AI Analytics)")

| OpenAI bot | Verified hits | Pages | Requests that faked the name |
| --- | --- | --- | --- |
| OAI-SearchBot | 164 | 56 | 48 |
| ChatGPT-User | 40 | 36 | 56 |
| GPTBot | 5 | 5 | not on the plugin’s fake list |

Three things stand out. ChatGPT search was the busiest OpenAI bot by far; training crawls were rare that week. Real ChatGPT-User visits, each one started by a person’s request in ChatGPT, spread across 36 different pages. And more requests faked ChatGPT-User than came from the real thing, so counting by user agent would have inflated OpenAI’s numbers.

The same week, the plugin counted 29 visits from ChatGPT (unique visitors per page per day). That’s the part of the traffic that sends people, not just bots.

Treat these as a small sample. The analytics had been running for only about seven days on 28 October 2026, tlinky.com is one site, and anything your CDN answers from its own cache is invisible to WordPress. Across Cloudflare’s network, [OpenAI made about 1,091 crawls for every referral](https://blog.cloudflare.com/crawlers-click-ai-bots-training/) in July 2025, so far more crawls than visits is common.

## robots.txt rules for each OpenAI bot

The robots.txt rule for OpenAI training is one group: disallow GPTBot and leave OAI-SearchBot alone to stay in ChatGPT search. In our parser test, that rule blocked GPTBot on every path we tested and left OAI-SearchBot and ChatGPT-User allowed.

```
User-agent: GPTBot
Disallow: /
```

We checked it inside a full WordPress robots.txt with the Protego parser (Python, version 0.7.0), which follows Google’s matching rules. On the three paths we tested, GPTBot was disallowed on all of them.

OAI-SearchBot and ChatGPT-User were allowed on `/` and a members page, and kept out of `/wp-admin/` by the normal `*` group. The same test file also held groups for other training bots.

Copy your current robots.txt first, so you can restore it. Add the lines as their own group, with a blank line before them, not inside an existing `User-agent` block. Then add them wherever your robots.txt is managed; our [robots.txt templates for AI bots](https://skybootstrap.com/robots-txt-ai-bots-wordpress/) show where that is in Yoast, Rank Math, AIOSEO or a file.

Afterwards, open yoursite.com/robots.txt in a browser and confirm the `User-agent: GPTBot` group appears once.

Skyboot AI Markdown can add the GPTBot rule for you. Its AI training crawlers setting, set to Block, adds Disallow lines for GPTBot together with the other training crawlers it lists, such as ClaudeBot and Google-Extended. It never blocks OAI-SearchBot or ChatGPT-User ([our documentation](https://skybootstrap.com/docs/skyboot-ai-markdown/ai-visibility/)). It needs the robots.txt WordPress generates; if a physical file exists, the plugin warns you to edit that file instead.

To block ChatGPT search as well, add a second group for `OAI-SearchBot`. A `ChatGPT-User` group may not be honoured, because OpenAI warns that robots.txt might not govern visits a user starts.

## Check a request really came from OpenAI

OpenAI publishes a separate IP list for each bot, so a request claiming to be GPTBot is real only if its address is in `gptbot.json`. A user agent is just text, and on tlinky.com fake OpenAI names showed up 104 times in about one week.

We fetched `gptbot.json` on 28 October 2026. It was dated 22 September 2026 and listed 18 IPv4 ranges and no IPv6 ones. A third-party count from 5 August 2026 found 21 ranges, so download the list fresh instead of copying ranges from an article.

Our test script checks addresses against that file. Two addresses inside OpenAI’s ranges matched, while `127.0.0.1`, a Google address, an IPv6 address and junk input did not:

```
$ python3 verify_crawler_ip.py gptbot.json 20.171.206.15 74.7.227.200 127.0.0.1 66.249.66.1 2001:db8::1 not-an-ip
list gptbot.json: 18 prefixes, creationTime 2026-09-22T02:00:07.000000
20.171.206.15: MATCH 20.171.206.0/24
74.7.227.200: MATCH 74.7.227.128/25
127.0.0.1: no match (treat as unverified)
66.249.66.1: no match (treat as unverified)
2001:db8::1: no match (treat as unverified)
not-an-ip: not an IP address
```

Use the list that matches the bot name: `searchbot.json` for OAI-SearchBot and `chatgpt-user.json` for ChatGPT-User. The full script, a PHP version and how to read client IPs behind a proxy are in our guide to verifying a crawler’s IP. The plugin’s AI Analytics does this check automatically against OpenAI’s lists ([our documentation](https://skybootstrap.com/docs/skyboot-ai-markdown/ai-traffic-analytics/)).

## Your OpenAI settings in two lines

Disallow GPTBot if you don’t want your pages used for OpenAI training, and leave OAI-SearchBot and ChatGPT-User allowed so ChatGPT can still find and open your pages. After a week, check your verified hits, not raw user agents. Every other AI company’s bots get the same treatment, sorted by site type, in our [AI crawler guide for WordPress](https://skybootstrap.com/ai-crawlers-wordpress/).

## Frequently Asked Questions

### Can I opt out of OpenAI training and stay in ChatGPT search?

Yes. Disallow GPTBot in robots.txt and leave OAI-SearchBot allowed. OpenAI describes the two settings as separate, and that sites opting out of OAI-SearchBot are the ones that drop out of ChatGPT search answers. In our parser test, that group blocked the training bot only, while OAI-SearchBot and ChatGPT-User stayed allowed.

### Is ChatGPT-User a crawler?

Not in the usual sense. OpenAI says ChatGPT-User visits a page when a user’s question in ChatGPT, a Custom GPT or a GPT Action leads there, and that it isn’t used for automatic crawling. Because a person started the request, OpenAI doesn’t promise it follows robots.txt. It also doesn’t decide whether your site appears in ChatGPT search.

### What is OAI-AdsBot?

OAI-AdsBot is OpenAI’s ad-review bot. It visits landing pages that advertisers submit for ChatGPT ads to check them against OpenAI’s policies, and it only visits those submitted pages. OpenAI says its data isn’t used to train foundation models. Unless you advertise in ChatGPT, you’re unlikely to see it.

### How long does OpenAI take to see a robots.txt change?

About 24 hours for search, according to OpenAI. Its crawler page says robots.txt changes for search can take about that long to take effect. Check your live robots.txt after saving, then look at your verified OpenAI hits a day or two later.

## How we tested

- robots.txt: we parsed a full WordPress robots.txt with a GPTBot group using the Protego parser (version 0.7.0) for each OpenAI bot on 28 October 2026. The result shows how the rule reads, not how OpenAI’s crawlers behave.
- IP check: our Python script compared sample addresses with gptbot.json as downloaded on 28 October 2026 (18 IPv4 ranges, dated 22 September 2026).
- Live data: OpenAI rows from Skyboot AI Markdown’s AI Analytics on tlinky.com for the roughly seven days up to 28 October 2026, counting only IP-verified hits. Fake-crawler counts come from the same plugin screen.