What is bounce rate?

Bounce rate is the share of sessions with only one interaction. The formula, a worked example, and why single-page apps report near-zero bounce rates.

What is bounce rate?

Bounce rate is the share of sessions that end without a second interaction: one page loads, nothing else is recorded, and the visitor leaves. It is written as a percentage of all sessions. A high bounce rate can mean the page failed, or it can mean the page answered the question in one screen.

The formula.

Bounce rate = (single-interaction sessions / total sessions) x 100

single-interaction sessions
Sessions in which exactly one tracked interaction fired, normally one pageview and nothing after it.
total sessions
Every session in the period, including the single-interaction ones. Bots and known crawlers should already be excluded.

The formula is trivial. What varies between tools, and what makes cross-tool comparison meaningless, is the definition of an interaction.

A worked example.

A marketing site over 30 days, after bot filtering.

Sessions8,400
Sessions with one pageview and no other event5,124
Calculation5,124 / 8,400

Bounce rate = 61%

61% sounds alarming until you split it. If most of those sessions landed on a blog post, read for two minutes and left satisfied, the number is describing a content site working normally, not a leak.

What counts as a bounce?

A bounce is a session with exactly one recorded interaction. The visitor arrives, one pageview fires, and nothing else reaches the analytics tool before the session expires. There is no second page, no tracked click, no form submit, no custom event.

That definition sounds precise, and it is, but it depends entirely on what your analytics counts as an interaction. Move the boundary and the number moves with it:

  • Count only pageviews, and a visitor who read for six minutes and clicked three accordions is a bounce.
  • Count outbound link clicks as interactions, and the same visit stops being a bounce.
  • Fire a timing event after fifteen seconds, and almost nothing is a bounce any more. This is what Google Analytics 4 did when it replaced bounce rate with engagement rate.

This is why a bounce rate copied from one tool into a report next to a bounce rate from another tool is not a comparison. It is two different questions with the same label.

If you already have the session counts and just want the number, the free bounce rate calculator does the arithmetic and shows the result against the range for your page type.

Why single-page app bounce rates lie

In a single-page application, navigation happens in the browser. React Router, the Next.js app router and Vue Router change the URL without a document load. If your tracker only fires on page load, a visitor who moves through six screens produces exactly one pageview, and the whole session is filed as a bounce.

Teams discover this as an impossible number: a 95% bounce rate on a product that people demonstrably use for twenty minutes. The fix is to track client-side route changes, not to explain the number away.

The opposite failure is just as common. Tools that auto-fire a scroll or timer event turn the bounce rate into a near-zero constant that no longer distinguishes a good page from a bad one. A metric that never varies is not a metric.

Mrkr tracks history API navigations by default, so a route change in a single-page app counts as a pageview. It does not auto-fire timing events, so the bounce rate keeps its meaning.

Mrkr engagement view showing scroll depth and time on page.
Engagement time and scroll depth for each page, which is what a bounce rate was always trying to approximate. Open it in the live demo.

What is a normal bounce rate?

Bounce rate is only interpretable against a baseline for the same kind of page. These are the ranges most teams land in. They are directional, not a standard, and your own trend line is worth more than any of them.

Page or site typeTypical rangeWhy
Blog post or documentation page65% to 90%The visitor came for one answer, got it, and left. Success looks like a bounce.
Marketing landing page40% to 70%One page, one offer. The only non-bounce path is the CTA.
Homepage of a multi-page site30% to 50%It exists to route people onward, so a bounce here is a real failure.
Ecommerce category or product page20% to 45%Browsing behaviour naturally produces several pageviews.
Web app after loginUnder 20%If it is higher, you are probably not tracking client-side navigation.

Ranges are directional patterns from published industry reporting, not measured Mrkr data. Treat them as a sanity check on your own number, never as a target.

See it on real data

The live demo is a fully populated dashboard with real demo traffic. No signup and no card required.

Open the live demo

How to make bounce rate useful again

Segment before you judge

A site-wide bounce rate averages the blog with the pricing page and tells you nothing. Bounce rate per landing page is actionable; bounce rate for the whole site is a mood.

Pair it with engagement time

A 90% bounce rate with a three-minute median engagement time is a working reference page. A 90% bounce rate with a four-second one is a broken page or the wrong traffic.

Split by source

Paid social usually bounces far harder than organic search on the same page. If a campaign's bounce rate is 40 points above the page average, the ad copy is promising something the page does not deliver.

Filter bots first

Crawler traffic is single-page by nature and inflates bounce rate directly. On one live site running Mrkr, filtered bot hits ran at 4.1 times the human pageviews over 30 days. Unfiltered, that noise would dominate the metric.

How Mrkr measures it

Mrkr records a bounce when a session contains a single pageview and no subsequent event, with client-side route changes counted as pageviews so single-page apps report honestly. Known bots and crawlers are excluded before the calculation, not after.

Alongside it, Mrkr reports engagement time and scroll depth per page, which is the thing bounce rate was always a crude proxy for. Reading them together is the difference between knowing that people left and knowing whether they got what they came for.

Bounce rate is computed from cookieless session data by default, so nothing is stored on the visitor's device to produce it.

Questions, answered.

Related terms.

  • What is good bounce rate?

    There is no universal good bounce rate.

  • What is exit rate?

    Exit rate is the share of views of a given page that were the last page of the session.

  • What is engagement rate?

    Engagement rate is the share of sessions that met a defined engagement threshold rather than leaving immediately.

  • What is time on page?

    Time on page is how long a visitor spent on one page before moving to the next.

  • What is session?

    A session is one continuous visit to a site: a group of pageviews and events from the same visitor with no long gap between them.

Where this shows up in Mrkr

Your first visitor is already here.

Drop in the script and watch them land. It takes about a minute.