> Site index: https://usehardal.com/llms.txt
> Every content route also serves markdown at <url>.md

# How to Measure GPTBot

GPTBot is OpenAI's training crawler. Measure it in server logs and Hardal AI Visibility, not in ChatGPT Ads or GA4.

Source: https://usehardal.com/blog/how-to-measure-gptbot-traffic
Published: 2026-08-19
Updated: 2026-08-19
Author: Ecem Bircan
Category: Marketing

---

**GPTBot** crawls public pages that may be used to train OpenAI's generative models. Its job is training data. Ad clicks, search citations, and live fetches each arrive under a different user agent.

OpenAI documents this in [Overview of OpenAI Crawlers](https://developers.openai.com/api/docs/bots). Disallowing GPTBot in robots.txt is the signal that your content should not be used for that training. Allowing OAI-SearchBot at the same time is a separate choice. OpenAI says the two robots.txt tags are independent.

If you "measure GPTBot" the way you measure Meta, you will invent a channel that does not exist. The useful measurement is: how often it hits you, which URLs it prefers, and whether that matches the pages you actually want a model to learn.

## How GPTBot shows up

Match on `GPTBot` in the user-agent, not a pinned version. OpenAI's example string looks like `compatible; GPTBot/1.4; +https://openai.com/gptbot`. Version numbers change. Published IPs are at [openai.com/gptbot.json](https://openai.com/gptbot.json). User-agents can be spoofed; IP ranges are the check when the volume matters.

GA4 will not show this, because GPTBot does not execute your JavaScript tag. That holds for every other trainer too ([AI Visibility Playbook](https://usehardal.com/playbook/ai-visibility)).

## What to report

- Hit count and unique URLs, weekly or monthly, next to Search Console, not inside Ads Manager
- Top paths: product, pricing, docs, and old posts that still get crawled
- robots.txt intent vs observed hits (a Disallow that still shows volume is a config or spoof problem)

A thousand GPTBot hits on `/pricing` means the model pipeline is interested in how you sell. It does not mean a thousand ChatGPT users landed. For live fetches see [ChatGPT-User](https://usehardal.com/blog/how-to-measure-chatgpt-user-traffic). For ChatGPT search indexing see [OAI-SearchBot](https://usehardal.com/blog/how-to-measure-oai-searchbot-traffic). For paid clicks see [How to measure ChatGPT Ads](https://usehardal.com/blog/how-to-measure-chatgpt-ads).

## robots.txt

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

blocks future training crawls. It does not untrain models that already ingested you, and it does not change Google rankings. Leave Googlebot alone.

```
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot
Allow: /
```

is the common split: no training corpus, still eligible for ChatGPT search citations.

## How Hardal measures it

[Hardal AI Visibility](https://usehardal.com/ai-visibility) names GPTBot and attributes it to OpenAI on the same first-party, server-side pipeline as Hardal Analytics. No extra pixel. [isvisible.ai](https://isvisible.ai) is the one-shot robots.txt / live UA check. The playbook has the log queries if you still pull CDN files yourself.

Decisions after the report: [What marketers should do about AI crawler traffic](https://usehardal.com/blog/ai-crawler-traffic-for-marketers).
