Session counts changed materially in GA4. If your team still expects Universal Analytics session behavior, you will misread trend shifts, over-diagnose normal differences, and waste time chasing problems that are really just methodology changes.
How GA4 counts sessions
In GA4, a session starts when the platform records asession_startevent. Sessions still use an inactivity timeout, but they do not restart at midnight and they do not automatically restart when campaign parameters change mid-visit the way Universal Analytics sessions did.
That means the same user journey can legitimately produce fewer sessions in GA4 than it would have produced in Universal Analytics. This is often a reporting-definition difference rather than a broken implementation, and it sits alongside other shifts covered in ourGA4 vs Universal Analytics migrationguide.
Default inactivity timeout
Automatic midnight session reset in GA4
Model GA4 uses to derive session metrics
Why your session totals changed after migration
The most common reason is that GA4 removed two major session split behaviors from UA: midnight resets and campaign-change resets. If your traffic includes long browsing journeys, late-night activity, or multiple channel touches in one visit, the session gap can be noticeable even with correct tagging.
A second reason is implementation quality. Duplicate tags, broken consent timing, missing page views in SPAs, or internal traffic contamination can all distort session counts. Misconfiguredreferral exclusionsare a particularly common cause of session inflation when payment gateways or cross-domain hops are involved. The key is to separate expected platform differences from true measurement defects.
What to audit before calling it a problem
- Check whether the comparison is GA4 vs UA rather than GA4 vs GA4 — and whether you are comparingUser acquisition vs Traffic acquisitionreports, since the two count sessions differently.
- Review consent handling and confirm analytics hits are not being suppressed unexpectedly.
- Validate page_view behavior on SPA routes and checkout flows.
- Confirm there is no duplicate Google tag or duplicate GTM setup.
- Review internal-traffic and developer-traffic filtering.
Need to check whether a session drop is a real tracking issue or just a GA4 methodology difference?
When the gap does indicate a data issue
Treat it as a real problem when the session gap appears suddenly inside GA4 itself, when it lines up with a deployment or consent change, or when sessions fall while other operational indicators suggest traffic did not actually decline.
Sudden breaks are usually more meaningful than historical differences between platforms built on different session rules. Pair session investigations with a check ofengagement rate: if engagement holds steady while sessions move sharply, the cause is more likely a counting definition than a real traffic change.
Session counting checklist
- The team understands GA4 sessions do not reset at midnight
- The team understands campaign changes do not automatically create a new session in GA4
- UA-to-GA4 comparisons are not treated as parity checks
- Consent, SPA navigation, and duplicate tags have been reviewed before diagnosing a session-count issue
- Sudden GA4-to-GA4 session drops are investigated against releases and implementation changes
Related guides to read next
GA4 vs Universal Analytics migration
What changed between UA and GA4, and which differences are structural rather than broken.
GA4 engagement rate explained
Another metric that changed meaningfully between UA and GA4.
Why direct traffic is too high
A common companion problem when session attribution and session quality are being misread.
Review session counting in GA4
GA4 Audits helps distinguish expected GA4 session behavior from real implementation problems such as duplicate tags, consent failures, and route-tracking gaps.