About Tracking

Services

Google Ads Management Meta Ads Management Website Design & Build Local SEO Social Media Management Tracking & Conversions

Ad Platform Tracking

Meta Pixel + CAPI TikTok CAPI LinkedIn CAPI Snapchat CAPI Pinterest CAPI Quora Pixel Bing + UET Tag

Google Ecosystem

Google Ads Tracking GA4 Setup & Audit Google Tag Manager

Advanced Solutions

Server-Side Tracking Looker Studio Offline Conversion
Case Studies Blog Free Checklist Book Free Audit →
GA4 & GTMChildcare Center Chain · 6 LocationsUSA

Every page refresh counted as a new session — the 96% bounce rate was 41%

41%True bounce rate — was 96% due to SPA + duplicate tag issues
8 secAverage session duration before fix — was inflated by false sessions
$18KWebsite redesign cost — validated as successful once tracking was accurate

The situation

A childcare center chain with 6 locations in suburban Chicago had just migrated to GA4. Their web developer reported that GA4 showed a 96% bounce rate and average session duration of 8 seconds. The owner was panicking — their website had just been redesigned and cost $18K.

The problem

The GA4 implementation had a critical error: the GTM container included both a GA4 Configuration tag firing on all pages AND a GA4 Event tag for page_view firing on all pages. Additionally, the website used client-side rendering (Next.js) with pushState navigation — each virtual page navigation triggered a new session_start event because the GA4 tag wasn't configured for single-page app tracking.

What we did

  1. Identified duplicate GA4 tag firing — removed the redundant GA4 Event page_view tag, keeping only the Configuration tag's built-in page_view
  2. Configured GA4 for single-page app tracking using history change trigger in GTM — virtual page navigations no longer trigger new sessions
  3. Added scroll depth tracking via GTM scroll trigger (25%, 50%, 75%, 90%) to capture engagement that wasn't reflected in session duration
  4. Verified in GA4 DebugView — session continuity maintained across page navigations, bounce rate dropped to 41%

Why it worked

Next.js and other SPA frameworks use client-side routing that doesn't trigger full page loads. GA4 by default fires a new session on each actual page load — in a SPA, this means new sessions only when the user first arrives and on full refreshes. All internal navigation is invisible unless history change triggers are configured. Combined with a duplicate page_view tag, every user action looked like a new 0-second session.

“GA4 showed 96% bounce rate right after our $18K redesign. Our developer said GA4 was 'broken.' Saifur found two issues: duplicate GA4 tags causing session inflation, and our Next.js site wasn't configured for SPA tracking. Real bounce rate is 41% and the redesign looks great in the data now.”
Patricia G.
Owner · Childcare Center Chain · USA · Dec 2025