The Real Bounce Rate in Google Analytics

Article written by Claudiu Murariu


Also updated for the new beta Google Analytics Asynchronous Tracking.

Bounce Rate has been a hot subject lately. The problem with bounce rate starts with its definition. In his (great) book, Web Analytics An Hour a Day, Avinash Kaushik defines bounce rate as being the percent of traffic that stayed on your website for fewer than 10 seconds. Why I find his definition to being the most accurate?

If somebody gets to spend 2 minutes on your website reading a whole article, without visiting a second page, doesn’t mean he bounced, but rather that he didn’t engage further… at least not in this visit session.

What is wrong with the bounce rate we get now from web analytics tools is that it only gives you the rate of users that had only one page view visit sessions. Bloggers know what I talk about: an article gets lots of buzz, people talk about it, however the bounce rate for it it’s way up there, above 50%. It just doesn’t make sense.

Google Analytics can report the real Bounce Rate

All Google Analytics accounts have access to event tracking by this time, so you can use the following hack in order to get real reports of bounce rate without skewing any of your data. Even more, the hack will help Google Analytics track better (not perfect though) the time spent on site by each visitor.

What you need to do is to fire up an event each time a user spends more than 10 seconds (or you can define your own standard) on the website. Just add the following line under the pageTracker._trackPageview(); line:

setTimeout('pageTracker._trackEvent(\'NoBounce\', \'NoBounce\', \'Over 10 seconds\')',10000);

In case you have decided to already update to the new Google Analytics Asynchronous Tracking code here is how the hack would be applied (place it as the last _gaq.push declaration)

setTimeout('_gaq.push([\'_trackEvent\', \'NoBounce\', \'Over 10 seconds\'])',10000);

10000 refers to the number of milliseconds after which you want to fire up the above code. If you want to do it after 15 seconds than you need to place there 15000.The hack will not alter your data in any way. It will just record in the Events section all the non-bouncers.

The New Bounce Rate


With the above hack Google Analytics shows you how many users leave your website without spending even 10 seconds on it and not clicking on any internal link. No interaction at all. However, don’t just implement the hack and go to your management bragging with the new super cool bounce rate. The fact is that it doesn’t change at all the fact that many users visit only one page in your website.

The good thing is that you still have access to how many people only see one page in your website. (Visitors > Visitor Loyalty > Depth of Visit report)


The percentage of visits that sees only one page will be identical with what used to be bounce rate. You can rely on this report to see how many visitors never get to the second page and use the Real Bounce Rate report to see how many people drop your website without spending even 10 seconds.

Reports don’t matter. It matters what you do with them.

Don’t apply the hack and never use the new data. If it is not going to help your strategy, better focus on something else and keep the hack in mind for other projects it might prove useful for.

According to the projects I’ve worked with and implemented the above hack a Real Bounce Rate higher than 15% meant trouble. More than 15% of the users not spending even 10 seconds on the website just didn’t satisfy us. I would usually segment between different entrance sources and try to identify where the problem sits. I am sure the rates will differ from a website to another but I expect the differencies to be much smaller.

The Real Bounce Rate in Google Analytics by

1.100.000+ email leads collected with

PadiAct helps you get more email leads. More and better.

  • Robbin Steif

    very nice! BTW, John Henson commented that he thinks it would be more elegant to go with straight single or double quotation marks. But if it works (and obviously, it does!) — very lovely.

    • Mc Williams

      Hi guys, I am experiencing high bounce rates for my organic traffic, sometimes … I always thought there was a time limit to when bounce rate would apply.

  • Claudiu

    Thanks Robbin. Your opinion means a lot. As for the double quotation marks, yes, John Henson is right: it is more elegant. It’s just an old (bad) habit of mine to use it like that. :)

  • Oussama Moursil

    I’ll use it right now. Thnx for the info.

  • leoken

    Great article bro. I work for an interactive agency and this is going to come in really useful. Thanks man!

  • Richard Warzecha

    Great article. Bounce Rate has always been a metric that I think is so misunderstood, even though the basic definition seems trivial. I also think your guidance to “segment between different entrance sources and try to identify where the problem sits” when a Bounce Rate is higher than desirable, if very appropriate.

  • Patrick Lor

    How would you use this new bounce report vs. the old bounce report? It seems to me that there’s very little difference between people who spend 2 seconds and bounce, vs. people who spend 30 seconds and bounce. Do you have some insights on how to convert people that stick around a little longer?

  • Francisco Rosales

    Thanks for the advice, running a blog I’m always wondering where the fine line of engagement is, if the user stayed to finish the post, that very different than just spending 15 secs.

  • Claudiu

    @Richard – Thanks for your comment. Yes, bounce rate is one of those metrics that is misunderstood many times. People refer to it out of context most of the times and this is what makes useless in such cases. I hear many times people saying I have 10 000 visitors and a bounce rate of 30%. It doesn’t really say anything about engagement.

    @Patrick – Depending on the website there can be a very big difference between people staying 2 seconds and the ones staying over 30 seconds. Take a blog or a news website for example. You go, read the news and leave. Next time you will check the same website cause you trust it, but as an analyst all you get is high bounce rate. On the website I’ve worked with we tried to offer different alternative content (related news, multimedia content, industry charts) and watched which help the most.

    @Francisco – if you will look at the tracking code of this website you’ll see I am using 30 seconds. To be honest I am playing with a tool here at PadiCode in which to tackle just that: get a little bit more understanding of engagement and help end-users along the way.

  • Bibiana Nunes

    Very nice post. I was actually looking for a way to set this. Thank you!

  • Chris Leone

    Well done Claudiu. Way to apply a more intelligent strategy to the issue of bounce rate. This would be a cool feature to see in a future version of Google Analytics.

  • Mehdi Laanaït

    Nice post.

    Let’s figure out we call two events:

    setTimeout(‘pageTracker._trackEvent(\’NoBounce\’, \’NoBounce\’, \’Over 5 seconds\’)’,5000);
    setTimeout(‘pageTracker._trackEvent(\’NoBounce\’, \’NoBounce\’, \’Over 10 seconds\’)’,10000);

    What about the time on page?

    Does GA give us an average of the time spent on the page? If yes, even if the visitor stays 10 secondes, GA will say that he stayed 7,5 sec. Ok, it’s better than 0 sec but it’s to be sure to understand the way it’s computed.

    Thank you.

  • Claudiu

    @Mehdi – I don’t think is necessary to call the function 2 times. For example I am interested in time spent by users reading articles on this blog so what I do is to set the limit to 30 seconds. So I suggest you try to identify what amount of time you think users need to stay on a certain page to read the content and use that time. The time average will automatically go much closer to reality if the majority of your users spend the time set in your code.

    However, you are right. It is computed like you say. I also got confirmation from people involved with Google Analytics for this hack. Thanks for your comment.

    @Chris – Thanks a lot for your comment. I think it would be cool to have something like this integrated in GA.

  • Mehdi Laanaït

    The reason why I’m suggesting this is that if you make 2 or 3 events calls, the time on page will be closer to the reality.

    With one call I’ll see a visit of 5 sec but with two calls I’ll see a visit of 7,5 sec.

    Maybe three calls every 10 seconds would make sense.

    What do you think?

  • Claudiu

    I don’t see anyway in which it can skew or affect your data. I would only do if the new data I get would really prove to be helpful. If it does, go for it.

  • Pingback: El tiempo, el rebote y los medios de comunicación | WebAnalytics.ES

  • Corey Trent

    I would also consider moving up the ga tracking code higher in the source, to ensure that your
    time count is accurate as well. Keep in mind JavaScript is executed in priority with where it is located in the source code.

    Great article.

  • Claudiu

    Hi Corey. to be honest I wouldn’t go that far for just this script. For example if you put the script in the header and the page takes a lot to load the user might bounce but the system to report that he didn’t. In such cases I think it’s safer to have it in the footer.

    Come to think about it I think all javascript should be placed in the footer. Page loading times have been proved to have impact on conversions. :)

  • Bibiana Nunes

    I have my bounce rate script to 10 seconds, but now my percentage in length of visit for those lasting less than 10 secs, doesn’t match the bounce rate…

    Does anyone know why this may be happening?

  • John

    Hi guys,

    Nice tweak. I would like to use it but i am currently using the Google analytics plugin developed by Yoast. Where to insert that code in his plugin?

    thanks a lot for your answer!

  • Claudiu

    @Bibiana. Are the numbers that off? If a user gets to see 2 pages and on each page spends less than 10 seconds, in this case he is not considered bounce but he is considered to have spent less than 10 seconds.

    @John I’ve checked the Yoast plugin and you either try to hack it (which I don’t necessarily recommend) or try to write to him and see if he isn’t interested in adding this hack to his script as well. If you need help in setting this up for your blog write me at and I’ll give you a hand.

  • Bibiana Nunes

    Right now my bounce rate is based on the 10sec rule and it’s gone down to 12%, but the percentage that google gives me for people that have spent less than 10 secs is 61%+. That percentage is measured by visits and not by PageViews.

    Any other suggestion?

  • Pingback: Face Your Fears: Why visitors really bounce from your site, part 3

  • Pingback: Google Analytics: Como reducir el porcentaje de rebote (bounce rate)

  • Pingback: Qué es la tasa de rebote | Internet Hoy

  • Pingback: Die Absprungrate: Mythen und Fakten — unique labs

  • Talking Ava

    Thank you for this!

    Bounce rate issues for blogs/sites is such a complicated matter, it can get confusing if left unguided. This post was truly enlightening!

  • Computer Hacking Tips

    quite wonderful explanation about what actually bounce rate is. I have implemented you hack. Thanks for the tip

  • Jeff

    great post. thank you.
    is there a way to do this through Advanced Segments in GA?
    i set up one based on time on site < 10 and page views = 1. the results are a bit confusing.

  • FAQ Software Agent

    Where exactly do I paste the code? Haha sorry for not being to techie about this stuff, kinda new with it and wondering where should I be putting it. :D

  • Pingback: Que es el porcentaje de rebote | Bloguismo

  • Pingback: Cuando publicar contenido nuevo en la home de un medio de comunicacion | Trucos Google Analytics

  • Pingback: The most misleading report in Google Analytics | PadiCode

  • Pingback: El porcentaje de rebote real en Google Analytics

  • chris

    hey guys did i add this code right?

    var _gaq = _gaq || [];
    _gaq.push([‘_setAccount’, ‘UA-XXXXXXX-X’]);
    setTimeout(‘_gaq.push([\’_trackEvent\’, \’NoBounce\’, \’Over 10 seconds\’])’,10000);

    (function() {
    var ga = document.createElement(‘script’); ga.type = ‘text/javascript’; ga.async = true;
    ga.src = (‘https:’ == document.location.protocol ? ‘https://ssl’ : ‘http://www’) + ‘’;
    var s = document.getElementsByTagName(‘script’)[0]; s.parentNode.insertBefore(ga, s);


  • Pingback: Clear Reporting & Critical Thinking: Why User Experience Needs to Remember its Roots in Psychology

  • Trackpageviews

    The hack works just as said. Nice work.

    But I do have a problem. After two months since implementing it, I just found out that my PDF tracking is dead. PDF pageviews implemented in links stopped counting after I implemented this code. So the following just does nothing:


    Has anyone had this problem? How can I solve it?


    • Claudiu

      The hack should have no implications on your code like the ones presented by you.
      From what i see on your website, it looks like you migrated to the async code but forgot the upgrade onlick events for pdf download tracking? After updating those to the last version of the code, things will work well.

  • Trackpageviews

    But was the pageTracker call updated? I think it stayed the same as what I have:

    onclick=”javascript: pageTracker._trackPageview(“/downloads/pdf/corazonfacil/colesterol”);”

  • Pingback: How to Measure the Effectiveness of Web Designs

  • Pingback: Google Analytics: porcentaje de rebote y tiempo en el sitio 0

  • Pingback: Find50-Marketing » Bounce Rate: Is your nfp site doing better than you think ?

  • Pingback: Eine realistische Bounce Rate in Google Analytics > Bounce Rate Optimierung, Technik, Tipps > Blog, Bloggen, Blogger, Blogtipps, Tipps, Anleitung, professionell Bloggen, Weblog, Blogstart, Blog Software, Blog Start

  • jp

    Does anyone know if this works with the new version of GA that is about to be pushed?

  • Pingback: When Bounces Affect Your Rankings | Search Engine People | Toronto

  • Pingback: What is a "bounce rate"? - Quora

  • Pingback: Taux de rebond réel de Google Analytics

  • Moshe

    First of all, must say a great post!
    My Q is this, I used this tracking event with my analytics and found put that in cases where only 1 page viewed and bounced, but viewed for more than the fixed tracking time (3min insteed of 20sec), it showed on analytics as 20sec.
    Is there any way to make it show the real time the page was view?

  • Pingback: Von der Absprungrate, Page Speed, httpS und so…

  • Angelo

    Interesting post Claudiu. I haven’t used your method to reduce bounce rate, but I plan to try it if I can’t get mine down. I change WordPress themes, and my bounce rate went from ~2% to 80%.
    Course my sitemap and Google Web Master Tools’ verification got deleted so I want to get back up to speed before trying new things.

  • Pingback: Google Analytics Resources - From Beginner to Expert | Blogsession

  • Hostessen Berlin

    Thanks!!! I use it for all my sites with google analytics and it works! :)
    Please, don’t forget “_gaq.push([‘_gat._anonymizeIp’]);” too.

  • Simon Cooper

    Hi, can you update this for the new Universal Tracking?

    Best regards,

  • Simon Cooper

    Would this be correct?

    setTimeout(‘ga(‘send’, ’15_seconds’, ‘time_on_page’, ‘read’);’,15000);

    • cllaudiu

      I would say that yes but I would like to test it before updating the blogpost.
      Do let me know if it works or not for you as well.

      • Simon Cooper

        Thank you for your reply. This isn’t working for me at the moment. Trying to debug but not had time yet today. Any input you could offer would be brill.

  • Pingback: vs Google Analytics - Why Google Analytics is Flawed

  • Pingback: Analytics porcentaje rebote y tiempo en pagina | Blog Dark Moon

  • Pingback: El porcentaje de rebote real en Google Analytics :: Editorial

  • Pingback: Your website desperately needs a Data Layer and you didn't even know it