Key takeaways
- In GA4, a bounce is a session that was not engaged. A session counts as engaged if it lasts longer than 10 seconds, records a key event or views two or more pages, so a reader who stays 30 seconds and leaves is not a bounce.
- A sudden jump or drop usually comes from a tracking change, such as a consent plugin or a plugin that fires events. Check that before you change the site.
- Contentsquare’s 2025 benchmark found a 53% bounce rate on pages with poor LCP and 49% on pages with good LCP. Speed matters, but nobody can promise how much it will move your number.
- Speed fixes can break WordPress sites. Keep WooCommerce Cart, My Account and Checkout out of the page cache, don’t lazy-load the hero image, and turn on optimization options one at a time.
- Judge a fix by what the page is for (calls, leads, orders), measured against the same page’s own baseline.
A 70% bounce rate on a blog post and a 70% bounce rate on a paid landing page are different problems. On the blog post, readers may have found their answer and left happy. On the landing page, you are probably paying for clicks from people who leave right away. So before you compress an image or install another plugin, work out which of those you’re looking at.
The steps below work in order. First check what the number measures. Then find the pages where it matters, fix the cause your data points to, and confirm the result against what the page is supposed to do. That last step usually means conversions, which our guide to measuring landing page conversion rate covers in more detail.
What GA4 actually counts as a bounce
In Google Analytics 4, bounce rate is the share of sessions that were not engaged. Google’s Analytics Help page on engagement rate and bounce rate says a session counts as engaged if it lasts longer than 10 seconds, records a key event, or has at least two page or screen views. A bounce is a session that does none of the three.
This is a different measure from the old Universal Analytics one, which counted any single-page visit as a bounce. If you compare today’s figure with a blog post from 2019 or an industry benchmark, you may be comparing two different metrics.
| What the visitor did | Pages | Time | Key event | GA4 result |
|---|---|---|---|---|
| Read a guide for 30 seconds, closed the tab | 1 | 30 s | No | Engaged |
| Landed, left after 4 seconds | 1 | 4 s | No | Bounce |
| Opened two product pages in 6 seconds | 2 | 6 s | No | Engaged |
| Copied your phone number in 5 seconds and called | 1 | 5 s | No | Bounce |
Look at the last row. A visitor who got exactly what they came for still counts as a bounce unless a key event fires. Marking any event as a key event also makes the session engaged. You can lower the number without changing anything about the visit, and that is not a fix.
Why your bounce rate suddenly jumped or dropped
If the rate moved sharply overnight, check your tracking before you look at visitor behaviour. Real behaviour rarely changes that fast. A tracking setup changes the moment someone clicks save.
The WordPress.org support forums have plenty of examples. In one Complianz support thread, a site owner saw bounce rate go from an average of 25% to about 80% over a similar 30-day period, after plugin updates and a rerun of the consent setup wizard. Other owners report the opposite: bounce falling from around 60% to under 10% the day they installed a plugin that sends extra events. Neither case proves a cause. Both tell you where to look first.
Check these, starting with the most recent change:
- A new or reconfigured cookie consent plugin. It changes which sessions get tracked at all.
- An analytics or marketing plugin that sends scroll, timer or click events.
- A second copy of the GA4 tag, added by a theme, a plugin or Google Tag Manager.
- A new redirect that sends visitors through an extra URL before the real page.
- A spike from one referrer or country, which often means bot traffic.
Find the pages worth fixing first
A site-wide average mixes your guides, your product pages and your contact page into one number, and that number points at nothing. Start where visitors enter the site.
- In GA4, open Reports, then Engagement, then Landing page. If your property doesn’t show it, an admin can add it from the report Library.
- Bounce rate isn’t always a default column. Use Customize report to add it next to engagement rate, average engagement time and key events.
- Sort by sessions. A page with 40 visits and a 90% bounce rate is noise. A page with 4,000 visits and 65% is worth your week.
- Add Session source/medium as a secondary dimension, then compare by device. A page can be fine on desktop and fail completely on mobile visits from paid social.
- Use at least four weeks of data, and write down the starting numbers for each page you pick.
Now ask what each page is for. A how-to article that answers the question on its first screen can bounce heavily and still do its job. A service page fed by paid ads, or a product page, is supposed to lead somewhere. A high bounce rate on those pages is the one worth fixing.
Fix the cause your data points to
The pattern in your data narrows down the cause. Very short mobile sessions point to slow loading or a broken layout. Visits from one ad campaign that leave without scrolling point to a promise the page doesn’t keep. A spike on one template after an update points to a conflict.
Make the page match what brought the visitor
Message mismatch is a common cause, and it’s the one no speed plugin can fix. A typical example on Reddit’s small-business forum: a gardening business sends its Google Ads traffic to the homepage, sees bounce above 80%, and gets one booking. The ad promised hedge trimming. The homepage talked about the company.
Give each ad group or offer its own page. Make its headline repeat what the ad said, and answer the visitor’s questions in the order they would ask them. A page headed “Emergency plumber in Leeds, same-day callouts” with a tap-to-call button keeps visitors that “Welcome to our services” loses. If the gap only appears for one campaign, the fix may be the campaign’s targeting rather than the page.
Put the answer on the first screen
Within a few seconds, visitors should be able to see what you do, roughly what it costs, and what to do next. A good test: time someone who has never seen the site. On articles, put the answer first and the background after it. On product pages, show the price and whether it’s in stock. On lead pages, show the form or the button above the fold, with no slider or second offer competing for attention.
Speed up the slow pages, without breaking them
Speed and bounce rate move together, but the gap in the best data is smaller than most guides suggest. Contentsquare’s 2025 Digital Experience Benchmarks covered 90 billion sessions on 6,000 sites. Pages with poor Largest Contentful Paint had a 53% bounce rate, against 49% for pages with good LCP. That is a correlation across the whole web, using the one-page definition of a bounce. Treat a slow page as a real cause, but don’t expect a fixed percentage back.
Use field data from PageSpeed Insights and look at mobile on its own. Google’s web.dev counts a page as good when LCP is 2.5 seconds or less, INP is 200 milliseconds or less and CLS is 0.1 or less, measured at the 75th percentile of real visits.
On WordPress the usual causes are a hero image several megabytes in size, plugins nobody uses any more, a heavy theme or page builder, cheap shared hosting, and third-party scripts such as chat widgets. Our guide to speeding up a WP site without breaking it goes through each one. The rules that keep speed work from causing new bounces:
- Back up the site first, or work on a staging copy.
- Check what caching your host already does before you add a plugin. Two caching layers can conflict.
- On WooCommerce, keep Cart, My Account and Checkout out of the page cache. WooCommerce’s developer docs list all three.
- Don’t lazy-load the hero image. It is usually the LCP element, so delaying it makes the page feel slower.
- Turn on minification, JavaScript delay and unused-CSS removal one option at a time, and test menus, forms and checkout after each one.
- If the layout breaks with WP Rocket, add
?nowprocketto the end of the URL. WP Rocket’s troubleshooting guide uses that to show whether its optimizations are the cause. - Run speed tests more than once. The first request after a cache purge is uncached and slower.
If you’d rather not do this work yourself, SiteSelf can fix slow WordPress pages for you from chat, using hosting access, and report what it changed and checked.
Test it on a real phone
A fast page with a menu that won’t close loses visitors just as quickly as a slow one. On a real phone, open and close the menu, submit each form with a deliberate mistake in it, and watch the first screen while the page loads. Look for a cookie banner covering the call to action, or a chat widget pushing the headline down. Content should fit a 320-pixel-wide screen without scrolling sideways, which is the WCAG 2.2 reflow width. Pop-ups that show up before the visitor has read anything, or that are hard to close, cost more than they bring in. If they still earn their place, trigger them on exit intent instead. For layout problems, see making a mobile-friendly website.
Make sure the page loads at all
Broken pages almost never appear in bounce-rate case studies, yet they lose every visitor who reaches them. A 404 from an old link, a redirect loop after an SSL or CDN change, or the “There has been a critical error on this website” screen all show up as bounces. Check Tools, then Site Health, look at your 404s, and open your top landing pages while logged out. If a page throws errors, our guide to fixing WordPress issues without guessing covers how to track down the cause.
Give the visitor a next step
A visitor who isn’t ready to buy still needs somewhere to go. Inside an article, link to the related service or the next question, a few paragraphs in. End with one specific action, such as “Get a quote for your postcode”. Commenters in WordPress forums are skeptical that a sidebar of related posts helps much. Links inside the text get clicked more because they appear right where the visitor has the next question.
How to tell whether the fix worked
Change one thing per page and note the date. Wait until the page has had enough sessions that one quiet day can’t swing the figure, then compare it with that page’s own baseline, split by the same source and device. If you changed the headline, the images and the caching in the same week, you won’t know which change did anything.
Then check the number that matters for that page. If bounce rate drops and calls, leads or orders don’t move, nothing improved for the business. If a new tracking event lowered the bounce rate, nothing improved for visitors either.
Stop and get help if the site shows a critical error, checkout stops working after you changed caching, or you can’t tell whether a plugin or the theme is causing the problem. WooCommerce’s own advice is to test for conflicts on staging, switching to a default theme and reactivating plugins one at a time. On a live store, that is not something to try during business hours.