React to low bounce rates (less than 20%)

Business Benefits

Remove significant reporting problems in GA by identifying and fixing duplicate page view and interactive GA event issues.


Go to the website you are testing on Chrome and open the Chrome developer console (CTRL-Shift-I; Option + ? + J on Mac).

  • Alternatively, press the three dots in the upper RH corner of Chrome > More tools > Developer tools to open the Chrome developer console.
  • If you haven’t already installed the “dataLayer Inspector+” Chrome extension, do so now.
  • If you are using an ad blocker or anything that will stop Google Analytics traffic, disable it.
  • If there’s a cookie consent module, either accept all cookies or at least the analytics cookies.

Check Pageviews in the console. Click on the console tab (1) and look for the GA events highlighted in yellow (2).

Ignore any GA4 traffic — there is no bounce rate in GA4.

Check for two GA page views, that are one right after the other and with the same UA-xxxxxx-x code. This indicates there is a problem.

Click open the second of the two pageviews. If it’s a duplicate page view, it’ll say so (1) and tell you why: A duplicate occurs when the dl (document locator - 2) and tid (tracking id - 3) are identical in the two GA hits.

Find the two GA code snippets, often by opening up the page source and searching for analytics.js, gtag.js or GTM-. This should point out the problem to fix.

Some other common areas to check:

  • The original GA code was not removed when GTM was added (very common). Solution: remove the original GA code.
  • If you’re using WordPress, one of the plug-ins has the GA Property ID (UA-xxxx-x) entered and is sending page views. Solution: Your site will have, at most, a handful of plug-ins where you could enter the property ID; check each of them and remove the GA Property ID.
  • You’re using the LittleData plug-in with Shopify or other e-commerce platform. LittleData uses the GA Property ID to send page views and e-commerce events to GA. Solution: There’s no way to turn off the page views in LittleData; instead, you’ll have to turn off the page view tracking in either GTM or gtag (whatever you’re using).

After you’ve found and deleted the duplicate GA code snippet, test by opening the developer console again and making sure you only see one page view being sent.

Make sure you explain to the website owner why the traffic will appear to have dropped in half because of the impact of Duplicate Page views.

In addition to the low bounce rate, the number of visitors and pageviews will be doubled. Not good. While the bounce rate metric is fairly meaningless, the number of visitors and page views metric is not.

Check interactive GA events, the second cause of a too-low bounce rate:

A GA event can also cause a low bounce rate. If there’s an event that fires on most/all landing pages and has the “non-interaction” field set to false, it will cause a low bounce rate.

If you’re using GTM, by far the most common such event is scroll tracking. Make sure the “Non-Interaction Hit” is set to true.

GTM scroll-depth tag with Non-Interaction Hit set to “true” (which it should be).

If it’s not scroll-tracking, it’ll be some other GA event that always (or almost always) fires on a common landing page. There won’t be that many; you’ll have to examine each of them.

Open up the page source and look (CTRL-F) for gtag events. They should pop up. Verify whether the non-interaction parameter is set to true.

The events that cause the low bounce rate issue are almost always set up in GTM; few gtag implementations use gtag events.

But if the site is running gtag instead of GTM and GA events are being sent via gtag, it’s likely the gtag event doesn’t set non_interaction to true. By default, all gtag events are considered interactive (i.e., non-interaction is set to false); you have to explicitly call them out as non-interactive. You can check the Google gtag event documentation on how to do this.

You’ll have to do some digging, but the gtag events should be easy to find. By definition, they should be on (almost) every common landing page.