Bounce rate calculator.
Sessions in, bounces in, rate out. Plus the part most calculators skip: what your tool counts as a bounce.
Calculated in your browser, nothing sent anywhere. Bounce rate only means something when you know what your tool counts as an interaction, which is the part of this metric that changed under everyone’s feet.
How do you calculate bounce rate?
Bounce rate is bounced sessions divided by total sessions, as a percentage. If 4,620 of 8,400 sessions ended without a second pageview or any tracked interaction, that is 55%. What counts as a bounce differs between analytics tools, so the same visitors can produce very different rates.
What counts as a bounce?
Four definitions in common use. This is why two tools on the same site can report rates thirty points apart, and why comparing your rate to a benchmark table is close to meaningless.
| Definition | A bounce is | Reports a rate that is | Used by |
|---|---|---|---|
| Single pageview | A session with exactly one pageview, however long it lasted | Higher on content sites | Classic Universal Analytics and most simple analytics tools |
| No engagement | A session under 10 seconds with no conversion and no second view | Lower, because reading counts as engagement | Google Analytics 4, inverted as engagement rate |
| No interaction | A session with no scroll, click, or custom event | Lower still on well-instrumented sites | Tools that track scroll depth and interactions by default |
| Route-change aware | A session with only one view, counting client-side route changes as views | Realistic on single-page apps, wrong if the tracker is misconfigured | Anything correctly wired into an SPA router |
Whichever definition your tool uses, the rate is only comparable to itself. Track the trend on your own pages and ignore cross-site benchmarks.
Why your SPA bounce rate lies.
Tracker fires once, on initial load
- Every client-side route change is invisible to analytics.
- A visitor reading six screens looks identical to one who left immediately.
- Bounce rate climbs toward 100% and stays there no matter what you ship.
- Time on page is also broken, because there is no second event to measure against.
- The giveaway: a bounce rate above 90% on a site people obviously use.
Tracker hooked into the router
- Each route change reports a pageview with the new path.
- Sessions with real navigation stop being counted as bounces.
- Per-page numbers finally line up with what your app actually shows.
- The opposite failure appears if you double-fire on the same route, which pushes bounce rate toward zero.
- Mrkr's tracker handles history API navigation, so client-side routes are counted without extra code.
Engagement says more than a bounce.
Bounce rate reduces a visit to a yes or no. Someone who read your entire article for four minutes and left satisfied is filed next to someone who hit the back button in two seconds, and the number cannot tell them apart.
Scroll depth and time on page can. A page where most visitors reach the bottom is working, whatever its bounce rate says. A page where they stop at 20% has a problem that no bounce percentage was ever going to locate for you.

Reading the number honestly.
Judge the page by its job
A contact page or store locator answers one thing and lets people go. High rate, task done.
Split it by source
Broad social traffic bounces far more than branded search. A moving blend usually means a moving mix.
Bots inflate it
Crawlers hit one page and leave. On one live Mrkr site they ran at 4.1x human pageviews in September 2026.
Check page speed first
A six-second render loses people before they can act. That bounce rate is a performance number.
A very low rate is a bug
Under about 15% is almost always a double-firing tracker or a tag installed twice.
Never optimise the metric
Firing a scroll event on load drops it to zero and improves nothing. Fix why people leave.
Look at what people did, not just whether they stayed
The Mrkr demo shows engagement, scroll depth and per-page behaviour on a fully populated dashboard. No signup, no card, cookieless by default.
Open the live demoWhat should you look at instead?
Bounce rate survives because it is easy to compute, not because it tells you what to do next. Three things that usually do.
Scroll depth
People leaving at 20% of a long page tells you the problem is at the top. That is a location.
The rate split by source and device
Mobile paid social behaving unlike desktop organic is a finding. The blend that hides it is not.
Replays of the bounced sessions
Twenty replays show the banner, the slow hero or the silent form error in ten minutes.
Questions, answered.
Keep reading
- Bounce rate, defined
The four competing definitions and what each one is actually measuring.
- Conversion rate calculator
The rate that pays the bills, and what it takes to move it.
- Core Web Vitals checker
Slow pages produce a bounce rate that is really a speed problem.
- Session replay in Mrkr
Watch the sessions that bounced instead of guessing why they did.
- Analytics for Next.js
Getting client-side route changes counted properly in a single-page app.
- All free Mrkr tools
Browser-only calculators and builders, no signup on any of them.
Your first visitor is already here.
Drop in the script and watch them land. It takes about a minute.