Session duration is one of the most-watched metrics in GA4, and also one of the most misinterpreted. Before knowing whether your "1m 42s" is good or bad, you need to understand what GA4 actually measures, because it's not what you think.
What GA4 measures (and how)
The session duration in GA4 is the time elapsed between the first event and the last event of a session.
GA4 computes the duration in milliseconds, based on the timestamps of events sent during the visit:
Session duration = timestamp(last event) - timestamp(first event)
The critical point: if the user reads a page for 5 minutes and closes the tab without interacting, GA4 doesn't know they left. There's no "tab close" event. The duration is therefore underestimated as soon as the last interaction isn't recorded.
That's why sites with lots of long content (articles, videos, reading pages) often display durations below reality.
Session duration vs engagement duration
GA4 distinguishes two concepts:
| Metric | What it measures |
|---|---|
Session duration (averageSessionDuration) | Total time between 1st and last event |
Engagement duration (userEngagementDuration) | Actual time the tab was in the foreground |
Engagement duration is more precise: it's based on the user_engagement event that GA4 sends every 5 seconds while the page is active and visible.
In the NarratIQ dashboard, the metric shown is avgSessionDuration, computed from userEngagementDuration / sessions (the GA4 Data API doesn't expose an average session duration directly, so the calculation is done on retrieval).
What counts as a good session duration
There's no universal "right" duration. Everything depends on the site type and the visit's purpose.
| Site type | Typical average duration |
|---|---|
| Landing page (ads, conversion) | 0m 30s to 1m 30s |
| Showcase site (services, freelance, agency) | 1m 30s to 3m |
| Blog / long content | 3m to 7m |
| E-commerce | 2m to 5m |
| Web app or SaaS | 5m to 15m |
A user who lands on a Google Ads landing page, understands the offer in 45 seconds and fills the contact form: that's a successful visit with a short duration. Don't confuse "long duration" with "successful visit".
What session duration really reveals
A very short duration (under 30 seconds)
Two possible interpretations:
1. The content does not match the intent. The user arrives, can't find what they were looking for, leaves. A sign of misalignment between the promise (title, ad, search result) and the page's actual content.
2. The page is too slow. On mobile, if loading takes more than 3 seconds, a significant share of users leaves before even seeing the content. The session duration is then structurally low.
A long duration (over 10 minutes on a showcase site)
Not necessarily a good sign. It may indicate that the user is looking for something without finding it: confusing navigation, unclear CTAs, poorly designed information architecture.
Always cross duration with engagement rate and conversions to get the full picture.
Duration by channel
This is where analysis gets interesting:
- Organic Search: high duration = content matches search intent well
- Social: often short, social traffic is curious but poorly qualified
- Direct: often the longest, these are visitors who know the site
- Paid Search: watch this, if low with a high CPC, the ads are attracting the wrong audience
The 4 levers to improve session duration
1. Polish the introduction
The first 10 seconds on a page decide whether the user stays or leaves. An intro that answers the user's question directly, without beating around the bush, mechanically extends the duration.
2. Structure the content for reading
H2/H3 headings, lists, comparative tables, callouts: anything that lets the eye scan quickly and find the relevant section. The user stays longer when they know they're in the right place.
3. Add relevant internal links
An article that points to 2 or 3 related articles generates multi-page sessions. Duration naturally increases, and GA4 records additional events (better tracking).
4. Integrate interactive elements
Videos, calculators, forms, quizzes: anything that triggers an interaction sends an event to GA4. Duration is better captured, and real engagement increases.
How to present this metric to a client
Raw session duration doesn't speak to a client. What speaks is variation and context:
"The average session duration is 2m 18s, up 12% from last month. Visitors are spending more time on your services pages since the redesign, a good sign for content quality."
Or, if duration drops:
"Session duration dropped 25% this month. Looking by source, Instagram traffic (0m 22s on average) drags the average down. Organic Google traffic stays at 3m 10s. The question is: is the Instagram campaign targeting the right profiles?"
If you generate monthly GA4 reports for several clients, NarratIQ includes session duration, its variation and trend charts in each PDF report automatically.
Going further
Session duration is one of GA4's 4 core engagement metrics. To read it properly, you need to understand the others:
- GA4 engagement rate: the metric that replaced bounce rate. Combined with duration, it gives the qualitative read of traffic.
- GA4 sessions vs users: the most misunderstood distinction: and yet the basis to interpret average duration.
- GA4 page views: duration + page views = signal of real interest in your content.
- GA4 traffic sources: duration varies widely by channel: Direct vs Organic vs Social.