Google Analytics 4 ships with a default session timeout of 30 minutes. For most e-commerce and content sites, that default silently destroys the accuracy of your session counts, bounce rates, and conversion attribution. This guide explains exactly why 30 minutes is often the wrong setting, how to diagnose the problem on your own site, and how to choose the timeout value that actually reflects how your users behave.

What Session Timeout Actually Controls

In GA4, a session ends when 30 minutes of inactivity pass between two hits. If a user reads a long article, pauses for 35 minutes, then continues scrolling, GA4 counts that as two separate sessions even though the user never left your site. The session_start event fires again, the session_id increments, and your session count inflates while your per-session engagement metrics deflate.

Session timeout is configured in GA4 under Admin → Data Streams → your web stream → Configure tag settings → Adjust session timeout. The minimum is 5 minutes and the maximum is 7 hours 55 minutes. The default of 30 minutes was inherited from Universal Analytics and was never re-evaluated for the types of sites GA4 was designed to serve.

How to Diagnose Whether Your Timeout Is Wrong

Open GA4’s Engagement → Events report and filter for session_start events. Then open BigQuery and run a query that calculates the gap between consecutive events for the same user. If you see a spike of sessions that start with only one subsequent event and a gap of exactly 30 minutes from the previous session’s last event, your timeout is cutting real sessions in half.

SELECT
  user_pseudo_id,
  ga_session_id,
  MIN(event_timestamp) AS session_start_ts,
  MAX(event_timestamp) AS session_end_ts,
  TIMESTAMP_DIFF(
    TIMESTAMP_MICROS(MAX(event_timestamp)),
    TIMESTAMP_MICROS(MIN(event_timestamp)),
    MINUTE
  ) AS session_duration_min,
  COUNT(*) AS events_in_session
FROM your_project.analytics_XXXXXX.events_*,
  UNNEST(event_params) AS ep
WHERE ep.key = 'ga_session_id'
GROUP BY 1, 2
ORDER BY session_duration_min DESC
LIMIT 1000

Look at the distribution of session_duration_min. If there is a heavy cluster at exactly 0 minutes (one-event sessions) and another cluster at 29–31 minutes, you have split sessions caused by the default timeout.

Industry-Specific Recommended Timeout Values

Different site types have very different natural reading and browsing rhythms. A news article reader finishes a piece in 3–8 minutes and rarely returns within the same mental session. A B2B buyer reading a pricing page might open tabs, answer a Slack message, and return 45 minutes later still in the same decision-making flow. An e-learning student might pause a video for 2 hours and resume without ever navigating away.

  • News and media sites: 15–20 minutes. Users consume content quickly and bounce.
  • E-commerce: 45–60 minutes. Shopping sessions involve comparison, distraction, and return.
  • B2B SaaS and lead gen: 60–120 minutes. Decision-makers research between meetings.
  • E-learning and video: 4–8 hours. Students pause, make coffee, and return.
  • Utility and tool sites: 30–45 minutes. Users may leave a tool open in a background tab.
GA4 Session Timeout Settings: Why 30 Minutes Is Wrong for Your Site

The Engaged Session Threshold Interplay

GA4 defines an engaged session as one lasting more than 10 seconds, having at least one conversion, or having at least two page views. The session timeout setting does not change this 10-second threshold, but it does affect how many sessions get counted at all. When you increase the timeout, you consolidate split sessions, which increases average session duration and tends to increase the engaged session rate.

This means changing session timeout will change your engagement rate metric even if user behavior has not changed at all. If you change the timeout, annotate the date in GA4 using the Notes feature and communicate to stakeholders that historical comparisons across that date are not apples-to-apples.

How to Change Session Timeout in GA4

Navigate to Admin → Data Streams → select your web data stream → click the gear icon (Configure tag settings) → click Show all → select Adjust session timeout. You will see two settings: Session timeout (the inactivity timeout) and Engaged session timer (the minimum duration for an engaged session, default 10 seconds). Change the session timeout to your desired value and click Save.

The change applies to new sessions only. Historical data is not reprocessed. Sessions that were already split in historical data will remain split, which is why diagnosing and fixing this early in a property’s life matters more than retrofitting it years later.

Impact on Conversion Attribution

Session timeout has a surprising and often overlooked effect on conversion attribution. When GA4 splits a real user journey into two sessions, the source/medium of the second session is typically direct or (none) because there is no new referrer. This means your paid campaigns get credited for fewer conversions than they actually drove, because the purchase event fires in a direct session that was really a continuation of the paid session.

GTM Implementation Consideration

If you are using GTM to fire your GA4 tag, the session timeout setting in the GA4 admin UI still applies — it is enforced server-side in GA4’s processing, not in the tag itself. However, if you have custom session logic built into a GTM custom JavaScript variable, you will need to update that logic separately to match the new timeout value, or you will see discrepancies between your custom session calculations and GA4’s native session counts.

Final Recommendation

Audit your session timeout setting today. Pull the BigQuery query above, look at the distribution of session durations, and check whether a cluster of sessions ends at exactly 29–31 minutes. If your site has any content that takes more than 25 minutes to consume, your default timeout is almost certainly splitting real sessions and distorting your data. A one-time change to a more appropriate timeout will give you cleaner session counts, more accurate attribution, and engagement metrics that actually reflect how users interact with your site.

Guide

Leave a Comment