Average session duration and its blind spots
Average session duration is the mean length of sessions. Its core blind spot: duration is measured from the timestamps of events, so the time spent on the final page of a session — the exit page — typically counts as zero because no later event marks its end. This systematically undercounts real reading time, and GA4 replaced it with average engagement time, which is measured differently.
What this means
Average session duration is total session time divided by the number of sessions. Session time is derived from the gap between the first and last event in the session. Because the timer needs a 'next' event to mark where time accrues, the final page in a session — the one the visitor leaves from — usually contributes zero duration.
Why it has blind spots
The exit-page-zero problem means single-page sessions (bounces) often record as 0:00 even if the visitor read for minutes, dragging the average down. GA4 addressed this by measuring 'engagement time' — the time a page is actually in the foreground, tracked while the tab is visible — rather than inferring duration from event gaps. The two metrics are not interchangeable.
- Last page of a session typically counts zero time
- Single-page sessions often record as 0:00
- GA4 uses foreground engagement time, measured differently
How it appears in analytics and logs
A session duration figure understates real time because the exit page contributes none. Use it for relative comparison, not as a true measure of how long people stayed.
Diagnostic use case
Treat average session duration as a rough, downward-biased proxy for attention, and prefer GA4's engagement-time metrics when foreground time matters.
What WebmasterID can help detect
WebmasterID computes time-on-page and engagement from first-party event timing, so duration signals do not rely on third-party cookies.
Common mistakes
- Reading average session duration as true time-on-site.
- Comparing UA session duration to GA4 average engagement time.
- Ignoring that exit pages contribute no measured time.
Privacy and accuracy notes
Duration is computed from event timestamps, not from tracking a person across sites. No personal identifiers are required.
Related pages
- Average engagement time (GA4)
Average engagement time is a GA4 metric for how long your site or app was in the foreground and focused, averaged per active user or per session. Unlike classic session duration, it is measured directly from visibility — the timer pauses when the tab is hidden or backgrounded. That makes it a more honest attention signal, but it is GA4-specific and not comparable to older duration metrics.
- Sessions: what a session is and when it resets
A session is a group of interactions from one visitor within a bounded time window. It starts on the first event and ends after a period of inactivity (commonly 30 minutes, configurable). The reset rules differ by tool — and historically Universal Analytics also restarted sessions at midnight and on a new campaign — so the same traffic produces different session counts in different products.
- Time on page and why it is unreliable
Time on page estimates how long a visitor spent on a page, but classic tools infer it from the gap between consecutive pageview timestamps. That means the last page in a session — and every single-page session — records zero time, because there is no later event to subtract from. It systematically undercounts, which is why GA4 switched to foreground engagement time.
- Website observability
Read engagement time from first-party events.
Sources and verification notes
- Google — Universal Analytics: how time on page and session duration are calculated
- Google — [GA4] Average engagement time
Last reviewed 2026-06-24. Facts are checked against primary/official sources where available; uncertain specifics are marked “Data not yet verified” rather than guessed.