How to Verify Your Analytics Is Actually Working (Step-by-Step)
A practical guide to verifying your web analytics is collecting data correctly. Browser devtools, real-time view, test events, cross-browser checks, and common gotchas.
TL;DR
- 1.Open devtools Network tab, visit a page, and look for the request to your analytics endpoint. If it fires, you're good.
- 2.Then check the real-time view — your test pageview should show up within seconds.
- 3.Test on multiple browsers (Safari ITP, Brave, Firefox) and on mobile. Tracking can break differently per browser.
- 4.Test custom events by triggering them and verifying they appear with the right properties.
- 5.If anything is off, the script tag, Content Security Policy, or ad blockers are usually the culprit.
Why this matters
Broken analytics is invisible. The dashboard still loads, the numbers just stop moving — and by the time you notice, you may have lost weeks of data. Most teams don't verify their analytics until something goes obviously wrong, which means weeks of missing or wrong numbers nobody can recover.
A 5-minute verification protocol after every site change saves you from this. Run it after deploys, after framework migrations, after switching analytics tools, after CSP updates, and on a quarterly schedule even when nothing has changed.
Step 1: Browser devtools Network check
Open your site in Chrome (or Firefox or Safari — works the same way). Open developer tools (F12 or Cmd+Option+I). Go to the Network tab. Refresh the page.
Filter the requests to find your analytics endpoint. For Sleek, filter by "collect". For GA4, filter by "g/collect". For Plausible, filter by "plausible.io/api". You should see exactly one request when the page loads, with a 200 response.
# Sleek Analytics
Request URL: https://getsleek.io/api/collect
Status: 200 OK
Method: POST
Payload: { "site_key": "...", "url": "...", "event_type": "pageview" }
# Google Analytics 4
Request URL: https://www.google-analytics.com/g/collect?...
Status: 200 OK
Method: POSTStep 2: Real-time view check
Open your analytics dashboard's real-time view in another tab. Visit your site in a third tab. Watch for your visit to appear in real-time.
In Sleek, real-time is the default tab and shows visitors within 1–2 seconds. GA4 has a Realtime report under Reports → Realtime; updates take 30 seconds to appear. Plausible and Fathom both show real-time visitors with similar latency.
If your devtools shows the request firing but the real-time view does not show your visit, you may have a misconfigured site key — verify the script tag has the correct site identifier.
Step 3: Test custom events
If you're tracking custom events (signups, button clicks, form submissions), trigger one manually. In your browser console, fire the event programmatically.
// Sleek
window.sleek('track', 'test_event', { source: 'manual_test' })
// GA4
gtag('event', 'test_event', { source: 'manual_test' })
// Plausible
plausible('test_event', { props: { source: 'manual_test' } })Step 4: Cross-browser tests
Tracking can break differently per browser. Safari's Intelligent Tracking Prevention (ITP) limits some cross-domain tracking. Brave blocks most ad-tech by default. Firefox's Enhanced Tracking Protection blocks GA4 in strict mode.
Test on at least three browsers: Chrome (baseline), Safari (mobile-heavy traffic), and either Firefox or Brave (privacy-aware audience). Verify the analytics request fires on each.
Privacy-friendly tools like Sleek typically work on all of these without configuration. GA4 may need consent mode or alternative implementations to track on Brave/Firefox at all.
Step 5: Mobile and tablet tests
About 60% of web traffic is mobile in 2026. If your tracking works on desktop but breaks on mobile, you're missing the majority of your audience.
Use Chrome DevTools device emulation (Cmd+Shift+M) for a quick check, but also test on a real phone — emulation does not catch all mobile-specific issues. Verify the analytics request fires from the mobile device, ideally on a real cellular connection (some corporate WiFi blocks analytics endpoints).
Step 6: Geographic accuracy spot-check
If your audience is global, verify country detection works. Use a VPN to connect through a different country, visit your site, and check whether your real-time view shows the right country flag.
Sleek derives country from the request IP using a maintained geo database; accuracy is typically 95%+. GA4 also uses IP-based geo; similar accuracy. If your real-time shows wrong country flags routinely, you may be running behind a proxy or CDN that obscures the real client IP.
Step 7: Single-page app pageview verification
If your site is a SPA (React, Vue, Astro with view transitions), verify pageviews fire on route changes — not just on initial page load. SPAs notoriously skip pageview tracking on internal navigation because the page never actually reloads.
Test by clicking through several internal links and watching the Network tab. You should see one analytics request per route change. If you only see one request on initial load, your tracking is missing 80%+ of pageviews.
Step 8: Deploy a continuous monitor
For high-stakes sites, set up a synthetic monitor that visits your homepage every 5 minutes and verifies the analytics request fires. Tools like Checkly, Better Uptime, or a simple Lambda function with Puppeteer can do this.
When the monitor fails, you get a Slack alert within minutes — not days or weeks after the data stops flowing. The cost of the monitor is trivial; the cost of a month of missing data is large.
Frequently asked questions
How do I quickly check if my analytics is working?
Open your site in browser devtools (F12), go to the Network tab, filter for "collect" or your analytics provider's domain, and refresh the page. If you see a request fire with a 200 response, your analytics is working. Then check the real-time view in your dashboard — your test visit should appear within seconds.
My analytics shows zero visitors but I know I have traffic — what's wrong?
Most likely: (1) the tracking script is not on every page, (2) Content Security Policy is blocking the analytics endpoint, (3) the script tag has a typo in the site key. Open devtools Network tab and verify the analytics request fires on a fresh pageview. The request status will reveal the cause.
Why does the analytics request fire on desktop but not mobile?
Possible causes: corporate or carrier WiFi blocks the analytics endpoint, your CSP differs between mobile and desktop builds, mobile Safari's ITP is suppressing the request. Test on cellular data, not WiFi, to rule out network-level filtering. Verify your CSP allows the analytics domain.
How do I verify analytics on a single-page app?
Open devtools Network tab, navigate through several internal routes, and confirm one analytics request fires per route change. If only the initial pageview is tracked, your SPA framework is not triggering pageview events on route changes — you need to wire that up explicitly. Sleek's tracker handles SPA route changes automatically; some other tools require manual integration.
My real-time view shows nothing — how do I debug?
Two-step diagnosis. First, verify the analytics request is firing (devtools Network tab). If it is firing with a 200 response but real-time is still empty, the request is reaching the server but the site key is mismatched — verify the key in your script tag matches the site in your dashboard. If the request is failing or not firing, the issue is on the page side (CSP, ad blocker, missing script).
How often should I verify my analytics is working?
Always after a deploy that touches global layout, framework upgrades, CSP changes, or analytics-related code. Quarterly verification is good baseline hygiene even when nothing has changed — silent breakage from third-party changes (browser updates, CDN changes) does happen.
Track your own growth loop
Sleek Analytics gives you visitors, sources, pages, devices, and real-time behavior with one lightweight script. No cookies, no GDPR banners.
Related reading
Why Don't My Analytics Tools Show the Same Numbers? (Fix Guide)
A practical 2026 guide to reconciling Google Analytics, Plausible, Sleek, server logs, and ad platform numbers. Why tools disagree and how to figure out which one is right.
GuidesHow to Investigate a Sudden Drop in Website Traffic
Step-by-step debugging guide for when your website traffic drops suddenly. Check the right tools in the right order to identify the cause and recover quickly.
GuidesAdBlocker Impact on Web Analytics: Real Numbers from 2026
How much traffic do ad blockers hide from Google Analytics? Real data, browser-specific behavior, and how privacy-friendly analytics avoid the problem entirely.
ComparisonsSleek vs Google Analytics (2026): Which Is Better for Modern Teams?
Sleek Analytics vs Google Analytics in 2026: side-by-side on setup speed, dashboard clarity, privacy, pricing, and migration. Honest take on when each tool wins.