I opened my server log expecting Googlebot at the top. It wasn’t even second.

In just under two weeks, AI crawlers made almost three times as many requests as every search engine put together. More than a third of the “Googlebots” weren’t Google at all, and some of those fakes were hunting for passwords.

Why Your Analytics Misses AI Crawlers

Most AI crawlers don’t run JavaScript, so they never trigger your tracking script. Plausible, Umami and Google Analytics never count this AI bot traffic, and their bot filters never even see it.

Only the server log does. A log analyzer like GoAccess shows them, but it trusts the name in the request. So the fakes end up in its “AI crawlers” list too.

Who Reads This Site: AI Crawlers vs Search Engines

AI crawlers vs search engines: AI bots made almost 3× more verified requests than search engines in two weeks, 1,590 against 563.

I only counted requests from addresses that belong to the company behind the bot.

Top crawlers in my server log: meta-externalagent 523, ClaudeBot 423, Googlebot 212, Amazonbot 197, PetalBot 126. Two AI bots read more than Googlebot.

Meta’s crawler came at all hours, day and night.

ChatGPT-User doesn’t crawl at all. Behind each of its visits is a person who asked ChatGPT something, and ChatGPT opened one of my pages to answer. That happened a few times every day.

Three Jobs an AI Crawler Can Do

OpenAI alone runs three of them: GPTBot, OAI-SearchBot and ChatGPT-User. Each name stands for a different job.

Why AI bots visit: training bots like GPTBot (1,240 requests, no visitors), answer bots like OAI-SearchBot (276, can send visitors) and ChatGPT-User fetching for a person (74, a reader).

On paper, answer bots are the ones that pay you back. When ChatGPT or Perplexity quotes a page, it links to it.

So far my log says otherwise. In two weeks, not one visitor came from ChatGPT, Perplexity, Claude or Gemini, by referring address or by utm_source tag. Google sent 108.

A Third of the “Googlebots” Were Fake

A bot’s name is just text in the user agent, and anyone can type it.

Fake Googlebot share: of 331 requests signed Googlebot, 212 came from Google and 119, or 36%, were fake.

Googlebot wasn’t the only name borrowed. The fakes also signed as ChatGPT-User, Claude-User and Perplexity-User.

Fake Bots Were Hunting for Passwords and Keys

Almost all of them came from five rented Google Cloud servers. Between them they used 30 bot names and sent 2,496 requests. That’s more than all the real AI bots put together.

Four of the five first read the homepage, robots.txt, the sitemaps and about 15 articles, the way a search crawler would.

How a fake bot visits: homepage, robots.txt, sitemaps and about 15 articles first, then .env, keys and Git, answered with 403 refused.

Only then did they ask for the files where passwords and keys usually live.

Fake bots sent 1,045 requests for secret files: .env files 790, keys and credentials 140, other 115. 927 refused, 110 not found, 8 public login page, 0 leaked.
Other: Git, CI and WordPress files.

The 8 that got through hit the WordPress login page, which is public anyway. Not a single secret left the server.

How to Detect AI Bots in Your Server Log

Open your server’s access log and search the user agents for AI crawler names like GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot and meta-externalagent. That only gives you names.

How to verify Googlebot: a reverse DNS lookup ending in googlebot.com means real, one ending in bc.googleusercontent.com means a fake on a rented cloud server.

To verify Googlebot, Bingbot or Applebot, look up the DNS name of the address. A real Googlebot comes from a name ending in googlebot.com, and Google explains how to check it.

OpenAI, Anthropic and Perplexity publish lists of their addresses. Meta points to its own network ranges.

Even those lists have gaps. Some real Claude-User requests came from a network registered to Anthropic that isn’t on Anthropic’s own list.

Should You Block AI Crawlers?

Who gets in: training bots are your call in robots.txt, answer bots and fetches for a person get in, fake bots get locked out of server files.

Training bots, the LLM crawlers that collect text for new models, can be turned away in robots.txt. OpenAI and Anthropic say their crawlers follow it.

Fake bots ignore robots.txt, so make sure your server refuses files like .env.

What I Did

I didn’t block a single AI bot. Zero visitors from AI so far, but I still want this site quoted in answers.

I only checked that files like .env return 403. They already did.

I’ll run this check again next month and see whether the first visitor from an AI assistant has shown up.

How I counted: just under two weeks of this site’s nginx log, without my own checks and monitors. A request counts as real only if its address belongs to the company, by published list, DNS or the company’s registered network.