Conversion Benchmarks

What Is the Average Bounce Rate for Developer Tools?

TL;DR

Public benchmarks put the average bounce rate for B2B/SaaS sites roughly in the 40–60% range, with landing pages often higher. But 'bounce' is defined differently across tools, so the number matters far less than measuring your own consistently. In PostHog, bounce is best computed as single-pageview, no-interaction sessions.

Public benchmarks put the average bounce rate for B2B and SaaS sites roughly in the 40–60% range, with marketing landing pages frequently higher. For developer tools specifically there's no single authoritative figure — so treat that band as a loose reference and measure your own.

What the public sources say

  • Contentsquare's Digital Experience Benchmark report aggregates bounce and engagement across millions of sessions by industry; software/B2B typically sits in the middle of the pack, broadly in the 40–60% band. (contentsquare.com)
  • CXL and other CRO publications have long cited average website bounce rates clustering around 40–55%, while noting landing pages skew higher. (cxl.com)
  • Google's own "Find out how you stack up" research popularized the link between slow mobile load times and rising bounce — a reminder that bounce is as much a speed signal as an intent signal. (thinkwithgoogle.com)

These are different methodologies sampling different populations, so don't anchor on a precise number. The honest takeaway: 40–60% is normal; well above that on a high-intent page is worth investigating.

Why "bounce" is slippery

The metric isn't comparable across tools because the definition changed:

  • Universal Analytics: a bounce was a single-page session with no second pageview.
  • GA4: bounce became the inverse of an engaged session (10+ seconds, a conversion event, or 2+ pageviews).
  • PostHog: no one fixed definition ships — you compute it from raw events, which means you decide what counts as engagement.

So a "55% bounce rate" means nothing unless you state the definition behind it.

Measure your own true bounce rate in PostHog (the unique part)

Here's a defensible definition — a session with exactly one pageview and no click — expressed in HogQL over 30 days:

SELECT
  count() AS sessions,
  countIf(pageviews = 1 AND clicks = 0) AS bounced,
  round(countIf(pageviews = 1 AND clicks = 0) / count() * 100, 1) AS bounce_rate_pct
FROM (
  SELECT
    properties.$session_id AS sid,
    countIf(event = '$pageview') AS pageviews,
    countIf(event = '$autocapture' AND properties.$event_type = 'click') AS clicks
  FROM events
  WHERE timestamp > now() - INTERVAL 30 DAY
    AND properties.$session_id != ''
  GROUP BY sid
)

Illustrative sample output:

sessions bounced bounce_rate_pct
9,440 4,860 51.5

Because you own the inner query, you can tighten the definition — for instance, counting a session as engaged if max scroll passed 50% ($prev_pageview_max_scroll_percentage) even with one pageview. State your definition whenever you report the number.

Don't chase a lower number blindly

A high bounce rate is only a problem when the page was meant to start a journey and didn't. A glossary article that answers the question and sends the visitor away "bounces" by definition and is doing its job. Segment bounce by page and intent, compare each page to its own history, and act where high bounce contradicts the page's purpose.

Frequently asked questions

What is a good bounce rate for a SaaS website?

Roughly 40–60% is typical for B2B/SaaS sites according to public benchmarks, with marketing landing pages often higher. Lower isn't automatically better — a high bounce rate on a single-answer page (like a glossary post) can be perfectly healthy if the visitor got what they came for.

Why is bounce rate defined differently in different tools?

Universal Analytics defined a bounce as a single-page session with no second pageview; GA4 redefined it as the inverse of 'engaged sessions' (10+ seconds, a conversion, or 2+ pageviews). PostHog doesn't ship one fixed definition, so you compute it from events. Always state which definition you're using.

How do I measure bounce rate in PostHog?

Count sessions with exactly one pageview and no meaningful interaction, divided by total sessions. Because PostHog gives you the raw events, you control the definition — for example, treating a session with a scroll past 50% or a click as 'not bounced.'

Velyr is an AI growth agent that ships one weekly conversion fix as a GitHub Pull Request — you approve it over Telegram, and it rolls itself back if the numbers drop.

Start the Growth Agent