GA4 shows traffic holding steady after a site migration. Pageviews look normal. Sessions look normal. But lead volume in the CRM dropped 30%, 40%, maybe more, and nobody can explain where the inquiries went. The instinct is to blame demand, pull back spend, escalate to the CEO.

That instinct is wrong about half the time. The real question: did you lose buyers, or did you lose the measurement?

Why Pageviews Survive While Lead Events Break

Pageview tracking tends to survive a migration because it's the simplest event in any analytics container. Lead events are fragile by comparison. A common failure mode: the old site fired a generate_lead event when a visitor hit a dedicated thank-you URL. The redesigned site replaced that redirect with an inline AJAX confirmation that never loads a new page. The pageview tag keeps firing. The lead event goes silent.

Three things break independently, and each has a different consequence:

Treating all three as "leads are down" guarantees you'll fix the wrong thing.

Start With CRM Truth, Not GA4

GA4 attributed data can continue updating for up to 12 days due to modeled key events and delayed attribution. A short-term post-migration dip in GA4 may reflect reporting mechanics, not actual performance. Meanwhile, Google Ads, GA4, and your CRM use different attribution methods and reporting windows, which means the numbers will never match perfectly, even when everything is working.

The move: start at the form provider. Pull raw submission records for comparable weekday windows before and after launch (same timezone, same day-of-week, partial launch days excluded). Then pull CRM-created contacts for the same window. If both are stable but GA4 key events dropped, you have a measurement problem. If form submissions declined, you have a collection problem. If submissions are stable but CRM records are missing, you have a delivery problem.

The Debug Sequence That Finds the Break

Step 1: GTM Preview on the live site. Open the affected landing page and connect Tag Manager's Preview mode. Confirm the published container version matches what you expect. Inspect which tags fire on a successful form submission versus a failed one.

Step 2: GA4 DebugView for event validation. Enable debug mode and open GA4 DebugView. Submit a labeled test through each distinct form. Then try an invalid submission. If both produce a generate_lead event, your signal includes failures. Refresh the thank-you page directly; if that also fires the event, your lead count is inflated by non-submissions. The acceptance criterion: one lead event per successful submission, zero on failures, zero on direct thank-you-page visits.

Step 3: Consent path testing. Repeat steps 1 and 2 under each consent choice your site offers. A rejected cookie consent can explain missing measurement without pointing to a broken form.

Step 4: CRM delivery check. For the test submission that passed, inspect your integration logs. Look for rejected fields, authentication failures, or mappings left behind from the old site. A saved contact record doesn't prove a salesperson was notified.

Attribution Breaks Separately From Lead Counts

This is the part teams miss. Lead volume can hold steady while source/medium data falls apart. Redirects in the migration path can strip UTM parameters or click IDs. Cross-domain form embeds can lose referrer information. A consent-mode change can suppress the identifiers your attribution model depends on. Your pipeline report says leads are flat, but your channel report says "direct / none" spiked 40%. That's attribution debris from the migration, not a demand shift. Follow an actual campaign URL through to submission and compare the saved UTM values with CRM fields. If a value disappears mid-path, inspect redirects.

When the Dip Is Real

If CRM and form-provider counts both decline and your tracking passes every check above, the problem isn't measurement. Compare traffic reaching affected landing pages. Check form completion rates by device (mobile layouts introduced during a redesign are a frequent culprit). Google's site-move guidance calls for mapping old URLs to new destinations and monitoring traffic against that map. But don't skip the tracking check to get here faster. A broken handoff disguised as a demand problem will cost you weeks of misdirected budget decisions.

The Hypothesis You Should Write Down

Before you touch a campaign budget: "If we repair [specific break identified in the debug sequence], then GA4 key event volume will return to within 10% of pre-migration baseline within 5 business days, because the form and CRM path are functioning and the measurement gap explains the reported dip."

Success = key event volume recovers to pre-migration range. Guardrail = CRM-created contacts remain stable (confirming the fix is measurement, not a new submission problem). Stop-loss = if key events don't recover within 5 days of the fix, escalate to a broader UX and traffic audit.

Document the failure, the evidence, the fix, and the owner. Then add a submission-to-CRM test to your launch checklist so the next migration doesn't send you back through the same fire drill. The teams that build this check into their release process stop having the "are leads really down" conversation. The ones that don't have it every quarter.