How to analyze landing pages: the four signals beyond bounce rate

Show article contentsHide article contents
  1. Why bounce rate misleads on landing pages specifically
  2. The four signals to read first
  3. Engagement score: what stays after a single pageview
  4. Goal conversion rate per landing page
  5. The source × landing page cross-filter
  6. Entry-source share: is the page doing acquisition work?
  7. Across Clickport sites: how often does bounce rate disagree with engagement?
  8. How to read a landing page in 60 seconds
  9. What a high bounce rate actually means (and when to ignore it)
  10. What about GA4's landing page report?
  11. Common questions
  12. Get the four signals on your own site
Part of the GA Problems guide. Also see what GA4's engagement overview gets wrong and what bounce rate actually measures.

On the average landing page, most visitors never click through to a second page. That has been true for as long as landing pages have existed. So when your landing-page report opens with bounce rate as the headline metric, it is telling you what is normal, not what is working.

I went and checked. Across 1,007 landing pages on Clickport customer sites in the last 90 days, 20.2% of pages with bounce rate above 70% had engagement scores above 50. One in five "high-bounce" pages had visitors who scrolled deep and stayed for a real amount of time. The bounce rate said one thing. The actual behavior said another.

This article is the four signals to read instead, in order. The framework works in any analytics tool, including GA4 once you know which sub-reports to chain together.

Key Takeaways
  • Across 1,007 landing pages on Clickport customer sites in the last 90 days, 20.2% of pages with bounce rate above 70% had engagement scores above 50. One in five 'bad' landing pages had visitors who actually scrolled and stayed.
  • 21.5% of landing pages had bounce rate and engagement score in opposing quadrants. Bounce rate alone was directionally wrong on roughly 1 in 5 pages we tracked.
  • The four signals that actually evaluate a landing page: engagement score (scroll + duration combined), goal conversion rate, source × landing-page cross-filter, and entry-source share. Bounce rate is at best a fifth signal, not the first.
  • GA4 already moved away from bounce rate in its default UI. Its replacement, engagement rate, is binary (engaged = 10+ seconds OR 1+ conversion OR 2+ pageviews). It is better than bounce rate, but it still collapses a multi-dimensional question into a single percentage.
  • On most landing pages, single-pageview visits are the norm, not the failure case. Industry data and our own data both confirm this. A landing-page report that leads with bounce rate is telling you what is normal, not what is working.

Why bounce rate misleads on landing pages specifically

A landing page is a page where visitors arrive cold. They clicked an ad, a search result, a social share, a newsletter link. They did not navigate from elsewhere on your site. The job of the page is to deliver one piece of value (a definition, a comparison, a price, a download, a signup) and then either send the visitor toward a goal or let them leave satisfied.

Bounce rate counts single-pageview sessions as a percentage of total sessions. The standard definition does not look at how long the visitor stayed, how far they scrolled, whether they clicked any element, or whether they completed a goal that happened without a navigation. A landing page is the page type where all of those things matter and the metric collapses them into one binary signal.

There are at least four scenarios that all show up as a "bounce" on a typical analytics dashboard:

  1. The visitor read every word, scrolled to the bottom, copied a quote, took the next step off-site (called your sales team, opened your install command in a terminal, told their colleague).
  2. The visitor signed up, opted in, submitted a form, or triggered a goal event without leaving the page.
  3. The visitor arrived from a paid social campaign, looked at the headline, decided this was not for them, and closed the tab inside two seconds.
  4. The visitor was a bot or a low-quality referral that should never have counted in the first place.

A standard bounce rate cannot distinguish 1 from 3. They both look the same. That is the whole problem.

The four signals to read first

Instead of opening a landing-page report with bounce rate, read these four signals in order. The first three give you a picture of how visitors actually behaved on the page. The fourth tells you whether the traffic the page received was the right traffic at all.

THE FOUR SIGNALS
1. Engagement score
Scroll depth and time on page combined into one number. The behavior that survives a single-pageview visit.
2. Goal conversion rate
The percentage of visitors who completed the page's actual job (form submit, signup, click, custom event).
3. Source × landing page
The same landing page sliced by where the traffic came from. Same page can be great from one source and terrible from another.
4. Entry-source share
What share of visitors land on this page from each channel. Tells you whether the page is doing acquisition work or just collecting drive-by traffic.

Below, one section per signal. Then a section on how to read all four in under a minute, and a section on what bounce rate is still useful for.

Engagement score: what stays after a single pageview

The first signal is engagement score. The concrete recipe: average scroll depth combined with average session duration, normalized to a percentage. The exact formula does not matter as long as it incorporates both. Our dashboard uses (avg_scroll + min(100, avg_duration / 6)) / 2, which puts a 100% scroll plus a 10-minute session at 100% engagement and a 0% scroll plus 0-second session at 0.

The point of the metric is that it survives a single-pageview visit. A visitor who landed, scrolled to the bottom, spent four minutes, and left has high engagement. The bounce rate counts them as a bounce. The engagement score does not.

Here is what a landing-page report looks like when engagement sits next to visitors as a peer column, rather than below the fold:

Top Pages Entry Pages Exit Pages
Page VisitorsEng
/pricing
2,84782%
/blog/server-side-tracking
1,92076%
/how-it-works
1,40771%
/
1,18044%
/blog/cookie-banner-free-analytics
89468%
/integrations/wordpress
61223%
Top Pages sorted by visitors, with engagement score as a sibling column. Real DOM, ported from the Clickport Pages panel.

The second row (/blog/server-side-tracking) is highlighted because we are about to filter the rest of the dashboard by it. We click the row, and every other panel updates to reflect only sessions where that page was the landing page. The engagement column tells us before we click whether the click will be worth our time: at 76%, this is a page where visitors stayed long enough to be worth investigating.

The visitor with engagement score 23% on /integrations/wordpress is a different story. The page may be ranking for a query that does not match its content, or the page itself may be broken below the fold. Engagement gives us a fast triage signal before we go look.

Most analytics tools that came out in the last five years compute some version of this score. GA4 has its own implementation called engagement rate (covered in section 9). The mechanics differ, but the principle is the same: do not classify a session by what happened in one page boundary. Classify it by what the visitor actually did on the page they arrived on.

Goal conversion rate per landing page

The second signal is the page's conversion rate against its actual job. Every landing page has at least one goal. A pricing page wants you to start a trial. A blog post wants you to read another post, sign up for the newsletter, or share the link. A product page wants the contact form. A landing page with no defined goal is a page you are not measuring.

The conversion rate on a landing page should be filtered by the goal that page is responsible for, not by your site-wide goal funnel. A blog post that converts 3% of visitors to newsletter signups is doing its job. The same blog post measured against your trial-signup goal probably converts under 0.2%, because newsletter readers are not yet trial-ready. Both numbers are correct. Only one is meaningful for the page in question.

When you have goal conversion sitting next to engagement and visitors, the report becomes legible:

  • High visitors + high engagement + high goal conversion: the page is doing its job, send more traffic.
  • High visitors + high engagement + low goal conversion: visitors are engaged but the offer is wrong. Test the CTA, the placement, the offer itself.
  • High visitors + low engagement + low goal conversion: page is broken. Diagnose with scroll depth and exit triggers.
  • Low visitors + high engagement + high goal conversion: the page works. Get it more traffic.

The Plausible-style "Top Pages" report lacks the goal column by default. To get it, you set up goals first, then expose conversion rate as a peer column on the pages report. In Clickport, the goal column appears automatically once a goal is configured for the site, and it filters per-page. In GA4, it lives under the "Key events" column in the landing-page report and you have to add it manually in the customization panel.

Once you have visitors, engagement, and goal conversion on one row, you can read a landing page in about two seconds.

The source × landing page cross-filter

The third signal is the single most actionable move in landing-page analysis: cross-filter by source.

A landing page does not have one bounce rate, one engagement score, or one conversion rate. It has one number per traffic source. A 65% bounce rate that averages a 90% bounce from one Facebook campaign and a 30% bounce from organic search hides two completely different stories. The campaign is bringing the wrong visitors. The organic traffic is doing fine. The aggregate metric tells you neither.

To do this in any modern analytics tool: click the landing page row, click the top source for that page, and watch every other panel update to reflect just that source-and-page combination. Then click a different source for the same page. Compare the numbers side by side.

Active filters Page: /pricing× Source: Google×
Visitors
1,182
Eng score
81%
Conv rate
5.2%
Bounce
38%
Same page, different source. Each filter pill is a click on the Pages or Sources panel.

The same /pricing page on the same site can show:

  • Organic Google: 38% bounce, 81% engagement, 5.2% conversion. The page is doing its job for search traffic.
  • Paid Facebook campaign A: 87% bounce, 28% engagement, 0.4% conversion. The campaign is wrong about who should land here.
  • Referral from a partner blog: 22% bounce, 92% engagement, 12% conversion. The traffic is pre-qualified and ready.

You cannot find any of this in an aggregate landing-page report. The aggregate row would show a 51% bounce rate, an interpretation problem, and three completely different real situations. The cross-filter is what surfaces them.

In GA4, this is the "secondary dimension" feature on the Landing Page report. Add "Session source / medium" as a secondary dimension and the same page splits into one row per source. In Clickport, every panel cross-filters every other panel by default, so clicking the page row and then a source row in the Sources panel does it in two clicks.

The actionable move that comes out of this is: stop optimizing the page, start optimizing the traffic mix. A page that does great on organic and badly on paid social has a paid-social targeting problem, not a page problem.

Entry-source share: is the page doing acquisition work?

The fourth signal is the inverse of the cross-filter: for a given landing page, what share of its traffic comes from each source? Some pages are designed to receive cold traffic (a paid-ad landing page, an organic-search piece). Others are designed for internal navigation (a settings page, an account page, a deep documentation node). When a page that was not built for cold traffic starts receiving cold traffic, the report should call your attention to it.

The entry-source share splits the page's visitors by where they came from. A blog post that gets 70% from Google organic and 20% from newsletter is acting as a paid acquisition channel. A pricing page that gets 80% from internal navigation is a conversion-funnel page, not an acquisition page. Optimization moves are different for each.

Pages with a healthy mix of acquisition sources are doing real work. Pages with one dominant source are either narrowly successful (an SEO win on one keyword) or narrowly fragile (one campaign or one referral disappears and the page goes dark).

For each top landing page, the routine is: look at the entry-source share, then go to signal #3 (cross-filter by the biggest source) and check whether that source is sending engaged visitors. Repeat for the next biggest source.

Across Clickport sites: how often does bounce rate disagree with engagement?

This is the article's spine number. I ran a query across all Clickport customer sites for the last 90 days, grouped by landing page, and bucketed every landing page into one of four quadrants based on its bounce rate and engagement score. The minimum sample was 30 sessions per page to avoid noise. The test site was excluded.

BOUNCE × ENGAGEMENT QUADRANTS, 1,007 LANDING PAGES, 90 DAYS
High bounce, high engagement
17
pages (1.7%)
Bounce rate says "bad", engagement says "good". The bounce-rate-only reading would have flagged these as broken pages. They are not.
High bounce, low engagement
67
pages (6.7%)
Both metrics agree. These are pages that genuinely need work. Bounce rate alone would have caught them, just like engagement alone would have.
Low bounce, high engagement
724
pages (71.9%)
Both metrics agree. These pages are doing their job. The majority case.
Low bounce, low engagement
199
pages (19.8%)
Bounce rate says "good", engagement says "poor". Visitors clicked through, but the landing-page experience itself was thin.
Sample: 1,007 landing pages across Clickport customer sites with at least 30 sessions each, Feb 17 to May 17, 2026. Test site excluded. Bounce rate threshold: 70%. Engagement score threshold: 50%.

Two numbers fall out of this grid.

Of the 84 landing pages with bounce rate above 70%, 17 (20.2%) had engagement scores above 50. One in five "high-bounce" pages are actually pages where visitors scrolled and stayed. Treating bounce rate as the headline metric would have classified all 84 as broken. Roughly one in five would have been a false negative.

Across all 1,007 landing pages, 216 (21.5%) had bounce rate and engagement score in opposing quadrants. That is the combined off-diagonal count: pages where the two metrics gave you different verdicts. On about one in five pages overall, choosing bounce-rate-first or engagement-first would change your conclusion.

The data does not say bounce rate is useless. It says bounce rate is the wrong first signal. Combined with engagement and goal conversion, it sharpens the picture. Used alone, it gives you the wrong answer on one page out of five.

I want to flag two things honestly about this analysis.

First, Clickport's bounce-rate calculation incorporates engagement signals (it does not flag a visitor as a bounce if they scrolled deep or fired an engagement event). So our high-bounce-high-engagement quadrant is already smaller than it would be in a system that uses the strict single-pageview definition. In GA4 or in a tool using the classic definition, the disagreement rate would be higher, not lower. Our 20.2% is a conservative reading of the problem.

Second, the engagement-score threshold of 50% is editorial. Setting it at 40% or 60% changes the quadrant boundaries. The shape of the story does not change, but the exact number does. The methodology is published here so you can run it on your own data with whatever thresholds make sense for your site.

How to read a landing page in 60 seconds

When the four signals are on the same screen, you can read a landing page fast. The routine I use on my own dashboard:

  1. Open the Pages panel. Switch to the Entry Pages tab. Sort by visitors descending. Skim the top 10 rows.
  2. Find a page with high visitors and a flagged engagement score (red or amber if your tool color-codes the column). Click it. Every other panel filters to that page.
  3. Check the Sources panel. Which channel is sending the most visitors to this page? Click that source. The dashboard is now filtered by page-and-source.
  4. Read the four numbers in the KPI bar. Visitors, engagement, conversion rate, and (if relevant) average duration. These four together tell you whether this page from this source is doing its job.
  5. Clear the source filter and click the next biggest source for the same page. Compare the four numbers. If they are wildly different, you have a traffic-mix problem, not a page problem.

That whole loop is four clicks. Once it becomes routine, the slow part is interpreting the data, not gathering it. The slow part is also where the value is.

What changes for high-engagement pages: same routine, except the question becomes "where can we get more of this traffic?" instead of "what is broken?". The Sources panel becomes a list of channels to invest more in.

What a high bounce rate actually means (and when to ignore it)

After all of that, bounce rate is still useful. It is just not useful as the first thing you look at. Here is what a high bounce rate (above 70%) actually tells you, with the caveats:

  • On a paid-ad landing page: probably a targeting problem if engagement is also low. Probably a wrong-offer problem if engagement is high. Almost never a page problem in isolation.
  • On a blog post or content page: usually fine. Content visitors read the thing and leave. Plausible's own data shows landing pages average 60-90% bounce rates as a normal baseline. Combined with high engagement, a 75% bounce is the success case.
  • On a docs page: almost always fine. People came for one specific answer. They got it. They left.
  • On a pricing page: this one matters. If engagement is also low, the page is not selling. If engagement is high but conversion is low, the offer or CTA is off.
  • On a contact page: depends on whether form submissions are happening. A 90% bounce with a 30% form submission rate is a contact page doing its job perfectly.
  • On a Single-Page Application (SPA) view: the bounce-rate definition breaks. Configure your analytics to fire on view changes (pushState/replaceState), not on traditional page loads. A misconfigured SPA can show 95% bounce rates that have nothing to do with engagement.

The thing to internalize: bounce rate is a session structure metric. It tells you whether the visitor made one request or many. It does not tell you whether the visit succeeded. For pages where one request is the expected pattern, bounce rate is uninformative by definition.

What about GA4's landing page report?

GA4 already moved away from bounce rate as the headline metric. The default landing-page report in GA4 shows engagement rate (the inverse of bounce rate) instead. Engagement rate is the percentage of sessions that were "engaged", and GA4 defines an engaged session as one that lasted at least 10 seconds, OR triggered at least one conversion event, OR included at least two pageviews.

This is better than classic bounce rate. It moves the threshold from "did the visitor request a second page" to "did the visitor do anything intentional". But it is still a binary signal collapsed into a single percentage. A session at 11 seconds with zero scroll and a session at 4 minutes with 90% scroll both count as "engaged". The reader of the report cannot tell them apart.

The four-signal framework still applies in GA4:

  • Engagement score equivalent: GA4's "Average engagement time per session" gets you partway there. Add "Scroll" as a custom event via Enhanced Measurement to get the second component, then create a custom calculated field or read the two side by side.
  • Goal conversion: the "Key events" column on the Landing page report. Make sure the key event is the page's actual job, not your site-wide signup event.
  • Source × landing page: add "Session source / medium" as a secondary dimension on the Landing page report. The report splits into one row per source per page.
  • Entry-source share: same secondary-dimension trick, sorted differently.

There is also one specific bug in the GA4 landing-page report worth knowing about: when the visitor lands on a URL with query parameters and your data stream does not strip them, the report shows each parameter variant as a separate page. We covered this in detail in GA4 not showing data and (not set) in GA4. The fix is to configure your data stream to merge query-parameter variants, or to use a tool that does it by default.

GA4 has the four signals if you know where to look. You just have to assemble them yourself.

Common questions

What are the metrics of a landing page?

The four signals above: engagement score (scroll plus duration), goal conversion rate, source-and-page cross-filter, entry-source share. Visitors and bounce rate are useful supporting metrics. Bounce rate alone is not enough.

How can I track the performance of my landing page?

Open a landing page in your analytics tool. Verify the page has at least one configured goal. Read the four signals in order. If a signal disagrees with another (high engagement but low conversion, or low bounce but low engagement), that disagreement is the action item.

Is a 70% bounce rate good?

It depends on the engagement score and the page type. A 70% bounce on a blog post with 80% engagement is the success case. A 70% bounce on a paid-ad landing page with 25% engagement is a real problem. The number on its own is uninformative.

Is 40% bounce rate good?

By itself, a 40% bounce rate is below the typical landing-page baseline (60-90%) and slightly below the typical site-wide baseline (50%). But the same caveat applies: a 40% bounce with low engagement and zero conversions is a page that visitors clicked through to escape, not a page that did its job. A 40% bounce with high engagement and a 5% conversion rate is the page working as designed. Read the bounce rate in context.

How do I analyse a landing page in GA4?

Open the Landing page report (Reports > Engagement > Landing page). Add "Session source / medium" as a secondary dimension. Use "Key events" as the conversion column. Combine with "Average engagement time per session" to get a rough engagement read. Sort by visitors, then triage page by page using the four signals from this article.

Why is my bounce rate so high on some pages but not others?

Because bounce rate is mostly a function of page type and visitor intent, not page quality. Documentation, contact pages, and single-purpose content pages have high bounce rates by design. Multi-page funnels (signup, checkout, product browsing) have low bounce rates by design. Comparing bounce rates across page types is comparing different things.

Get the four signals on your own site

This whole framework was easier to write because it is what our dashboard shows by default. Engagement scores are computed on every page row, every source, every country, every device. Goal conversion is a peer column. Cross-filters chain in any direction. Entry-source share is one click.

If you want to read your own landing pages this way, start a free 30-day trial. The tracker is one script tag and the dashboard is live within a few minutes of installing it. If you are already on GA4 and want a comparison, install both for a week and read the same landing page in both tools. The exercise is informative whether you switch or not.

I answer every email from new accounts. If you have a specific landing-page question that the framework above does not cover, hello@clickport.io reaches me directly.

David Karpik

David Karpik

Founder of Clickport Analytics
Building privacy-focused analytics for website owners who respect their visitors.

Comments

Loading comments...

Leave a comment