At OSCON last week, I attended Artur Bergman’s session about Varnish – A State of the Art High-Performance Reverse Proxy. Artur is the VP of Engineering and Operations at Wikia. He has been singing the praises of Varnish for awhile. It was great to see his experiences and resulting advice in one presentation. But what really caught my eye was his last slide:

Wikia measures exit rate – the percentage of users that leave the site from a given page. Here they show that exit rate drops as pages get faster. The exit rate goes from ~15% for a 2 second page to ~10% for a 1 second page. This is another data point to add to the list of stats from Velocity that show that faster pages is not only better for users, it’s better for business.
Sebastian | 28-Jul-09 at 2:48 am | Permalink
unfortunately I may confirm this fact for http://www.tamundo.de . Thank you very much for this graph
Sergey Chernyshev | 28-Jul-09 at 7:25 am | Permalink
Steve,
I wonder if there is an easy way to gather this kind of data using traditional site access analytics tools in conjunction with performance analytics and if there is a tool that measures both?
So far this is a big challenge to gather this kind of data, but if it was easy, it would be a great way to make a case for business to invest into web performance.
Do you think Google Analytics can do something like that?
Sergey
Artur Bergman | 28-Jul-09 at 11:54 pm | Permalink
Sergey,
We use Google analytics calculate that.
At the top of the page.
/**/
And then at the bottom:
if (typeof window.wgNow == “object”){
var now = new Date();
var ms = (now.getTime() – window.wgNow.getTime()) / 1000;
var pageTime = Math.floor(ms * 10) / 10; // Round to 1 decimal
var slashtime = “/skin_name/” + pageTime.toString().replace(/\./, “/”);
_uff=0;
_uacct=”UA-xxxxxxx-42″;
urchinTracker(slashtime);
}
fearphage | 29-Jul-09 at 4:19 am | Permalink
Arthur,
I’d suggest you use the built-in functionality that does what you want instead (Number.prototype.toFixed).
if (typeof window.wgNow == ‘object’) {
//var pageTime = ((new Date() – wgNow) / 1000).toFixed(1) // Round to 1 decimal
//var slashtime = ‘/skin_name/’ + ((new Date() – wgNow) / 1000).toFixed(1).toString().replace(‘.’, ‘/’);
_uff = 0;
_uacct = ‘UA-xxxxxxx-42′;
urchinTracker(‘/skin_name/’ + ((new Date() – wgNow) / 1000).toFixed(1).toString().replace(‘.’, ‘/’));
}
Oscar Martin | 29-Jul-09 at 10:55 am | Permalink
I have improved conversion rates by optimizing the website http://www.todocespedartificial.es. The result is better than expected.
Eric Schurr | 07-Aug-09 at 12:55 pm | Permalink
Oscar — how did you quantify the improvement in conversion rates? how did you correlate web site performance with your business performance?
Oscar Martin | 10-Aug-09 at 2:23 pm | Permalink
Hi Eric,
the bounce rate has decreased from 25.91% to 21.45% and the conversions has increased.
Jan Pfeifer | 06-Oct-09 at 3:15 pm | Permalink
I wonder how the graph was sampled.
The first thing that comes to mind is that the delay was not artificially (and randomly) generated.
The faster pages (towards 1s) were those cached … which means they were the most visited and possibly with lower exit rate for other reasons other than time.
Meaning that there could be correlation but not causality between time and exit rate. And the conclusions could therefore be very skewed.
I browsed over the PDF but couldn’t read anything about how the sampling was done.
Any ideas anyone ?
Steve Souders | 06-Oct-09 at 3:34 pm | Permalink
@Jan: There’s no artificial delay. These are the actual load times of the pages.
ROBERT Vincent | 28-Apr-10 at 1:05 am | Permalink
Be careful ! The wikia’s method is computing the time to render the page on browser because of javascript. In no case it’s the time to computing the page on their servers, neither the transfer time over the network. Especially since they use Varnish, pages are always buffered, therefor the javascript begin when when all the page have been sended.
ROBERT Vincent | 28-Apr-10 at 1:11 am | Permalink
In addition, they should use something like jquery function “$(document).ready”, because in their method there is no guarantee that all images, js and css have been loaded.
ROBERT Vincent | 29-Apr-10 at 12:52 am | Permalink
Take a look to : http://blog.vkistudios.com/index.cfm/2009/5/21/Slow-loading-times-Track-them-with-GA-Google-Analytics-Power-User-11
and to http://www.hoc.net/~mike/source/page_load_rtt/Howto_Measure_Page_Load_Time.html
It’s seems to be better.