# Is ChatGPT sending you visitors?

> Look for visits whose referrer is chatgpt.com or one of the other assistants. Apps that strip the referrer arrive with none, so whatever you count is a floor.

- 8 addresses count as AI assistants, chatgpt.com among them.
- Apps that hide the referrer arrive with none, so the count is a floor.
- Crawlers are counted apart, and never spend the events allowance.

## How is a visit from an AI assistant recognised?

When somebody follows a link, their browser usually tells your site which site
the link was on. That is the referrer. An answer in ChatGPT that links to your
page sends the visitor along with `chatgpt.com` as the referrer, and the visit
is counted under **AI assistants** rather than search or social. Only the host
is kept, never the page it came from.

These are the addresses counted as AI assistants today:

| Address |
|---|
| `chatgpt.com` |
| `chat.openai.com` |
| `perplexity.ai` |
| `claude.ai` |
| `gemini.google.com` |
| `copilot.microsoft.com` |
| `chat.mistral.ai` |
| `you.com` |

An address nobody has listed yet counts as elsewhere. It moves to the right row
the day it is added, for every month already counted, because where a visit
came from is worked out when the figures are read rather than when the visit is
stored.

## Why is the number lower than the truth?

Because a referrer is a courtesy, not a guarantee. A visit that started in an
assistant ends up in one of three places, and only the first one can be
counted as one.

- **AI assistants**, when the link was followed in a browser and the referrer
  came with it.
- **Nowhere in particular**, when the link opened from an app that does not
  say where it came from, or was copied and pasted. The visit counts, with no
  referrer at all.
- **Search**, when somebody read your name in an answer and looked you up.
  The visit is real, and it counts where it landed.

So read the AI assistants row as the least it could be, and watch which way it
moves from month to month. The trend is reliable even where the total is not.

## Being read is not being visited

Before an assistant can send anybody, something has to read your page. OpenAI,
Anthropic and Perplexity each run separate crawlers for separate jobs, and
robots.txt can name each one:

| Job | OpenAI | Anthropic | Perplexity |
|---|---|---|---|
| Building an answer index, so it can cite you | `OAI-SearchBot` | `Claude-SearchBot` | `PerplexityBot` |
| Fetching a page because a person asked | `ChatGPT-User` | `Claude-User` | `Perplexity-User` |
| Collecting pages to train models | `GPTBot` | `ClaudeBot` | none |

[Which AI crawlers should you let in?](/guides/which-ai-crawlers-to-let-in/)
goes through the other companies' crawlers too, and what refusing each one does.

Most crawlers never run JavaScript, so a script in the page cannot see them.
BackendFree counts them through the fallback image in the snippet or a report
from your own server, which makes its crawler figures a floor too. It names
23 AI crawlers one by one, and none of
them spends the events allowance.

## What should you do about it?

1. **Write pages that answer one question each.** Put the question in the
   heading and the answer in the first two sentences, with the real numbers.
   That is the part an assistant quotes.
2. **Let the answer crawlers in.** If `OAI-SearchBot`, `Claude-SearchBot` or
   `PerplexityBot` cannot read a page, those assistants cannot cite it.
3. **Decide about training on its own.** Refusing `GPTBot` or `ClaudeBot` is a
   choice about future models, and on its own it does not take you out of
   answers.
4. **Watch the trend, month by month.** Compare the AI assistants row with
   itself rather than with search.

One way to write that robots.txt, letting answers in and keeping training out:

```text title=robots.txt
# Answer engines: let them read, so they can cite you
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
Allow: /

# Training: your choice, made separately
User-agent: GPTBot
User-agent: ClaudeBot
Disallow: /

Sitemap: https://salon.example/sitemap.xml
```

## Where to see it in BackendFree

On the traffic screen, AI assistants is its own row among the places visitors
came from, beside search, social, maps, directories and email. The crawler
panel underneath names each crawler and how often it came.
[Web analytics](/product/web-analytics/) has the rest of what the
measurement does, and what it refuses to collect.

## Questions people ask next

### Will blocking GPTBot keep my site out of ChatGPT answers?

**Not on its own.** OpenAI reads pages for its search answers with OAI-SearchBot and for training with GPTBot, and robots.txt names the two separately. Refusing GPTBot leaves you in the answers.

### Does a link from ChatGPT say where it came from?

**Usually, through the referrer.** When the link is followed in a browser, the browser says so. If the link also carries utm tags, BackendFree keeps them with the visit, while the AI assistants row counts by the referrer alone.

### Why is Google not listed as an AI assistant?

**Because its AI answers sit on its search pages.** A click from an AI answer on google.com arrives with google.com as the referrer, and counts under search with every other Google visit. Google reports those clicks as search traffic too.

### Do crawler visits count against my allowance?

**No.** A crawler never spends an analytics event, whether it reads for an AI company or a search engine. Crawler visits are counted apart, on their own panel.

## Sources

- [OpenAI crawlers](https://developers.openai.com/api/docs/bots), OpenAI
- [Does Anthropic crawl data from the web, and how can site owners block the crawler?](https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler), Anthropic
- [Perplexity crawlers](https://docs.perplexity.ai/guides/bots), Perplexity
- [AI features and your website](https://developers.google.com/search/docs/appearance/ai-features), Google Search Central
- [RFC 9309, the Robots Exclusion Protocol](https://www.rfc-editor.org/rfc/rfc9309), IETF
