---
title: "AI Bots: Who They Are, Real or Fake | Knock, knock, AI!"
description: "The three bot roles, how the app confirms a visit by IP address, when a real bot looks fake, and how the Access check works."
url: "https://knockknock-ai.app/docs/bots/"
lang: "en"
published: 2026-11-08T00:00:00+01:00
updated: 2026-11-08T00:00:00+01:00
---

# AI Bots: Who They Are, Real or Fake

Every AI bot visit in your log arrives with a name and an IP address. The app uses the name to find the bot and the address to decide whether the visit is real.

## How the app finds the bot

The app compares the User-Agent of each log row with a token it keeps for every known bot. The matching follows four rules:

- Letter case does not matter.
- Only the whole token counts. A letter, digit, underscore or hyphen next to it breaks the match, so Applebot does not match Applebot-Extended.
- When several tokens match, the longest wins.
- Web addresses inside the User-Agent are dropped before matching, so a bot's info link is not mistaken for the bot.

The list that ships with the app holds 32 bots today.

## Three roles

Bots work in one of three roles.

- **search:** the bot feeds the index of a search engine.
- **user_fetch:** the bot fetches a page because a user asked.
- **training:** the bot collects data for training.

The Freshness tab always shows Googlebot, Bingbot, OAI-SearchBot, Claude-SearchBot, PerplexityBot and CCBot. Other bots appear there only once they have read a page. The list also holds GPTBot, ClaudeBot, Applebot, Amazonbot and Bytespider, among others.

One search bot stands for each of five AI platforms:

| Search bot | Platform |
|---|---|
| Googlebot | Gemini |
| Bingbot | Copilot |
| OAI-SearchBot | ChatGPT |
| Claude-SearchBot | Claude |
| PerplexityBot | Perplexity |

OpenAI has three bots on the app's list, one in each role: OAI-SearchBot is search (it feeds ChatGPT search), ChatGPT-User is user_fetch (it fetches a page when a ChatGPT user asks for it), and GPTBot is training (it collects content for training OpenAI models).

## How a visit is verified

The app compares the IP address in the log row with the address lists that bot providers publish. It sends no DNS queries, because hosting often has no DNS and a lookup per address would be slow. Each visit gets one of three verdicts:

- **Confirmed:** the address is in a range that the provider publishes, in any of the loaded lists of the bot.
- **Unconfirmed:** the bot has lists, the app loaded all of them, and the address is on none. The visit may be a fake that only copies the bot's name.
- **No list:** the bot has no list of addresses, or one of its lists could not be loaded and the address is not in the others. Nothing can be claimed.

A few details:

- The app downloads the lists at most once a day (UTC) and keeps a copy on your server.
- A failed download does not overwrite the copy. Without a copy the bot gets "no list".
- The app sets the verdict when it recalculates the visit and stores it with the visit. It does not check again when a provider later changes its list.
- The check uses the address from the log row.
- Eleven bots have no IP list today: meta-externalfetcher, meta-externalagent, meta-webindexer, anthropic-ai, Claude-Agent, Google-GeminiNotebook, Amazonbot, Amzn-SearchBot, Amzn-User, Bytespider and MistralAI-Training. Their visits are marked "no list".
- CCBot has a list of addresses, so the app checks it against that list. Common Crawl also recommends reverse DNS, and the app does not do that.

## What the panel does with the verdicts

In the panel, visits fall into confirmed, unconfirmed (possible fakes) and without a list. The Confirmed / All switch chooses which ones to count. The freshness rows count confirmed visits and, separately, visits without a list. Unconfirmed visits do not count there at all.

## When a real bot looks fake

If your server writes the address of a proxy (a CDN, for example) into the log instead of the visitor's, real bots look unconfirmed. If you see real bots stuck at unconfirmed, start there.

Blocks in Cloudflare and answers served from cache never reach your server, so they leave no line in the log.

## Can the bots get in?

The Access tab asks `api.adinspire.com` whether AI bots can enter your home page. It checks what robots.txt says, runs a test with bot names and looks the page up in Common Crawl. The result is a rating: fine, there are obstacles, serious obstacles or not determined.

The Common Crawl check runs only for the main domain of the installation, not for other domains of the same log. It covers your home page and up to 19 of your most visited pages, 20 addresses in total. You get 3 Access checks per day per installation. A check usually takes 10 to 20 seconds.

Access and Common Crawl depend on the `api.adinspire.com` service, and so do the updates (the check for a new version and a new list of bots, and the download of the package). The rest of the app works without it. Exactly what leaves your server is listed in [What the app stores and sends](https://knockknock-ai.app/docs/privacy-and-data/).

<a class="btn-secondary" href="/docs/freshness/">Freshness explained</a>
<a class="btn-secondary" href="/install/">Read the install guide</a>

