analytics
Why Does Cloudflare Show More Visitors Than Google Analytics?
What is the direct answer?
They count in different places. Cloudflare counts every response its server sends, so bots, crawlers, scripts and requests for pages that do not exist are all included. Google Analytics only counts a browser that loads the page and runs its tracking script. On our own site, that difference was 34,149 page views in Cloudflare against 545 in Google Analytics over the same 28 days.
What are the key takeaways?
- Cloudflare measures traffic at the server. Google Analytics measures it in the browser.
- Bots and crawlers, including AI crawlers, show up in Cloudflare and mostly not in Google Analytics.
- A site without a real 404 page can turn every bot probe into a Cloudflare "page view".
- Cloudflare's "unique visitor" is an IP address. Google Analytics' "user" is a browser cookie. They are different things with similar names.
- Use Google Analytics for marketing decisions and Cloudflare for load, errors and bot pressure.
Where does each tool do its counting?
Cloudflare sits in front of the website. Every request passes through it, so it sees everything that asks for anything, human or not. Google Analytics is a piece of JavaScript inside the page. It only reports when a real browser downloads the page, runs the script, and sends a hit back to Google.
Cloudflare counts what was served. Google Analytics counts what was seen. Most of the gap follows from that one difference.
Our full 28-day figures are in Cloudflare vs Google Analytics: our real traffic numbers. The short version is below.
| Tool | Where it counts | Page views |
|---|---|---|
| Cloudflare edge analytics | At the server, every HTML response | 34,149 |
| Cloudflare Web Analytics | In the browser, sampled beacon | about 500 (estimate) |
| Google Analytics 4 | In the browser, JavaScript tag | 545 |
What are the seven reasons the numbers differ?
1. Bots and crawlers do not run the tracking script
Search engines, AI crawlers, uptime monitors, SEO tools and vulnerability scanners all request pages. Most of them read the raw HTML and never run JavaScript, so the Google Analytics tag never fires. Cloudflare's own documentation says this directly: browser-based tools do not record threats, bots and automated crawlers. On our site, Cloudflare flagged 3,360 requests as threats in 28 days. Google Analytics shows none of them, by design.
2. Missing pages that return a success code
Cloudflare defines a page view as a successful response with an HTML content type. It does not ask who requested it or whether the page really exists. A static site on Cloudflare Pages without a 404.html file is treated like a single-page app: any unknown address gets the homepage back with a 200 status. That is a soft 404.
Bots constantly probe addresses like old login pages and config files. With a soft 404, each probe is a "page view". We added a real 404 page on September 27. Cloudflare's daily page views fell from 1,814 to 301, and daily 404 responses rose from 78 to 1,656. One missing file was responsible for most of our Cloudflare page views.
3. "Visitor" means a different thing in each tool
Cloudflare counts a unique visitor as a unique IP address. Google Analytics counts a user as a browser with its own ID cookie. One office behind a single IP can be many Google Analytics users and one Cloudflare visitor. One phone switching between wifi and mobile data can be one user and several IP addresses. And every bot with its own IP is a Cloudflare visitor.
4. Requests are not page views
Loading one page takes many requests: the HTML, stylesheets, scripts, images and the favicon. Cloudflare reports all of them as requests. Our site had 78,754 requests against 34,149 Cloudflare page views. Quoting requests as traffic is the fastest way to overstate a site by a factor of 100 or more.
5. Ad blockers and privacy settings stop the tag
This one runs the other way. Some people use browsers or extensions that block the Google Analytics script, and some leave before the page finishes loading. Those are real humans that Google Analytics misses and Cloudflare still sees. Google Analytics is a floor for human visits, not an exact count.
6. Your own visits
Google Analytics can exclude your own visits by IP, but only once the internal traffic filter is switched from testing to active. Ours was still in testing, so my visits from Israel were counted. On a small site, the owner can easily be the single biggest visitor.
7. Sampling, filters and scope
Cloudflare Web Analytics estimated our page loads from roughly a 1-in-10 sample. One Google Analytics property can hold several websites, so reports mix them unless you filter by hostname. Even Google Analytics disagreed with itself: the same hostname filter gave 118 active users in one report and 252 in another. Before comparing two tools, make sure each one is counting the same site, the same days, and the same thing.
Which number should you use for what?
| Question you are asking | Best source |
|---|---|
| How many people read my pages? | Google Analytics, cross-checked with Cloudflare Web Analytics |
| Which channels and pages bring engaged visitors? | Google Analytics |
| How much load and bandwidth does the site handle? | Cloudflare edge analytics |
| Are bots or scanners hitting the site? | Cloudflare edge analytics and security events |
| Are broken links or old URLs being requested? | Cloudflare 404 counts, plus Google Search Console |
| What number can I put in a pitch or a post? | The browser count, with the date range and the method stated |
How can you make the numbers line up better?
- Serve a real 404 page. On Cloudflare Pages, adding a 404.html file is enough to stop unknown addresses returning your homepage.
- Redirect old URLs with permanent 301 redirects so real visitors and search engines land on live pages.
- Filter Google Analytics by hostname if one property tracks more than one site.
- Turn on the internal traffic filter and switch it from testing to active once you have confirmed it labels your own visits.
- Compare two browser tools, not a browser tool against a server tool. If Google Analytics and Cloudflare Web Analytics agree, you can trust the human count.
None of this makes a small site look bigger. It makes the number you quote one you can defend.
Frequently asked questions
Why does Cloudflare show more visitors than Google Analytics?
Cloudflare counts requests at its server, so bots, crawlers and scripts are included, and a unique visitor is a unique IP address. Google Analytics only counts browsers that load and run its JavaScript tag, and it filters known bots.
Is Cloudflare or Google Analytics more accurate?
Both are accurate about different things. Cloudflare is accurate about server load, bots and errors. Google Analytics is closer to human visits, though it misses people who block its script. On prismpublication.com, Google Analytics and Cloudflare's own browser-based Web Analytics agreed within about 10 percent.
Can a missing 404 page inflate Cloudflare page views?
Yes. If an unknown address returns your homepage with a 200 status, every bot probe counts as a page view. On prismpublication.com, adding a real 404 page cut Cloudflare's daily page views by 83 percent.
Does Google Analytics count AI crawlers like GPTBot or ClaudeBot?
Generally no. Crawlers usually fetch the HTML without running JavaScript, so the Google Analytics tag never fires. Cloudflare sees them because they still hit the server.
What does a Cloudflare page view mean?
Cloudflare's documentation defines a page view as a successful HTTP response with an HTML content type. It does not check whether a person or a bot asked for it.
AI-assisted, checked by a human against the live dashboards and Cloudflare's documentation.
Numbers you can check
Prism shows a labeled ad in an AI chat only when it fits the question, and shows you the match score for every test. Try your own ad against real buyer questions, free.