Bounce rate and visit duration that measure attention
Published 28 October 2026 · 6 min read

Bounce rate and visit duration are two of the oldest figures in web analytics, and two of the most misread. A blog post that answers its question completely can have a terrible bounce rate. A visit that left a tab open over lunch can have a wonderful duration. Both figures are only as good as how they are counted, and the way they were long counted measured the wrong thing.
This article covers what went wrong with the old way, how counting the time a page is actually visible fixes it, and how to read the two figures once they mean what they say.
What went wrong with time between events
The classic way to measure time on a site was to subtract: the time of the visitor's last event minus the time of their first. That has two flaws.
- The last page has no end. Nothing is sent when someone stops reading, so the time spent on the last page of a visit is never counted. A visit that sees one page, which is most visits to an article, lasts zero seconds however long it was read.
- Background time counts. Between two events, a tab that sat hidden behind others for twenty minutes counts the same as twenty minutes of reading.
And bounce rate, defined as the share of visits that saw one page, calls the reader who read an article to the end a bounce, the same as someone who left after a second.
Count the time the page is visible
Browsers say when a page is shown and when it is hidden: when the tab is switched, the window is minimised or the page is closed. Counting only the time between being shown and being hidden measures what the figure was always meant to: time the page was in front of someone.
In the example, a visitor reads the first page for 40 seconds, leaves the tab hidden behind others for 20 minutes, comes back for 15 seconds more, then reads a second page for 25. Counted by visible time, the visit lasted 80 seconds. Counted from its first event to its last, it would have included the 20 hidden minutes and left out the second page entirely.
Two caps keep it honest. Time in a background tab is never counted, so a tab left open does not stretch a visit, and a single stretch of visibility is capped, so a page left showing on a screen overnight does not count as a night of reading.
What a visit and a bounce are
With visible time, the two definitions can say what people mean by them:
- A visit is one visitor's activity until 30 minutes pass with nothing.
- Visit duration is how long its pages were visible.
- A bounce is a visit with one page view, nothing else you track, and under 10 seconds visible. Someone who reads one article for three minutes did not bounce; someone who left in four seconds did.
Google Analytics 4 made a similar change: it counts a session as engaged when it "lasts longer than 10 seconds", "has a key event" or "has 2 or more screen or page views", and defines bounce rate as "the percentage of sessions that were not engaged" (Google Analytics: engagement rate and bounce rate). The threshold is the same idea: ten seconds separates a glance from a read.
Reading them
Both figures are most useful as comparisons, not as targets:
- By source. Visitors from a newsletter who stay four minutes and visitors from a social post who stay twenty seconds are telling you what each audience came for.
- By entry page. A landing page with a high bounce rate is not working for the people it is meant for; an article with one is not always a problem, if its readers stay long enough to read it.
- Over time. A change to a page that moves its duration or bounce rate, against the same period before, is a real signal.
Small numbers need care. A bounce rate over four visits is one or two people; below five visits, the figure says more about who those people were than about the page.
There is no good number
Bounce rates and durations are often quoted as benchmarks: a good bounce rate is below some figure, a good duration above another. They do not travel. A reference page that answers one question should be read and left; a sign-up page should be followed by the next step; a long article should hold people for minutes. The same rate means success on one and failure on another, and the definition behind a published benchmark is rarely the one your tool uses.
Compare a page with itself over time, and pages of one kind with each other, under one tool's definition. A guide whose duration fell by half after a redesign is a finding; a guide whose bounce rate is higher than the home page's is not.
Common questions
Why did my bounce rate change when I switched tools?
Because the definition changed. A tool that calls every one-page visit a bounce will show a higher rate than one that also requires the visit to be short and to do nothing else.
Does visible time track what people do on the page?
No. It is a number of milliseconds, sent when the page is hidden or closed. It says how long, not where people looked, scrolled or clicked.
Do I need to change my privacy wording?
If your wording lists what you measure, add how long pages are viewed. It is a new kind of measurement, even though it identifies nobody.
How AnalyticsTrend does it
From version 0.6.0, the AnalyticsTrend web SDK records how long each page was visible. When a page is hidden or closed, or a single-page app moves to another path, it sends a page_engagement event saying how long the page was visible since the last one. Time in a background tab is not counted, under a second waits for the next one, and one event says at most 30 minutes. It is on by default, and turned off on its own with engagement: false. That event is not counted against your plan's events.
The Overview, Sources, Referrals and Entry pages show visits, bounce rate and average visit duration, with a visit ending after 30 minutes with nothing, and a bounce being one page view, nothing else tracked and under 10 seconds visible. Fewer than 5 visits shows the count, and a dash for bounce rate and duration, so a small site can never single anyone out. A visit from an older SDK counts from its first event to its last. What is collected is in What it collects.
Checked against the sources linked above on 28 October 2026.