- November 2009
- 46 Comments

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);
Update
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.






46 Responses to “The Real Bounce Rate in Google Analytics”
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.
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.
I’ll use it right now. Thnx for the info.
Great article bro. I work for an interactive agency and this is going to come in really useful. Thanks man!
-e
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.
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?
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.
@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.
Very nice post. I was actually looking for a way to set this. Thank you!
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.
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.
@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.
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?
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.
[...] empresa llamada Padicode nos da la respuesta. Resulta que podemos modificar el comportamiento de Google Analytics para que sólo cuente como [...]
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.
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.
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?
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!
@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 claudiu@padicode.com and I’ll give you a hand.
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?
[...] to the Padicode blog, you can use event tracking in Google Analytics to generate a report that shows visitors that [...]
[...] The Real Bounce Rate in Google Analytics http://padicode.com/blog/analytics/the-real-bounce-rate/ [...]
[...] de visitas que han estado menos de cierto tiempo en tu sitio web, puedes leer un caso de ello en The Real Bounce Rate in Google Analytics. Como siempre, para gustos colores y tus dudas en los comentarios. Nos [...]
[...] kann man mit einem kleinen Hack die tatsächliche Bounce Rate mit Google Analytics herausfinden. Das hilft einem nicht für die [...]
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!
quite wonderful explanation about what actually bounce rate is. I have implemented you hack. Thanks for the tip
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.
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.
[...] de visitas que han estado menos de cierto tiempo en tu sitio web, puedes leer un caso de ello en The Real Bounce Rate in Google Analytics. Como siempre, para gustos colores y tus dudas en los comentarios. Nos leemos. Artículos sobre [...]
[...] Rovira además hace referencia a un artículo de Padicode donde se permite re-configurar una nueva definición de rebote gracias al event tracking, donde nos cuenta que con Google Analytics podríamos llegar a saber aquellas visitas que pasan [...]
[...] can be a deceiving metric. If you really are interested in measuring it right, try implementing the real bounce rate in Google Analytics. Article Categories: Analytics« A web analyst’s technical checklist for [...]
[...] ¿Cómo sabemos si es ese el caso o es que no encontró lo que buscaba? sabiendo el tiempo que permaneció leyendo esa única página. Desafortunadamente no es una medición que te de por defecto Google Analytics, pero para arreglar esto os traigo el hack que acabo de descubrir aquí: The real bounce rate in Google Analytics. [...]
hey guys did i add this code right?
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXX-X']);
_gaq.push(['_trackPageview']);
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‘) + ‘.google-analytics.com/ga.js’;
var s = document.getElementsByTagName(‘script’)[0]; s.parentNode.insertBefore(ga, s);
})();
[...] your variables: even industry standard terms like bounce rate are defined differently, depending on who you speak [...]
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:
Download
Has anyone had this problem? How can I solve it?
Thanks,
David
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.
But was the pageTracker call updated? I think it stayed the same as what I have:
onclick=”javascript: pageTracker._trackPageview(“/downloads/pdf/corazonfacil/colesterol”);”
[...] can go a step further and measure the bounce rate as being the rate of people spending less than 10 seconds on your website. The more people are [...]
[...] empresa llamada Padicode nos da la respuesta. La idea es modificar el comportamiento de Google Analytics para que cuenten [...]
[...] necessary code with a good illustration of how the data will appear in your GA account can be found here. A more comprehensive and elegant solution is available from Brian Clifton a UK based GA guru. His [...]
[...] padicode.com habe ich die Lösung [...]
Does anyone know if this works with the new version of GA that is about to be pushed?
[...] The Real Bounce Rate in Google Analytics (Claudiu Murariu) [...]
[...] tracking for time spent on a site. Claudiu Murariu posted a great tutorial on this on his blog: http://padicode.com/blog/analyti…Another way, is to paginate the blog post, but I personally don't like that route.Also, [...]
[...] The Real Bounce Rate (Padicode) [...]