Time on page is how long a visitor actively spent on a specific page during their visit. The emphasis is on “actively” — good implementations pause the timer when the visitor switches tabs, minimizes the browser or goes idle.
It’s one of the more honest engagement metrics. A visitor who spent 4 minutes reading your article engaged with it. One who had it open in a background tab for 40 minutes probably didn’t. The difference matters when you’re trying to figure out which content is actually working.
Key takeaways
- Time on page measures active engagement, not just how long the browser tab stayed open
- A good implementation pauses when the visitor switches tabs or goes idle
- High time on page on a blog post suggests the content is genuinely useful
- Low time on page on a landing page or product page is usually a warning sign
- The last page in a session is often excluded from time on page calculations in some tools, because there’s no next page load to mark the end
How time on page is calculated
The basic concept: record when a visitor arrives, record when they leave, subtract.
The reality is messier. A visitor might open your article, spend 30 seconds reading, go make a coffee, come back 10 minutes later, read for another 3 minutes and close the tab. Naive implementations count all of that. Better ones don’t.
Burst uses TimeMe.js, an open-source library built specifically for accurate active-time measurement. It tracks focus and blur events on the browser window, and monitors mouse movement and keyboard activity to detect idle periods.
The timer pauses when:
- The visitor switches to another tab
- The browser window loses focus
- The visitor is idle (no mouse or keyboard activity) for more than 30 seconds
When the visitor closes the tab or navigates away, Burst sends the accumulated active time to your WordPress server and stores it there.
What counts as a good time on page?
Context matters more than absolute numbers.
| Content type | Rough benchmark |
|---|---|
| Blog post (1000+ words) | 2 to 4 minutes |
| Landing page | 30 to 90 seconds |
| Product page | 45 to 90 seconds |
| FAQ or help article | 1 to 3 minutes |
| Homepage | 30 to 60 seconds |
A 90-second average on a 2000-word article is a red flag. Visitors aren’t reading it. A 4-minute average on a product page might mean people are genuinely comparing options, or it might mean the page is confusing. Time on page answers “how long” but rarely “why.”
Pair it with bounce rate and conversion rate to get the fuller picture.
Time on page vs average session duration
These are related but different.
Time on page measures engagement with a specific page. You can see it per URL in your pages report.
Session duration measures the total time across the entire visit, all pages included. A visitor who reads three articles in one session might have a 9-minute session but only 3 minutes on any individual page.
For content performance, time on page is the more useful metric. It tells you which individual pieces are holding attention.
What time on page tells you (and what it doesn’t)
High time on page usually means the content delivered on its promise. People stayed to read or explore. That’s a good signal for SEO too since search engines increasingly look at engagement signals.
Low time on page could mean:
- The content didn’t match search intent (visitor arrived expecting something else)
- The page loaded slowly and they gave up
- The content was too dense or poorly formatted
- They found what they needed immediately and left satisfied (not always bad)
The last one is the tricky case. A visitor who lands on a contact page, copies your phone number and leaves in 10 seconds didn’t “fail to engage.” They did exactly what they came to do.
Always look at page type before drawing conclusions from the number.
FAQs
Because many analytics tools calculate time on page by measuring the gap between one page load and the next. The last page has no “next page load” to close the timer, so the time is either unknown or set to zero. Burst mitigates this by actively sending time data when the tab is closed or the visitor goes idle, rather than relying on subsequent page loads.
Slightly. If a page takes 5 seconds to load, that 5 seconds is typically excluded from active engagement time since the visitor isn’t interacting with content yet. The timer starts once the page is loaded and focused.
Yes. The pages overview in Burst shows average time on page alongside sessions, pageviews and bounce rate for each URL on your site.
Generally yes, but not as the primary goal. Optimizing specifically to inflate time on page (auto-playing videos, pop-ups that slow navigation) can hurt the actual experience. Focus on content quality and clear formatting. Time on page will reflect that naturally.
Start measuring what people actually read
Time on page gives you one of the clearest signals for content quality. Burst tracks it per page, with active-time measurement that excludes idle and background time.
Analytics that tell you what actually matters
Track engagement, sessions and the pages that perform. All inside WordPress.
Related definitions: what is bounce rate, what is exit rate and what is a session.