Home/Blog/GA4 Troubleshooting
GA4 Troubleshooting9 min read

GA4 Not Tracking All Traffic? Here Are the 8 Most Common Causes

Missing traffic in GA4? Troubleshoot the most common reasons: consent mode blocking, ad blockers, misconfigured tags, filters, and cross-domain issues.

GA4, missing traffic, troubleshooting, tracking

You are comparing GA4 to your server logs, ad platform data, or another analytics tool, and the numbers do not match. GA4 is showing fewer users. Here are the real reasons and how to fix each one.

1. Consent Mode Is Blocking Data Collection

This is the most common cause in 2026, especially for European traffic. If you implemented Google Consent Mode V2, users who decline cookies are not fully tracked.

How to check: Go to Admin > Data collection and modification > Data streams > Consent settings. If consent mode is active, check what percentage of users are granting consent.

Fix: You cannot force tracking (that would violate GDPR). But you can enable behavioral modeling in Admin > Data Settings > Data Collection. This uses AI to fill gaps from unconsented sessions. It typically recovers 30-60% of missing data.

2. Ad Blockers Are Blocking GA4

uBlock Origin, Brave browser, Firefox Enhanced Tracking Protection, and many privacy extensions block google-analytics.com and googletagmanager.com by default.

Impact: 15-30% of users depending on your audience. Technical audiences block at higher rates.

Fix: Server-side tagging via Google Tag Manager Server Side. This routes tracking through your own domain (e.g., `analytics.yoursite.com`) instead of `google-analytics.com`. This is not trivial to set up but is the only reliable fix.

3. GA4 Tag Is Not on All Pages

The most basic issue. Your GA4 tag might only be on your homepage or main domain, missing subdomains or certain page templates.

How to check:

1. Visit 5-10 different pages on your site

2. Right-click > View Page Source

3. Search for your Measurement ID (`G-XXXXXXXX`)

4. Or use Tag Assistant to scan the whole site

Common culprits:

- Checkout pages on a different platform (Shopify checkout, payment processors)

- Blog on a subdomain (`blog.yoursite.com`) with a different CMS

- AMP pages without GA4

- Single-page application (SPA) not firing virtual pageviews on route changes

4. SPA Routing Not Tracked

If your site is a React, Next.js, Angular, or Vue app, navigating between pages does not trigger a full page load. GA4 enhanced measurement handles this for most history-based routing, but not all.

How to check: Open GA4 Realtime, navigate between pages on your SPA. If only the first page view appears, SPA tracking is broken.

Fix for React/Next.js:

```javascript

// In your route change handler

import { usePathname } from 'next/navigation'

import { useEffect } from 'react'

export function Analytics() { const pathname = usePathname() useEffect(() => { window.gtag?.('event', 'page_view', { page_path: pathname, page_location: window.location.href, page_title: document.title, }) }, [pathname]) return null } `

5. Cross-Domain Traffic Is Breaking Sessions

If users move between your domains (e.g., yoursite.com to shop.yoursite.com or checkout.stripe.com), each domain transition starts a new session unless cross-domain tracking is configured.

Symptom: You see your own domain as a referral source in traffic reports.

Fix: Admin > Data Streams > Configure tag settings > Configure your domains. Add all your domains and subdomains.

6. Data Retention Is Too Short

GA4 defaults to 2-month data retention for exploration reports. If you are comparing data older than 2 months in Explorations, it will show less data.

Fix: Admin > Data Settings > Data Retention > change to 14 months.

Note: Standard reports are not affected by this setting. Only Explorations use the retained user-level data.

7. Filters Are Excluding Traffic

You might have internal traffic filters or developer traffic filters active.

How to check: Admin > Data Settings > Data Filters. Look for any active filters. A common mistake is setting a filter to "Active" during testing and forgetting about it.

8. Thresholding Is Hiding Data

GA4 applies "thresholding" — hiding data in reports when user counts are too low to protect privacy (especially when Google Signals is enabled).

Symptom: Reports show "(other)" or some dimensions are missing. The total numbers in the report are lower than the overview.

Fix: Change the reporting identity to "Device-based" instead of "Blended" in Admin > Reporting Identity. This disables Google Signals for reporting but eliminates thresholding.

How to Quantify the Gap

To understand how much traffic you are actually missing:

  1. Compare GA4 sessions to server-side logs (Cloudflare Analytics, Vercel Analytics, server access logs) for the same period
  2. The delta is your tracking gap, typically 15-35%
  3. If the gap is over 40%, you likely have a configuration issue, not just consent/ad blockers

Check if your GA4 is set up correctly — run your audit →

Check your GA4 implementation

Run a free AI-powered audit to see how your tracking stacks up.

Start Free Audit