Quick answer
Time on page is the time between a page being shown and the visitor leaving it — by opening another page, switching away from the tab or closing the browser.
Formula: average time on page = total measured time on the page ÷ pageviews with a measured time
What it measures
Time on page is meant to show attention: did people read the article, study the pricing table, watch the video? It is measured per pageview and then averaged across views of the page.
Dwell time is a related term from search: the time between clicking a search result and coming back to the results. Search engines do not publish how they use it, and you cannot see it directly in analytics, but long time on page from organic visits is a fair proxy.
The last-page problem
Older analytics tools worked out time on page by subtracting timestamps: the time of the next pageview minus the time of this one. That works for every page except the last one in a visit, because there is no next pageview. So:
- Single-page visits had a time on page of zero, however long the person read.
- The last page of every visit was left out of the average, which skewed blog posts and help articles — the pages most often read last.
Modern scripts fix this by sending a signal when the visitor leaves: when the page changes, the tab is hidden or the page is closed. The time measured up to that point is recorded for the page, last page included.
A worked example
An article had four views yesterday:
- Visitor A read for 4 minutes and clicked to a related article.
- Visitor B read for 6 minutes and closed the tab.
- Visitor C left after 3 seconds.
- Visitor D read for 2 minutes, then switched to another tab and never came back.
With subtraction only, B and D have no next pageview and get no time: average = (240 + 3) ÷ 2 ≈ 2 minutes. With leave signals, all four count: (240 + 360 + 3 + 120) ÷ 4 ≈ 3 minutes. Same readers, same behaviour — the second number is the one that matches what happened.
How TapCub measures it
The TapCub script records how long each page was open and reports it when the visitor moves to another page (including route changes in single-page apps), hides the tab or closes it. That means single-page visits and the last page of a visit have a real duration.
A few rules keep the number clean: stays under one second are not reported, a single page's duration is capped at six hours, and a tab left in the background for more than 30 minutes starts a fresh pageview when it is opened again rather than adding the idle time. Average time appears in the pages report next to pageviews, visitors and exits. The same signal also extends the session, which is how a visitor who reads one page for more than 10 seconds becomes an engaged session.
Common mistakes
- Comparing averages across tools. Whether the last page and single-page visits are included changes the number a lot.
- Assuming longer is better. On a checkout or a help article meant to give a quick answer, a long time can mean confusion.
- Reading the mean only. A few tabs left open for hours can pull the average up. Compare with the share of short visits, or with scroll depth, before drawing conclusions.
- Mixing it with session duration. Session duration covers the whole visit, all pages. Time on page is for one page.
Related guides: Average Session Duration and Content Performance Metrics.
Was this explanation clear?
We use your answers to fix and expand this page.
Couldn’t send. Please try again in a minute.
Thanks for the feedback. We’ll use it to improve this page.You’ve already sent feedback on this page. Thanks.

Product Experience Specialist
Writes about product experience, practical workflows, and growth, turning complex processes into clear steps for everyday decisions.