DEV Community

Cover image for Four monitoring tools I compared for three Cloudflare Pages sites
MORINAGA
MORINAGA

Posted on Edited on

Four monitoring tools I compared for three Cloudflare Pages sites

Six weeks after launching three Cloudflare Pages sites, I've settled on a monitoring stack. The decision was less obvious than expected — not because any single tool is difficult to set up, but because each answers a different question, and for a near-zero-traffic site most of the answers don't matter yet.

Here's what I evaluated, what's live, and what's still sitting on the setup checklist.

GA4: required for AdSense, hard to like

Google Analytics 4 is the only viable choice if you want AdSense approval. The review process checks for a linked GA4 property, and without one the application stalls. That's the primary reason GA4 is in the <head> of all three sites.

Beyond AdSense compliance, GA4 reports session counts, top pages by view, geographic breakdown, and device split. For a site at near-zero traffic those numbers aren't meaningful yet — but they become important in a few months when I want to show a buyer that traffic is real and growing. GA4 is the one source a buyer will trust because it integrates with Google Search Console and is auditable.

The downside: the event-streaming model is genuinely confusing for a static site where sessions are basically the only dimension worth tracking. The "Explorations" interface is powerful and aimed at properties with thousands of daily events. I've stopped looking at GA4 daily and set a reminder to check it monthly.

One data quality note: a significant fraction of developers use content blockers that intercept gtag.js. GA4 undercounts that audience. Cloudflare Web Analytics, below, is my planned second number for exactly that reason.

Cloudflare Web Analytics: privacy-first, lightweight

Cloudflare Pages includes Web Analytics at no extra cost. Enable it in the dashboard, and it injects a lightweight beacon script that doesn't use cookies — GDPR-compliant by default, no consent banner required.

What it gives: page views, top pages, referrer domains, countries, devices. What it doesn't give: sessions, bounce rates, conversion goals, or custom events.

I haven't enabled it yet — it's still an unchecked box on my migration checklist — but it's the one I intend to turn on next, for two reasons. First, it would give an independent page-view count to cross-check GA4: any gap between the two numbers is largely blocked gtag.js calls, which is useful to know. Second, if I ever remove GA4 from a site that has dropped AdSense, I'd have a baseline metric that doesn't break under common ad-blocker configurations.

Expected setup time: five minutes per site. No code changes needed, since Cloudflare can inject the beacon automatically for Pages projects.

UptimeRobot: external uptime alerts for free

Both GA4 and Cloudflare Analytics share a fundamental limitation: they only see traffic that arrives. They can't tell you the site is returning 500 errors to everyone who tries to load it.

UptimeRobot's free tier covers 50 monitors at five-minute check intervals. The plan I've written up is four URLs: the index page of each of the three sites plus the internal dashboard, each alerting by email on a non-2xx response. It's still an open item on my setup checklist — the account isn't registered yet — which is a gap I'm not comfortable with.

Cloudflare Pages is reliable, but edge-function errors, build-output mistakes, and DNS issues can make a site return errors without any alert from analytics tools. UptimeRobot would catch the outages analytics can't.

The free tier's five-minute interval is coarser than I'd prefer. A site that's down for four minutes might not trigger an alert at all; one that's down for nine minutes might trigger late. Paid UptimeRobot allows one-minute intervals. For now, five minutes is acceptable — none of these sites serve time-sensitive content.

Setup is minimal: sign up, add monitor, paste URL. No code changes, no DNS records, no integration with the Cloudflare dashboard — which is why it's a ten-minute task I have no excuse for leaving open.

Plausible: the right tool, not yet at the right price

Plausible is privacy-focused analytics that handles sessions, custom events, and goals with a cleaner interface than GA4. The self-hosted version is open-source and free to run. Managed Plausible starts at $9/month for up to 10k monthly page views.

I looked at self-hosting it on a cheap VPS. The maintenance overhead — keeping the service up, managing backups, one more failure surface in the stack — isn't worth it for three sites that together generate fewer than 200 page views per day right now.

Managed Plausible makes sense once traffic passes a few thousand visits per month and affiliate revenue can justify the subscription. Until then, it's a product I want to use at a price I'm not paying.

If you're building something that doesn't need AdSense and care about privacy-first measurement from day one, Plausible self-hosted is the first tool I'd recommend. For AdSense-dependent sites, GA4 is unavoidable regardless.

Where I've landed

Tool Monthly cost Status Primary value
GA4 $0 Installed on all three sites AdSense compliance, buyer-auditable metrics
Cloudflare Web Analytics $0 Chosen, not yet enabled Second opinion on page views, blocker-resilient
UptimeRobot $0 Chosen, not yet registered External availability alerting
Plausible Rejected for now on price Better UX once traffic justifies the cost

Total cost of the stack: $0. GA4 is the only piece actually running today; the other two are roughly 30 minutes of dashboard clicking I still owe myself.

The gaps this leaves: no search-query data (that's Google Search Console, a separate integration), no conversion funnel analysis, and no alerting on slow responses — UptimeRobot checks availability but not latency. For a pre-revenue site those gaps are acceptable. I'll revisit when traffic and revenue make the missing data actionable.

Part of an ongoing 6-month experiment running three AI-curated directory sites. The technical claims here are real; this article was AI-assisted.

Top comments (0)