Clycyo
Guides6 min read

Bounce Rate Is a Bad Metric. Measure Engagement Instead.

A 90% bounce rate can be excellent news. Why bounce rate misleads, what engagement signals replace it, and how to read content performance honestly.

A visitor searches for 'css grid centering', lands on your article, reads for four minutes, copies the snippet, and leaves satisfied. Classic analytics records this perfect interaction as a bounce — the same label it gives a misclick that lasted 400 milliseconds. A metric that cannot distinguish your best content experience from your worst is not a metric; it is noise with a percentage sign.

What bounce rate actually measures

Single-page sessions divided by total sessions. That is all. It encodes no time, no scrolling, no interaction, no satisfaction. Its sky-high numbers on content sites mostly measure how often search engines send people who want exactly one answer — which is search working, not your site failing.

Where it actively misleads

  • Blogs and docs: a 90% bounce rate on a how-to article is compatible with total reader success.
  • SPAs: without route-change tracking, every session is single-page and bounce rate pegs near 100% — a tooling artifact, not behavior (details here).
  • Landing pages with external CTAs: a visitor who clicks through to your App Store listing 'bounced'. The page did its one job perfectly.
  • Comparing across page types: judging a glossary page and a pricing page on the same bounce number is a category error that produces confident, wrong conclusions.

The signals that actually mean engagement

  1. Active time on page. Not session duration (which classic tools cannot even compute for bounces) but time with the tab visible and the user present.
  2. Scroll depth. Did readers reach the part of the page you wrote it for? A pricing page where 80% never see the plans has a layout problem no bounce rate would reveal.
  3. Meaningful clicks. Copy buttons, outbound links, CTAs, tab switches — the page's own definition of success, tracked as events.
  4. Return visits to the same content. The strongest content signal there is: people who came back.
  5. Next-step rate where a next step exists. For pages in a funnel, measure progression to the actual next page — a targeted metric, unlike sitewide bounce.

Reading content performance honestly: a 4-question framework

For any page, replace 'what is the bounce rate?' with:

  1. What is this page's job? (Answer a question, capture an email, start a trial…)
  2. What observable action corresponds to that job being done?
  3. What fraction of visitors do it — segmented by source, since newsletter readers and cold search traffic behave differently by design?
  4. For those who do not: where exactly did they stop? This is where per-visitor journeys and click data beat any aggregate — you watch the drop-off point instead of theorizing about it.

This framework is also the antidote to the broader disease of vanity metrics: every number must trace to a page doing or failing its job.

Practical setup

In Clycyo, clicks are captured automatically and page-job events are one-line track() calls — define 'success' per page template (snippet_copied for docs, plans_viewed for pricing) and segment by first-touch source. Because journeys, clicks, and even page-load times share one record, 'why do organic visitors stop at step 2?' is an afternoon question, not a quarter-long instrumentation project. The docs show the event API in full.

Bounce rate had a good run in 2008. Let it rest.