Sharing, Links & Measurement

Session Duration

Definition

Session duration is the elapsed time inside one visit. Analytics tools calculate it by subtracting the timestamp of the first recorded event from the timestamp of the last, then closing the session after a period of inactivity — 30 minutes is the usual cut-off. The flaw is structural: if nothing is recorded after the last pageview, there is no closing timestamp, so the time spent on the final page counts as zero. A visit consisting of one page and no further interaction therefore reports a duration of zero seconds no matter how carefully it was read. Modern tools patch this with heartbeat events, or by sending a final measurement when the page becomes hidden, but the patched figure is an estimate built from sampling rather than a stopwatch.

Why It Matters

Time on page is the metric people most want when they share a document, and the one most likely to mislead them. A ten-page proposal reporting an average of 14 seconds may genuinely have been skimmed, or may simply be recording only the readers who clicked something — the ones who read straight through and closed the tab contributing a silent zero. Reading an average without knowing how the zeros are treated can invert the conclusion entirely. And on a static host with no script in the page, the metric does not exist at all: the edge sees a request arrive and has no idea whether the reader spent nine seconds or nine minutes with it — the same blind spot that makes bounce rate unavailable there.

How It Works

A tracking script records a timestamp on load and attaches a session identifier. Each further pageview or event updates the last-seen time. To capture the final page, the script listens for the visibilitychange event or the page being unloaded and fires a small request using the browser's sendBeacon API, which is allowed to complete after the page is gone. Ad blockers, background tabs and mobile browsers that suspend pages aggressively all interfere, so a slice of visits still ends without a closing signal. None of this is available from request logs alone, because a static host answers a GET and then hears nothing more — 99helpers reports views, downloads, referrers and countries from the edge without cookies, and deliberately makes no claim about time spent.

Real-World Example

A design studio publishes a 20-page case study as a single scrolling page at brightline-case.99helpers.site. The edge dashboard shows 210 views and 130 downloads of the linked PDF and says nothing about reading time. Curious, the studio adds a lightweight analytics snippet with heartbeat events and finds a median of 2 minutes 40 seconds, with a long tail past six minutes. That figure is worth having, but it arrived only because they chose to put a script in their own HTML.

Common Mistakes

  • Treating the average as time actually spent reading — visits that end on the first page often contribute a zero and drag the mean down
  • Expecting time on page from cookie-free edge analytics — the server records a request, not what happened afterwards
  • Comparing durations across tools with different inactivity cut-offs — a 30-minute timeout and a 15-minute one split the same behaviour differently

Related Terms

Put a file online in seconds

Drop in a document, an image, a page or a whole static website and share the link — free, with no build step and no server to set up.

Host a file free →