ClaudeFolio
Lessons

How to tell if your traffic is real or bots

Edward Kwun··4 min read
How to tell if your traffic is real or bots

See more of our writing in your Google results.

Key points

  • Modern bots run JavaScript and show up in GA4 as real visitors
  • One bot posed as Google search traffic on a census data site
  • Compare GA4 with Search Console clicks to catch fake search traffic
  • A Google referrer with Sec-Fetch-Site: none can't be a real browser
  • Hundreds of addresses at one page each signals a scraper fleet
  • Block on several signals together so real readers aren't caught

A traffic spike on a small site feels great for about a day. Then you look closer and some of it isn't people. I've been through this on several data sites I work on this year, and the pattern is consistent enough to write down: the bots that cause trouble now look like real visitors in Google Analytics, and the way to catch them is to compare sources that a bot can't fake at the same time.

Two real cases show how it works.

The fake Google visitor. On a data site, Google Analytics 4 showed traffic labeled google / organic jumping from about 3 sessions a day to about 75, all of them engaged. Search Console, Google's own record of clicks from search results, showed 0 to 2 clicks a day for the same period. Over three days, 223 of the 227 sessions GA4 labeled as Google came from one source: a datacenter network, a Linux desktop browser string, every visitor in the same city. It sent a header claiming to come from google.com, and it ran the page's JavaScript, so GA4 counted it as an engaged search visitor.

The polite crowd. On another site, a different fleet requested about 800 pages in 14 hours from 773 different home internet connections, almost exactly one page each. Every request used the same frozen browser version (Chrome 149). GA4 undercounted it by roughly ten times, because only some of those visits ran the analytics script, so the server's own logs were the only place the real size showed up.

Five checks that catch them

1. Compare GA4 with Search Console. If GA4 says Google traffic doubled and Search Console clicks didn't move, the extra traffic isn't from Google. Bing Webmaster Tools works the same way for Bing. This is the single fastest check, and it needs no technical skill.

2. Look for traffic that's too good. Real visitors leave quickly sometimes. A source with 100 percent engagement, one city, one screen size, and one browser is a machine.

3. Check where visitors say they came from against how they actually arrived. Browsers send a header called Sec-Fetch-Site. MDN defines the value none as "a user-originated operation. For example: entering a URL into the address bar, opening a bookmark." Someone clicking a Google result arrives as cross-site. A request that claims a Google referrer but says none is impossible for a real browser, and it's exactly what the census-site bot sent.

4. Count pages per visitor. People browse. They land on one page, click to another, and their browser loads the site's images and scripts along the way. Hundreds of addresses that each load exactly one page and nothing else, around the clock, is a fleet. On the lottery site the giveaway was that none of those addresses ever clicked an internal link.

5. Watch for a frozen browser version. Real browsers update themselves. A large group stuck on one specific version a few releases behind everyone else, often with no referrer at all, is usually one scraper pretending to be many people.


 

You can ask Claude Code to do most of this. Point it at your server's access log and ask it to group requests by browser version and count distinct addresses and pages per address. The fleets show up as a version with hundreds of addresses at one or two pages each.

Blocking is where you need to be careful, because real readers share networks with bots. A rule that challenges a whole home internet provider will hit your actual audience. On these sites, the rules that held combined several signals at once, like a frozen browser version plus an empty referrer plus a single page, and sent most of them to a Cloudflare challenge rather than a hard block. That's the kind of setup putting Cloudflare in front of your site makes possible. Some fleets now solve challenges, which is when a narrow, exact-match block becomes worth it.

The cost of skipping all this isn't only server load. If you report traffic to an ad network, a sponsor, or an investor, fake visitors make your numbers wrong, and it's far better to be the one who finds that out.


 

Sources

MDN: Sec-Fetch-Site - The definitions of the none and cross-site values, with none describing user-originated requests such as typing a URL or opening a bookmark.

Analytics, Search Console, and server logs from sites the author works on, September and October 2026 - The census-site comparison of GA4 google / organic sessions against Search Console clicks, and the lottery-site fleet of about 800 requests from 773 addresses in 14 hours.

Found this article useful?

Add ClaudeFolio as a preferred source on Google to see our articles first.

FAQ

How can I tell if my website traffic is from bots?
Compare GA4 with Search Console clicks, look for sources with 100 percent engagement or one city and device, and check server logs for many addresses loading exactly one page each or a single frozen browser version.
Why does Google Analytics show organic traffic that Search Console doesn't?
A bot can fake a Google referrer and run your page's JavaScript, so GA4 counts it as organic search. Search Console only records real clicks from Google results, so a jump in one but not the other points to fake traffic.
Should I block bot traffic with Cloudflare?
Usually challenge rather than block, and match several signals together, such as an old frozen browser version plus no referrer. Blocking whole networks catches real readers who share those internet providers.

Related posts

Comments