Skip to content

Analytics 8 min read Updated September 23, 2026

Why does GA4 show fewer leads than my CRM?

Short answer

GA4 usually shows fewer leads than your CRM because of measurement gaps, not because leads are missing: cookie consent banners blocking tracking, ad blockers, a form that fires no conversion event, or manually entered CRM leads that never had a tracked session at all. Compare event setup and CRM entry sources side by side to find which gap applies.

Key facts

  • GA4 only counts a lead when a specific event, such as a form submission or a phone call, fires and is configured as a conversion; a lead your CRM received through any other path never appears in GA4 at all.
  • Cookie consent banners that block analytics tags until a visitor clicks accept mean every visitor who ignores or declines the banner can convert without GA4 ever recording the session.
  • Ad blockers and browser privacy features built into Safari and Firefox routinely block Google's analytics script from loading, which removes that visitor's entire session, including any conversion, from GA4's data.
  • A CRM often contains leads added manually by staff, imported from a spreadsheet, or entered from a phone call that never touched the website, none of which GA4 has any way to see.
  • GA4's own attribution model and session timeout rules can also split or merge a visitor's activity differently than your CRM does, which shows up as a numbers mismatch even when both systems are working correctly.

GA4 And Your CRM Are Not Counting The Same Thing

GA4 measures what happened on your website, through events it was specifically told to track. Your CRM measures your actual sales pipeline, however a lead entered it, including ones that never touched a tracked page at all. A gap between the two numbers is not automatically a bug in either system; it is often two different measuring instruments looking at overlapping but not identical territory.

Start by checking how leads actually arrive in your CRM. If any portion come from phone calls that were not run through a call tracking number, walk-ins, referrals entered manually, or an old spreadsheet import, those were never going to appear in GA4, because GA4 only knows about activity that happened on the site and fired a tracked event.

Once you separate out leads that could never have shown up in GA4 from leads that came through the website and still did not appear, you are left with a much smaller, more specific problem to solve.

If your site shows a cookie consent banner and analytics tags only fire after a visitor actively accepts, every visitor who closes the banner without clicking accept, or who never sees it because they already have cookies blocked, converts invisibly to GA4. This is one of the largest and least visible sources of undercounting on sites with a consent requirement.

Separately, browser features in Safari's Intelligent Tracking Prevention and Firefox's Enhanced Tracking Protection, along with dedicated ad blocker extensions, can prevent Google's analytics script from loading in the first place for a meaningful share of visitors. Neither situation is a broken tag; the tag simply never gets the chance to run.

Google's Consent Mode can model some of this missing traffic using aggregated signals rather than individual cookies, but it estimates rather than counts exactly, so even a correctly configured Consent Mode will not close the gap completely.

The Form Or Call Might Not Fire A Tracked Event

Even without consent or blocking issues, a lead source can simply not be wired to fire a GA4 event. Check every way a lead can reach you: the main contact form, any secondary or embedded form, a click-to-call phone number, a chat widget, and a booking tool, and confirm each one actually fires a distinct, marked conversion event in GA4.

A common specific gap is a form embedded from a third-party tool, such as a booking or scheduling widget, that submits inside an iframe; GA4's standard form tracking often cannot see activity happening inside that iframe unless it was deliberately wired up to report back.

Use GA4's DebugView or a real test submission on each lead path to watch whether the event actually fires in real time, rather than assuming it does because it was set up once, possibly before the form or widget was changed.

Reconciling The Two Numbers Going Forward

You will likely never get GA4 and your CRM to match exactly, and that is fine; the goal is to understand and account for the gap, not eliminate it entirely. Add a lead source field in your CRM so every entry records whether it came from the website, a phone call, a referral, or manual entry, which lets you filter to an apples to apples comparison against GA4.

For the leads that did come through the website, fix the specific tracking gaps you found: add offline conversion imports for tracked phone calls, confirm iframe-embedded forms report events correctly, and review your consent setup with whoever manages it to be sure it is not blocking more than it needs to.

Once the tracked, website-sourced numbers in both systems line up reasonably closely, you can trust GA4 for what it is actually good at: telling you which pages and channels are driving the leads you can see, while your CRM stays the source of truth for total pipeline.

Related questions

Want a second opinion on your situation?

Get a free, no-obligation proposal. We’ll look at your site and your market and tell you honestly what we’d do — and what we wouldn’t.

Get your free proposal

Keep reading

More questions

All 366 questions