Analytics & Testing

Beware of Loading Multiple Google Analytics Scripts

With so much integration of tools to so many content management systems, we’re seeing many more of our clients having issues with Google Analytics scripts being inserted into the page multiple times. This wreaks havoc on your analytics, resulting in huge over-reporting of visitors, pages per visit and nearly no bounce rate.

Just today we had a client who had 2 plugins loaded and configured to add the Google Analytics script to their blog. And neither plugin actually checked to see if there was already a script loaded! The result was that the visits were over-reported and their bounce rate was about 3%. If your bounce rate drops to under 5%, rest assured you have an issue with multiple scripts on your page.
bounce rate

Aside from Analytics, how can you tell if you’ve done this? One method is simply to view the source of your page and search for ga.js. Even if you want to monitor the site with multiple Google Analytics accounts, there should be only one script.

Another way is to open up your developer tools in your browser and view the network communication after you refresh the page. Do you see the ga.js script being requested more than once?
ga js

Google Analytics works by loading a script that assembles all the information, saves the information to browser cookies and sends it to Google’s servers through an image request. When the script is loaded more than once, it sometimes overwrites cookies, and sends multiple image requests to the server. That’s why the bounce rate is so low… if you visit more than one page on a site, you do not bounce. So… if the scripts are firing more than once when you visit a single page, it means you’ve visited multiple pages.

Check your page and your analytics to make sure your analytics script is properly installed on your site, and make sure you don’t accidentally load the script more than once. If you do, your data is not accurate.

Douglas Karr

Douglas Karr is the founder of the Martech Zone and a recognized expert on digital transformation. Douglas has helped start several successful MarTech startups, has assisted in the due diligence of over $5 bil in Martech acquisitions and investments, and continues to launch his own platforms and services. He's a co-founder of Highbridge, a digital transformation consulting firm. Douglas is also a published author of a Dummie's guide and a business leadership book.

Related Articles


  1. Thanks, I’ll take note on this. I think this is the reason why my ecommerce site doesn’t have really traffic going on its analytics report. the google script is different from the tracking code present on its google analytics report. thanks mate.

  2. Hi Douglas, great insight. I had a similar drop since I started some experiments on Google Tag Manager few weeks ago: 4 Page/ Visits 🙂 and bounce back of currently at 0.47% 😀

    Following your post, here my result:

    1.Scripts: There is 1 ga.js (I pasted only the code of Analytics and Tag Manager into my site). I cannot see in the second script (Tag Manager) any reference to ga.js but only gtm.js . I have no big code just those 2 pasted together (first analytic, then T.M.), so I don’t even need to use an application, however I checked with firebug too.

    2. In the Tag manager Console I created just one event (same time of creation, same time of start b.r. dropping). This event basically works as Link click listener for Outbound Links and it is the same as the one advised by James Cutroni into his blog. But I made a slight modification: One is the Non-Interaction Hit set to True (that shouldn’t be hit bounce rate?) but then I added a Label=referrer instead of leaving it blank, because I wanted to know there the clicks where from. (Anyway I removed it today as It is not so useful as I thought)
    3. I still have some few outbound links with old onClick=”_gaq.push()” embedded but all of them have been set the Non-interaction click to True.



What do you think?

This site uses Akismet to reduce spam. Learn how your comment data is processed.