Bounces, time, scroll depth and CTR

Why:You’ll understand how a bounce is counted in GA4 and in Yandex Metrica, why the numbers differ, what time on page, scroll depth and CTR mean, and which numbers not to trust. Afterwards you have a measure chosen in place of “bounces”, a non-bounce condition for the page with the main action and scroll thresholds for long pages.

25 minutes

Read by speech synthesis (Qwen3-TTS); the voice is not a person’s.

A bounce is a counter’s definition, not a verdict on a page. In GA4 it is a session that wasn’t engaged; in Yandex Metrica a short one-page visit.

A word that sounds like a verdict

Every counter’s report has a bounce rate, and it’s very tempting: the word “bounce” sounds like a sentence passed on a page. But a bounce isn’t a verdict but a definition, and different counters define it differently. Behind it is a question we actually want to answer: did the person get what they came for? A bounce answers that badly. This lesson teaches you to read such numbers without being fooled.

In the last lesson you installed a counter and learned what a visit, a page view, an event and a goal are. Now we look at four measures of behavior: bounces, time on page, scroll depth and CTR.

A bounce in GA4 and in Yandex Metrica

In GA4 you look from the other side. First an engaged session is defined: one that lasts longer than 10 seconds, or has a key event, or has two or more page views. A bounce is then the share of sessions that weren’t engaged. Bounce rate and engagement rate are two sides of one coin. (GA4 added a bounce rate metric in 2022.)

In Universal Analytics, the former Google version that stopped processing data in 2023, a bounce was simpler: a session of one page view. So when you see a bounce figure in an article or in someone else’s report, ask in which system and by which definition it was counted.

The Russian market. In Yandex Metrica a visit counts as a bounce when all three conditions hold together: it has at most one page view, it’s shorter than a threshold, 15 seconds by default, and no service “not a bounce” event was recorded in it. You can send that event yourself, ym(counter, 'notBounce'), and the accurateTrackBounce setting makes the counter itself record “not a bounce” after the set time. Without it a page that was open and read for ten minutes, with no event sent, still counts as a bounce.

Matomo, Plausible and other privacy-friendly counters have definitions of their own, so read the help of the one you use.

Open the diagram. Set the behavior of one visit and see how the two counters would judge it. The zone around 10 to 15 seconds on one page is especially interesting: that’s where they disagree.

One and the same visit, two answers
Yandex Metrica

Bounce

A bounce if all together: at most one page view, shorter than 15 seconds, and no “not a bounce” event.

GA4

Not engaged: counts as a bounce

Engaged if it lasts over 10 seconds, or has a key event, or has two or more page views.

Here the counters agree, but move the sliders: a difference appears at 10 to 15 seconds and one page view.

Scroll depth
  • 25%: reached
  • 50%: no
  • 75%: no
  • 100%: no
  • 90%: the automatic scroll event in GA4 did not fire

The numbers and visitors are invented. The bounce definitions come from the help pages of Yandex and Google; check them on the date you set up your counter.

The conclusion. You can’t compare “bounces” from Metrica with “bounces” from GA4, and you can’t take a “good” bounce percentage as a norm: there’s no norm, it depends on the type of site. For a reference page a high bounce rate is normal (the person found the answer and left), for a shop with a catalog it’s worrying. So for your own page you need to choose a more honest measure.

What to look at instead of bounces

Three options that more often say more:

  • Goal completion. The person did what you built the page for: tapped the phone, sent the form, downloaded a document. That’s what you set up in the last lesson.
  • A “not a bounce” event. You define for yourself what “the person didn’t leave disappointed” means: they started filling in the form, scrolled to the prices, pressed the button, stayed over a minute. Then a one-page site stops looking “bouncy” because of normal behavior.
  • Scroll depth (below), if the page is long and you care whether people read it to the end.

The choice depends on the page. For a page with the main action (a form, a booking), the goal and “not a bounce” matter. For an article, time and scroll. For a “Thank you” page neither is needed: it exists so that you can count the goal.

Time on page

How it is counted. In classic counters time on page is counted as the difference between this page view and the next. An unpleasant consequence follows: the last page of a visit has no time until the person moves on. Modern counters (GA4 does) can measure the time while the page was in the foreground, but even then a tab opened and forgotten can distort the figure.

Why the average lets you down. NN/g, drawing on research by Microsoft Research on about 205,000 pages, showed that time on a page is distributed unevenly. Some leave in a few seconds, others stay for minutes, and an average of about a minute hides this. A few very long visits (a forgotten tab) easily pull it up. So it’s sounder to use:

  • the median (the middle: half the visits are shorter, half longer);
  • the share of visits longer than a threshold (“longer than 30 seconds”): choose such a threshold remembering that the decision to stay is most often made in the first seconds.

And remember that a long time isn’t always good. If a form is unclear, a person can wander in it for long.

Scroll depth

For long pages (an article, a landing page of many blocks) an important question is how far people read. Yandex Metrica shows it on a scroll map: what share of visitors reached each place on the page. You can also set up events for reaching 25, 50, 75 and 100 percent of a page (in GA4 the standard scroll event fires at 90 percent, and the other thresholds you set up yourself, for example in Google Tag Manager).

What you do with it: if a fifth of visitors reach the block of proof, and the button sits under it, most never see the button. That’s a strong hypothesis for the next lessons.

A caution: scrolling isn’t reading. A person may have flicked through quickly.

CTR

CTR (click-through rate) is the share who clicked out of those it was shown to. For search results it’s the clicks on your result divided by impressions (Google Search Console and Bing Webmaster Tools show it). For an ad, clicks per impression. For an email, clicks per delivered message. For a button on a page, clicks per page view.

Three cautions:

  1. Compare like with like. A result in first position gets far more clicks than one in fifth, so the CTR of two pages in different positions isn’t compared.
  2. CTR measures a promise, not value. An intriguing headline raises CTR and sinks what happens next. So always look at what the person did after the click.
  3. Small numbers. Three clicks out of fifty impressions is 6%, but the random swing here is huge (the lesson on the value ladder).
Check yourself: why can a one-page site with a high “bounce rate” be successful?

Because a bounce means “left from the very first page”, not “left disappointed”: on one page a person could have found the phone number, called and got everything they needed. So for such a site you look at goals and the “not a bounce” event.

Practice

Choose what you’ll use instead of bounces.

  1. A measure in place of bounces, and the reason.
  2. The difference between the definitions of Yandex Metrica and GA4, in one sentence, with the thresholds of 15 and 10 seconds.
  3. A non-bounce condition for the page with the main action.
  4. Pages with scroll depth: at least two, with thresholds of 25, 50 and 75 percent.

The check looks at form: the counters and thresholds are named, the condition is tied to the main action from the brief, there are pages and thresholds. Whether the measure you chose is good is for you to decide: imagine the number halved, and ask yourself what you would then do.

Practice

Preparing your page…

Test

Question 1 of 6

Match each counter with its definition of a bounce

Find the match for each item.

Cards

These cards go into your review once you finish the lesson.

  • How does Yandex Metrica define a bounce?

    Answer

    A visit with at most one page view, shorter than a threshold (15 seconds by default), with no service “not a bounce” event sent. The accurateTrackBounce setting is needed for exact counting.

  • How does GA4 define a bounce?

    Answer

    It is the share of sessions that were not engaged. An engaged session lasts longer than 10 seconds, or has a key event, or has two or more page views.

  • Is a bounce always bad?

    Answer

    No. On a one-page site or a reference page a person may get what they wanted and leave. So you look at goals and “not a bounce”, not only at bounces.

  • Why does average time on page let you down?

    Answer

    Long visits pull the average up, the spread is huge, and the last page of a visit may have no time. It is better to look at the median or the share of visits longer than a threshold.

  • What is CTR and how does it let you down?

    Answer

    The share who clicked out of impressions. It measures interest in a promise, not value; bait raises it while the behavior afterwards falls.

Sources

Next

You now know: how bounces are defined, engagement metrics.