Skip to content

What is bounce rate? And what is a normal bounce rate

Manish SharmaFounder, Statsy8 min read
bounce rate
bounce rate

In short

Bounce rate is the share of visits where a visitor did one thing and left. Universal Analytics counted any single-hit session as a bounce. GA4 reports the inverse of engagement rate, so a session counts as engaged after 10 seconds, a key event or a second pageview. There is no universal normal figure. Judge it against the job the page does.

What is bounce rate?

Bounce rate is the share of visits to your site where the visitor did one thing and left. Nothing else. No second page, no tracked action, no measurable time on the page. What is bounce rate useful for, then? It is a rough signal that a page is not holding the people who land on it.

The trouble starts with that word "nothing". Every analytics tool draws the line in a different place, and the line moved when Google replaced Universal Analytics with GA4. So the same page, on the same day, with the same visitors, can report one bounce rate in GA4, a very different one in a single-page tool, and a third number in a heatmap tool.

So the question people really ask, what is a normal bounce rate for a website, has no single answer until you say which tool and which kind of page. A bounce rate on its own tells you almost nothing. A bounce rate next to scroll depth, engagement time and the job the page is meant to do tells you a lot.

How did Universal Analytics define a bounce?

Universal Analytics counted a bounce as a session with exactly one interaction hit. One pageview, then the session ended with no further hits sent to the server (Analytics Help).

The important part is "hit", not "time". Because a bounced session had only one hit, Universal Analytics had no second timestamp to subtract from the first. A bounced session was recorded with a duration of zero seconds, even if the visitor read the page for six minutes and then closed the tab. Two consequences followed, and both distorted a decade of reporting:

  • Time on page for the last page of any session was always zero, so average time on page was systematically understated.
  • Any site that fired an extra event on load, such as a scroll tracker or a video autoplay event, reported a near-zero bounce rate. Not because visitors engaged, but because a second hit existed.

Plenty of agencies used the second trick to make reports look better, which is one reason old bounce rate benchmarks in blog posts are worthless. You do not know which of those sites fired extra events.

How does GA4 define bounce rate?

GA4 defines bounce rate as the inverse of engagement rate: the percentage of sessions that were not engaged (Analytics Help). To get the bounce rate, GA4 takes 100% and subtracts the engaged sessions.

A session counts as engaged when any one of these is true:

  • It lasts longer than 10 seconds.
  • It has at least one conversion event, called a key event in current GA4.
  • It has 2 or more pageviews or screen views.

So a GA4 bounce is a session that did all three of nothing: under 10 seconds, no key event, one page. That is a much stricter bar than the old one, and it is a better one. A visitor who lands, reads for 30 seconds and leaves is no longer a bounce, because they did what the page asked.

One practical note: the 10 second threshold is configurable per data stream, up to 60 seconds, so two GA4 properties disagree with each other by design.

Why do single-page tools report a different bounce rate?

Because they measure different things, and most of them say so in their docs. A privacy-focused tool that only records pageviews has no "engaged session" concept at all, so its bounce rate is the old definition: one pageview, session over. Plausible, for example, documents bounce rate as the percentage of sessions with a single pageview (Plausible docs).

Other sources of disagreement:

  • Session timeout. GA4 ends a session after 30 minutes of inactivity by default. A visitor who returns after 40 minutes creates a second session, and if that second visit is one page, it is a bounce.
  • Tab visibility. Tools that use the Page Visibility API stop the clock when a visitor switches tabs (MDN). Tools that do not will credit background time as engagement.
  • Extra events on load. Anything that fires automatically, including some scroll and outbound-link trackers, can end a bounce before the visitor does anything.
  • Bot filtering. Tools filter known crawlers differently, and unfiltered bot traffic is almost entirely single-page.

The lesson is not that one tool is right. Compare bounce rate to itself, in one tool, over time. Never across tools, and never against someone else's site.

What is a normal bounce rate for a website?

There is no single normal bounce rate for a website, and anyone quoting one number across all sites is guessing. Bounce rate depends on what the page is for, where the traffic comes from and how the tool counts. What you can do is form an expectation from the job the page does.

Page type What one visit usually means Expected direction Read it with
Blog post or glossary entry Question answered, visitor leaves satisfied High Scroll depth, engagement time
Docs page Answer found, back to work High Time on page, search terms
SaaS marketing home page Visitor should reach pricing or signup Low Signup starts, path to /pricing
Logged-in app screen Visitor should move through the product Very low Task completion, funnels
Paid landing page Depends entirely on the ask Split Conversion rate, form starts

That last row is the one people get wrong. A landing page whose only ask is a phone call or a click to an app store will show a high bounce rate and convert brilliantly, because the conversion happens off the page. A landing page whose ask is a multi-step form should show a low bounce rate, because step one is a second interaction. Same channel, same spend, opposite expectations. Decide which one your page is before you judge the number.

When is a high bounce rate fine?

A high bounce rate is fine whenever a single page can complete the visitor's task. It is a problem only when the page needs a second step and does not get one.

Cases where high is healthy:

  • Reference content. Opening hours, a pricing table, an API error code, a conversion calculator. The visitor got the answer.
  • Informational search traffic. Someone searching a definition wants a definition, not a funnel.
  • Contact pages where the action is a phone number tap or an email client opening.
  • Pages whose main action is an outbound click. Statsy tracks outbound link clicks automatically as the "outbound" goal, so those visits show as goal completions rather than dead ends.

Cases where high is a genuine warning:

  • Slow pages. Loading performance is the most common mechanical cause, and Largest Contentful Paint is the metric to check first (web.dev).
  • Mismatch between ad or search promise and what the page delivers.
  • A page that asks for something before it has earned it, such as an email gate above the fold.
  • One traffic source bouncing far harder than the rest, which usually means bots, a broken UTM or a badly targeted campaign.

How do you lower bounce rate?

Fix the reason people leave, not the metric. Every technique below changes visitor behaviour first and the number second, which is the only order that is worth anything.

  1. Segment before you act. Split bounce rate by source, device and landing page. A site-wide figure hides the one channel that is broken.
  2. Fix the slowest landing pages. Measure Largest Contentful Paint on real visits, not on your laptop. Mobile visitors on a poor connection bounce before anything renders.
  3. Match the page to the promise. The headline should repeat the words in the ad, the search query or the link the visitor clicked.
  4. Put the next step above the fold. One clear action, visible without scrolling, phrased as what the visitor gets.
  5. Remove the interruptions. Interstitials, autoplaying video and cookie walls that cover the content all push people back to the results page.
  6. Give related content a real home. Relevant internal links near the end of an article earn second pageviews honestly.
  7. Watch what actually happens. Session replays and heatmaps show the rage clicks, the dead scroll and the form field where people stop. Statsy records replays and heatmaps with a revenue overlay, so you can see the sessions that earned money and the ones that stalled.

Never fire a dummy event on load to suppress the number. You lose the signal and keep the problem.

How do scroll depth and engagement time give a better picture?

Because they measure degrees, and bounce rate measures a binary. A bounce tells you a visit ended. Scroll depth and engagement time tell you how far it got before it ended, which is the part you can act on.

Together they separate three very different visits that bounce rate shows as identical:

  • Scrolled 90%, 3 minutes of engagement time, left. The page worked. Give it a next step.
  • Scrolled 10%, 6 seconds, left. The page failed on the promise or on speed.
  • Scrolled 100% in 2 seconds, left. Almost certainly a bot or a prefetch.

GA4 reports average engagement time per session as engagement time divided by sessions (Analytics Help), and that time only accrues while the tab is in the foreground. Statsy tracks scroll depth per page automatically, and scroll goals fire at a percentage you choose, so "reached 75% of the article" becomes a measurable outcome instead of a guess. Turn it off with data-track-scroll="false" if you do not want it. Microsoft Clarity is another free option for recordings and heatmaps (clarity.microsoft.com).

What should you do next?

  1. Write down, for each of your top 10 landing pages, what a successful single visit looks like. Some of them will be one-page successes, and you should stop treating those as failures.
  2. Check which bounce rate definition your tool uses before you quote the number to anyone. GA4 gives you the inverse of engagement rate; most single-page tools give you the old one-pageview definition.
  3. Segment bounce rate by traffic source and device, and fix the worst single combination rather than the site average.
  4. Turn on scroll depth and set a scroll goal on your longest pages so you can tell a satisfied reader from an instant exit. See /docs/features/goals for how goals are configured.
  5. Watch ten replays of bouncing sessions on your worst page. Ten sessions usually explain more than a month of dashboards.

Questions people ask

What is a good bounce rate?

A good bounce rate is one that fits the page's job. Reference pages, blog posts and docs answer the question in one visit, so high is healthy. Signup flows, app screens and multi-step landing pages need a second interaction, so high is a warning.

Does GA4 still have bounce rate?

Yes. GA4 reinstated bounce rate as the inverse of engagement rate: the percentage of sessions that were not engaged. A session is engaged after 10 seconds, a key event, or 2 or more pageviews, so GA4 bounce rates run lower than Universal Analytics ones.

Why is my bounce rate 0% or 100%?

0% usually means an event fires automatically on every page load, ending the bounce before the visitor acts. 100% usually means the tracking script is installed twice, missing on inner pages, or the traffic is bots. Check your tag setup first.

Is a high bounce rate bad for SEO?

Google does not use your analytics bounce rate as a ranking factor. It has no access to it. What matters is whether visitors find the answer, which the same fixes improve: faster pages, a headline that matches the query, and content that delivers.

How is bounce rate different from exit rate?

Bounce rate counts sessions that started and ended on one page. Exit rate counts the share of views of a page that were the last page in the session, including sessions that began elsewhere. Every bounce is an exit; most exits are not bounces.

Written by Manish Sharma, Founder, Statsy

Building Statsy, web analytics that connects every visit to the money it made. @talksbymanish on X.

All posts