Leave a comment

When Popcorn Metrics launched their new Landing Page, they were surprised to see their Bounce Rate exceeding 80%. So they started digging and discovered that the problem wasn't their landing page, but how Google Analytics collects the data!

This post explains how Google Analytics calculates your Bounce Rate, why Bounce Rate matters for SEO, and what you can do to fix it.

  • RS

    Rob Sobers

    about 5 years ago #

    I like this post, but I want to point out a couple of problems with it:

    1.) It implies that the advice in the article will help your SEO. It won't. Implementing event tracking WILL reduce your bounce rate as it appears in *your* Google Analytics install, but it won't change how Google The Search Engine views the visitor's interaction with your site (cf. pogo-sticking).

    2.) I don't like how it says that Google's definition of bounce rate is "wrong." It can't be wrong; they've defined it! The definition of a bounce is that the visitor leaves your site after viewing a single page or triggering an event. So, if those conditions are true, it really is a bounce.

    What the article is REALLY saying is that you have the opportunity to change the definition of a bounce in your own GA install by triggering events during a single pageview.

    Lastly, a little bonus bit of info: all bounces in GA record a session duration of 00:00:00 because GA has no way to end-cap the session. Think about it: if you hit a page and spend 15 minutes there and then close your browser tab, GA never has a chance to record the session end time. If you log events mid-pageview, GA will be able to record durations.

    Some people like to create a 2-minute check-in event that isn't based on any particular interaction like scroll depth or video plays, but rather pings GA to say that the person has been on the page for 2 minutes thus avoiding being counted as a bounce AND recording a minimum session duration of 2 minutes.

    • AM

      Alex Mohr

      about 5 years ago #

      We've tried a couple of design experiments focusing directly on bounce% and the one thing I've found is that you have to be really careful that you're still keeping your core business metrics at the forefront.

      Put another way, the reason I like the base definition is that it separates people into 2 buckets, bounces and click-throughs. If you only care about lowering bounces, you can hack that metric all you want, but it doesn't matter because the clickthroughs are the whole reason the landing page exists.

      While it's certainly personally vindicating to see people spending 15 minutes reading an in-depth piece of content I wrote, the purpose of that content's existence is to drive people to sign up for our service. To that end, the only events I want GA to consider "interactions" are steps in that direction - everyone else is actually bouncing.

      Quick note: if you want to track additional activity (e.g. scroll distance) without affecting the users bounce status, you can set {'nonInteraction': 1} on the ga() call.

      Obviously, there's a lot of wiggle room depending on your business model and the benefits of brand awareness are not lost on me, but I tend to settle on one simple point: if it's not good enough to inspire someone to check out who you are then it's not good enough.

    • DL

      Dylan La Com

      about 5 years ago #

      Holy moly thanks @rsobers your last 2 paragraphs seriously saved me a bunch of time :D

    • PM

      Paul M Boyce

      about 5 years ago #

      Hi Rob - wow! Fabulous to read your comments - thanks so much. You just taught me something > the pogo-sticking problem.

      I'm adding a link here to a great video explainer for the pogo-stick problem by Rand Fishkin (https://twitter.com/randfish) on this for the benefit of others:

      >> http://moz.com/blog/solving-the-pogo-stick-problem-whiteboard-friday

      I'm wondering though where this sits with events? For example the pogo-stick is about people bouncing fast. Does that work the same if users stay for 5 seconds or 15 mins? Picture two scenarios where a user visits a long form landing page with no subsequent page views:
      A) SERP > Landing Page > 5 *secs* later > Back to SERP
      B) SERP > Landing Page > 15 *mins* later > Back to SERP
      Would Google treat these both the same? My thinking is that in the first scenario (A) clearly the user bounced but in the second scenario (B), the user stayed 15 minutes, so they did engage and let's assume they did so because they extracted some value relevant to their search. Clearly in that second case (B) the use of events would help the bounce rate to be more accurate for GA. But is the pogo-stick algorithm going to give the same answer for A and B, or will Google see from the bounce rate that the user engaged in scenario B. What do you think Rob?

      Ah, yes, coming to your second point thats exactly it Rob! Without giving google a clue (by sending events) the 5 seconds or 15 minutes appears in each case as 00:00. And that's why I say in that scenario that the Bounce Rate in Google is wrong. Not because the algorithm is wrong, but because the algorithm doesn't have all the information. The bounce rate algorithm factors in two things: "Page Views" and "Events", and for a single page, by definition the algorithm can't calculate what actually happened inside the page without sending events. Maybe in the future Google will develop and alternate method for recording and calculating bounce rates better? p.s. yes you could send "timed" events, and I see why. But for me I prefer events that are based on actual user interaction (be it clicked on a button to watch a video, or clicked on pricing, or scrolled 75% down the page. An auto-timer would fire regardless (for example someone opens the top 5 links on the SERP in 5 separate tabs, and then goes and does something else. The pages with timed events would fire, but thats misleading. Me - I'm for user based actions. It's just cleaner.

      p.s. Let me know what you think about the pogo-stick issue - I'm fascinated!


    • PM

      Paul M Boyce

      about 5 years ago #

      Hey Rob, thanks again for your comments. I wanted to circle back and let you know we've taken on board your views and updated the blog post. The fact is no-one knows for sure so we've positioned as "may affect" and provided some helpful links (including to SEOMoz article arguing against http://moz.com/blog/the-2-user-metrics-that-matter-for-seo). The strongest argument in favour is an interesting (but slightly dated and small sample) study here: http://www.1stsearchenginerankings.com/google-bounce-factor-research-data-is-in.html.
      cheers - and many thanks again for contributing here :)

    • PM

      Paul M Boyce

      about 5 years ago #

      Hey Rob, thanks again for your comments. Wanted to circle back and let you know we've taken on board your views and updated the blog post. The fact is no-one knows for sure so we've restated as "may" affect and provided some helpful links (including to SEOMoz article arguing against http://moz.com/blog/the-2-user-metrics-that-matter-for-seo). The strongest argument in favour is an interesting (but slightly dated and small sample) study: http://www.1stsearchenginerankings.com/google-bounce-factor-research-data-is-in.html.
      cheers - and thanks again for contributing here :)

  • SL

    Sapph Li

    about 5 years ago #

    Unfortunately, this article tells you what you should do but not how to do it!

    Script to track a click event on your page:
    [a href=”http://www.link.com” onClick=”_gaq.push([‘_trackEvent’, ‘downloads’, ‘click’, ‘ebook’, ‘0’]);”]Link[/a]

  • SM

    Stuart McKeown

    about 5 years ago #

    Another good tip that I've been using is firing an event when a user reaches 50% scroll on my posts, I also use a script to track all clicks back through to our marketing site.

  • JA

    João Antunes

    about 5 years ago #

    Only be worried of bounce rates coming from paying channels, because it positively means losing money. (Unless they aren't bounces as you pointed out, Paul M Boyce) On one page websites I have had the same problem, and I used Jquery waypoints to trigger either ga.pageviews (or events not sure now) [the coders solution]. Anywho, i used this: http://imakewebthings.com/waypoints/ And ideally, instead of bounce rates, I would make sure that the people get to any page that means that they are actually interested in the product. I haven't worked much with Google Analytics definition of funnels, but I guess that can be attained there. e.g. If through adwords a user gets to your landing page and only clicks on the explanatory video and goes away, you should take that as a sign of someone who wasn't interested on that in the first place, therefore you just lost money there. Now, either make sure that is still a bounce, or construct a funnel where you leave the clicking on the video out. Another good, not much explored thing (by us at Survs as of yet) that one might use to optimize paying advertising is: gather who your customers are with simple questions (industry, etc) , and then, if possible (depending on the paying channel) advertise more to those to make sure that you get more bang from your bucks (but don't forget about the other segments as well, and improving the conversion there)

    • PM

      Paul M Boyce

      about 5 years ago #

      Hi Joao, thanks for your comments here. I agree about channels, and focusing on reaching the right customers and providing a value to them on arrival. If you don't have that right, you can burn a lot of cash on paid advertising without much ROI. p.s. Waypoints > cool gadget for coders! We're actually going to be introducing scroll events for non-coders into http://PopcornMetrics.com in the near future. Two good ways you can use Google Analytics with your paid advertising:
      1/ If you use Adwords, yo can setup Events and then turn events into Goals. You can then optimise your Adwords campaign conversions to those Goals.
      2/ Also, for all channels, you can set events on a number of goals in your funnel, and then see in Google Analytics which channels provide the best customers, based on what they actually do. Typically this could be 2 Events one at the start of the funnel, and one deeper to an action thats aligned with either Retention or Revenue.
      Example: say one channel gets a lot of signups, but few people make it to Revenue stage, vs another channel which has less signups, but overall more people make it to Revenue. That should give you a pretty valuable insight into which of your channels are performing best.

  • SS

    Salman Sharif

    about 5 years ago #

    Great post, a very handy trick to know how actually users are interacting with your website.

    • PM

      Paul M Boyce

      about 5 years ago #

      Hi Salman, thanks I agree! :) Knowing how users are interacting is essential to understanding what your users "do" engage with as well as "do not" engage with - so you can focus on delivering the value that your audience are engaging with.

  • JS

    Jason Spanomanolis

    about 5 years ago #

    I agree with @rsobers, the bounce rate metric is by definition correct.

    The big question here is whether we should adjust our bounce rates with interaction events for elements, and what criteria we should use.

    As Avinash Kaushik has so eloquently put it in his blog and his book, a bounce means that a visitor "Came, saw, puked".
    So, my opinion is that you should use your understanding of your website pages, to judge which elements signify that a visitor has completed, or moving forward toward his intent on the page, and adjust bounce rate accordingly.

    You will then have a better understanding of the percentage of sessions that left people unsatisfied, and you can still segment bounce rate to compare against different dimensions.

    Also, adjusting your bounce rate will most definitely NOT help you for SEO!

    • PM

      Paul M Boyce

      about 5 years ago #

      Hey Jason, thanks for your comments. Came saw, puked - I LOVE that quote!

      Totally agree with you, the important thing is to track significant or meaningful user actions. The aim is definitely not to fool Google - or worse fool yourself for that matter!! Scrolled 5%, scrolled 10%... hum.. not meaningful. Clicked to watch a Demo Video, yes, that could be meaningful. Was curious about your pricing? Yes that's meaningful. Subscribed to your newsletter? Yup thats a good sign of interest. It all comes back to the basics of "am I providing value to my visitors - how would I know? and how would Google know?"

      RE: segment your bounce rate to compare against dimensions - that sounds real interesting - can you share more about how you would do that?

      p.s. yes @rsobers comments are great. I clarified why I was saying Bounce Rate is wrong in my reply to him... :)
      p.p.s. RE Bounce rate and SEO. I'm not saying bounce rate is the only factor, or even the most important factor, I'm saying bounce rate can be one factor. But don't take my word for it. The guys at HubNest have a team of *SEO experts*. Here's their position:
      "although Google may not explicitly use analytics for SEO rankings, it is reasonable to assume that if a website has visits for irrelevant searches where most people leave within a few seconds, it won’t remain in top ranks of Google for very long. In short, our online marketing experts find that Bounce Rate does affect SEO."
      You can read their comments here:
      >>> http://www.hubnest.com/bounce-rate-affect-seo/


  • JG

    Jane Guleski

    about 5 years ago #

    Regarding Single Page Applications and Ajax heavy sites, you can make loading dynamic content count as a pageview here are the google guidelines for that: https://developers.google.com/analytics/devguides/collection/analyticsjs/single-page-applications

  • GL

    Gastón Labarthe

    about 5 years ago #

    Nice post!

    I'll leave another hack for those who have a one page site with navigable sections like us.

    To reduce the bounce rate you could implement the jQuery hashchange event with this plugin http://benalman.com/projects/jquery-hashchange-plugin/ to track every change hash on your site (disclosure: me or my company don’t have any relation with the creator of the plugin).

    In order to track every change of section, you have to implement a hash (#) for each section of your site, eg.:


    Add the plugin js;

    And implement a subtle change to the Google Analytics tracking code (Universal tracking code example):

    $(window).hashchange( function(){
    ga('send', 'pageview', {
    'page': location.pathname + location.search + location.hash

    So, everytime the hash change, Google Analytics will interpret the same as if the user were reloading a new page and won’t consider that visit as a bounce visit.

  • NT

    Nate Turner

    about 5 years ago #

    I've done this and have a few notes to add.

    1 - You have to be careful that the new lower metric doesn't blind you from seeing the pages the perform poorly. You may have pages with a really high bounce rate, but if the majority of them don't bounce until 5+ seconds, your adjusted bounce rate will look like the page is working. The combination of exit rate, conversion rate and adjusted bounce rate should keep you grounded.

    2 - Creating custom segments in GA for each time interval give you the ability to segment conversion rates by amount of time on page. I've done 5, 15, 30, 45 & 60 second intervals to see where the conversion rate falls off. In my experience the fall off has been pretty sharp, which gives you the ability to trigger well-timed pop ups, livechats, surveys, etc.

  • LF

    Luís Filipe Correia

    about 5 years ago #

    Agree with @rsobers and @jspanom. This blog post makes lots of sense for long scrolling landing pages, where the visitor doesn't navigate to other pages. I'd like to differentiate users that landed and only watched the first section, from users that watched the video, checked pricing, benefits, features...

    Bounce rate means (at least for me) if a uses haven't engaged at all. If they took actions and engaged, but not signed up (or performed my key CTA) means they showed enough interest but I didn't Acquire them (Pirate Metrics AARRR: http://blog.trak.io/growth-hacking-like-a-pirate-a-beginners-guide-to-pirate-metrics/)

    This way I can split uninterested visitor from interested users that didn't followed my CTA. That information is important to improve my content and drive them to CTA.

    PLUS: there's the bonus from mid-session events. You can get a more accurate time on site (instead of the 00:00:00).

  • GH

    Guilherme Hernandez

    about 5 years ago #

    @paulmboyce I believe you've missed the main point of @rsobers comment. Of course bounce is an important part of Google's algorithm to rank pages. What he is saying is that changing the bounce rate on your google analytics report WILL NOT change the bounce rate of your page for Google.

    As per my particular experience I'd say that the "bounce" used for Google's algorithm is already different from the 30 min bounce we see on GA.

    Everything you said about events are cool, but for data analysis only. SEO should be focused on Users and not Google.

  • JS

    John Smith

    almost 5 years ago #

    Yes, In this article some advices are given but it definetly wont help your SEO. Google analytics gathers a huge amount of traffic & that why it collect a huge bounce rate but the otheres website stats like
    GoStat represents the exact report of bounce rate

  • RN

    Robert Nus

    almost 5 years ago #

    Firstly, It won't help seo. In Google analytics bounce rate is really an issue. Well I agree with the points you guys told here, Now
    I'm working with GoStats & I found that it reports accurately about bounce rate.

  • JD

    Jess D'suoza

    over 4 years ago #

    sometime GA counts bounce rate as a unique visitor & that why it shows high bounce rate. I was facing this problem then I uninstall it & now I'm working with another (Gostats) analytics tool.