← All articles
Analytics6 min read

How to filter and exclude bot traffic in GA4 (and what the built-in filter misses)

GA4's bot filtering cannot be turned off, cannot be tuned, and only covers self-declared crawlers. Here is what you can actually filter, and how to handle the rest.

The most common question about bot traffic in GA4 has an awkward answer: there is no bot-filtering setting to switch on. Google applies the IAB/ABC International Spiders and Bots List automatically to every property, and there is no control over it. What you can control are data filters, exclusions and segments — and those are where the real work happens.

What the built-in filter actually removes

Only traffic from user agents on the known-bots list, meaning crawlers that announce themselves honestly and register with the IAB. Googlebot, Bingbot and the major SEO crawlers are covered. Anything that spoofs a Chrome user agent — most scrapers, most fraud tooling, most form spam — passes straight through.

Filters you can configure

Internal traffic

Admin → Data streams → Configure tag settings → Define internal traffic. Add your office ranges and any VPN or CI runner IPs. Then activate the filter in Admin → Data filters; a new filter is in testing mode and does nothing until you set it to active.

Unknown hostnames

Create a custom data filter excluding any hostname that is not yours. This kills a whole class of pollution: staging copies, translation proxies and scraper mirrors that carry your tag.

Developer traffic

The developer traffic filter removes hits flagged by debug mode. Cheap to enable and it keeps QA sessions out of production numbers.

Segments for what filters cannot catch

Data filters are permanent and destructive — filtered hits never enter the property. For suspicious-but-unproven traffic, build an exclusion segment instead so you can compare both views:

  • Sessions where engagement time = 0 and pageviews = 1
  • Sessions from a specific city with a 0% conversion rate over 90 days
  • Sessions with a landing page nobody links to internally

The structural blind spot

Every technique above filters traffic that reached GA4. None of them show you the traffic that never did. A scraper pulling your pricing page every ten minutes, or GPTBot reading your documentation, leaves no trace in GA4 because neither runs your tag.

For most marketing teams this is the bigger number. The pragmatic setup is GA4 for humans, plus a dedicated bot layer that records requests at the server or edge, classifies the agent, and reports the split. Then GA4 stays clean and you finally have a number for the traffic it was never able to see.

Check your own site in 10 seconds

Our free AI visibility check fetches any page without JavaScript — exactly like GPTBot — and scores what a crawler can read.

Run the free check →

See the bots your analytics never showed you

Install in about a minute. Free plan covers 10,000 visits a month — no credit card.