Bounce rate and session duration are key engagement metrics that tell you how visitors interact with your website. This guide explains how these metrics work and how to improve them.
Bounce Rate
What is Bounce Rate?
Definition: The percentage of visits (sessions) with exactly one page view. A visit ends after 30 minutes without activity (the default, you can change it per site). The unit is the visit, not the visitor: one person can make several visits.
Formula:
Bounce Rate = Single-Page Sessions / Total Sessions × 100
For example, 1,000 visits of which 600 had only one page view give a bounce rate of 60%.
What Counts as a Bounce?
A visit is a bounce when it has exactly one page view. Nothing else is taken into account: time on page, scrolling, clicks, form submits, video plays, custom events and goals do not turn a single-page visit into a non-bounce. Someone who reads one page for ten minutes and then leaves is still a bounce.
What Doesn't Count as a Bounce?
A visit with two or more page views is never a bounce, however short it is. These all count as page views:
- Every page load, including a reload
- Every route change inside a single-page app (pushState, replaceState, back and forward) that changes the path or the query string
- A page restored from the browser's back/forward cache
A change of only the #hash is not a page view. Bot traffic is excluded, and when you apply a filter or segment, the bounce rate is recalculated for the matching visits only.
Compared With Other Tools
Universal Analytics, Fathom, and Matomo or Plausible (as long as no custom events are sent) use the same single-page definition. Google Analytics 4 does not: its bounce rate is 100% minus the engagement rate, and a session counts as engaged when it lasts longer than 10 seconds, has a key event, or has 2 or more page views. A one-page visit of 30 seconds is a bounce in Zenovay but not in GA4, so GA4 usually shows a lower bounce rate for the same site. Neither number is wrong: they measure different things. See Data discrepancies for more.
If you imported history from another tool, the imported days keep that tool's own bounce rate (for GA4, its engagement-based value). Imported days without a bounce rate are left out of the bounce rate.
Interpreting Bounce Rate
Context Matters
High bounce rate isn't always bad:
| Scenario | High Bounce OK? | Why |
|---|---|---|
| Blog post | Yes | Reader found their answer |
| Contact page | Yes | User got phone number |
| Landing page | No | Want them to convert |
| E-commerce | No | Want them to browse |
Benchmarks by Industry
| Industry | Average Bounce Rate |
|---|---|
| Retail/E-commerce | 20-45% |
| B2B | 25-55% |
| Lead Generation | 30-55% |
| Content Sites | 40-60% |
| Landing Pages | 60-90% |
| Blogs | 65-90% |
Red Flags
Investigate if:
- Bounce rate suddenly increases
- Key pages have unusually high bounces
- Paid traffic has high bounce rate
- Mobile bounce much higher than desktop
Improving Bounce Rate
Content Improvements
Match Expectations
Ensure page content matches what visitors expected (from search, ads, links).
Clear Value Proposition
Communicate value immediately above the fold.
Engaging Content
Use compelling headlines, images, and formatting.
Clear Navigation
Make it obvious what visitors should do next.
Technical Improvements
- Improve page load speed
- Ensure mobile responsiveness
- Fix broken functionality
- Remove intrusive pop-ups
Call-to-Action Improvements
- Add clear CTAs
- Include internal links
- Suggest related content
- Link interactive elements (calculators, demos) to a follow-up page
Session Duration
What is Session Duration?
Definition: The length of time a visitor spends on your site in a single session.
How It's Calculated
Duration = Last activity timestamp - First activity timestamp
Important: Only tracks time between events. Final page view time isn't captured (no following event).
Session Duration Limitations
- Single-page sessions show 0:00
- Idle time is included
- Background tabs count until timeout
- Estimated for sessions still active
Interpreting Session Duration
Benchmarks
| Site Type | Good | Average | Poor |
|---|---|---|---|
| Blog | 3+ min | 2-3 min | <2 min |
| E-commerce | 5+ min | 3-5 min | <3 min |
| SaaS | 10+ min | 5-10 min | <5 min |
| News | 4+ min | 2-4 min | <2 min |
Context for Duration
Longer isn't always better:
- Task completion site: Short = efficient
- Entertainment site: Long = engaged
- Support site: Short = found answer quickly
Improving Session Duration
Content Strategy
- Add more related content
- Include embedded media
- Create content series
- Implement infinite scroll
Navigation & UX
- Clear internal navigation
- Related post suggestions
- "Read next" features
- Breadcrumb navigation
Engagement Features
- Comments section
- Interactive tools
- Quizzes or calculators
- User-generated content
Bounce Rate Has Blind Spots
Bounce rate alone can be misleading: a single-page visit isn't always a failure. Someone who reads your whole blog post, finds the answer they came for, then leaves still counts as a bounce, even though the visit was a success.
Read bounce rate alongside other signals rather than in isolation:
- Session duration tells you whether single-page visitors actually engaged with the page or left right away.
- Scroll depth shows how far down a page visitors read (see Scroll depth).
- Goals and events capture meaningful actions (form submits, clicks, conversions) that a raw bounce count can't.
A page with high bounce and high session duration is usually doing its job. A page with high bounce and near-zero duration is the one to investigate.
Comparing Bounce and Duration
The Relationship
| Scenario | Bounce | Duration | Meaning |
|---|---|---|---|
| High bounce, short duration | Bad | Bad | Content not meeting expectations |
| High bounce, long duration | OK | Good | Found answer on one page |
| Low bounce, short duration | OK | OK | Browsing but not deep engagement |
| Low bounce, long duration | Good | Good | Engaged multi-page visit |
Segmenting These Metrics
By Traffic Source
Compare bounce rates by source:
- Organic: Usually lower bounce
- Social: Often higher bounce
- Paid: Should be optimized
By Device
Compare by device:
- Desktop: Usually better engagement
- Mobile: Often higher bounce, shorter duration
By Page
Identify problem pages:
- Highest bounce rate pages
- Lowest duration pages
A page's bounce rate is entry-based: it counts only the visits that started on that page (see Page performance).
Reporting on Engagement
Key Metrics to Track
| Metric | What It Shows |
|---|---|
| Overall bounce rate | Site engagement health |
| Bounce rate by source | Traffic quality |
| Session duration | Engagement depth |
| Pages per session | Content discovery |
Trend Analysis
Track week-over-week:
- Are bounces increasing?
- Is duration declining?
- Correlate with changes made
Common Issues
Bounce Rate Too High
Investigate:
- Page load speed
- Content relevance
- Mobile experience
- Technical errors
- Pop-ups/interruptions
Session Duration Too Low
Check:
- Content quality
- Internal linking
- Navigation clarity
- Technical issues
- User intent match
Tracking Does Not Lower Bounce Rate
Bounce rate only looks at page views:
- Scroll tracking and heatmaps do not lower it
- Video tracking, custom events and goals do not lower it
- Only a second page view turns a visit into a non-bounce
What does change it is how page views are recorded. If the tracking script is on a page twice, the bounce rate drops close to zero (see Duplicate install). In a single-page app, route changes count as page views, so a visitor who moves to another route is not a bounce.
Best Practices
Regular Monitoring
| Frequency | Action |
|---|---|
| Weekly | Check overall trends |
| Monthly | Compare to previous month |
| Quarterly | Deep dive analysis |
Action Framework
- Identify pages with poor metrics
- Analyze potential causes
- Implement improvements
- Measure impact
- Iterate