The Best Tool for Web Page Speed Evaluation

Aug 31 2010

It seems that, for me, this is the year of website performance optimization. From working with nginx and a crazy memcached setup to recently deploying a handful of Varnish servers, I have been deeply entrenched in the world of website page speed optimizations.

At this point, I've used dozens of tools. From the old standbys like Apache AB and Siege to the bewildering Google Page Speed FireFox extension to a few commercial web performance analysis tools, I've tried lots.

When it comes to measuring actual page loading speed, I've found just a handful of tools that I like. The obvious ones are Firebug and the Developer tools in Safari and Google Chrome. These make it easy to see what's going on and when.

But there was one excellent performance analyzer that I found on the web (thanks to a Google recommendation, actually). It has blown me away, in terms of what it offers. This tool is http://www.webpagetest.org. Yes, it sounds like a generic (and hence gimmicky) low-end tool, doesn't it? I've seen my share of CURL front-ends masquerading as performance analyzers, but this is certainly not one of those.

There are two major tests that I run with it:

  • Side-by-side page load tests. The output of this is an amazing frame-by-frame view of how fast the page is loading.
  • Analytical tests. These tests perform a sophisticated analysis of performance-related details of page structure, download speed, and network connections.

The filmstrip-style output from the side-by-side test makes it visually very compelling, and also helps one gain perspective on how a page appears (gradually) to a user. It can provide a great graphical representation of why performance is important. It can also help you tweak your page output code to deliver at least something to the user ASAP.

But the analytic tests produce voluminous data that have served me well as a basis for really digging into everything from how CSS and JS files are loaded to how many cookies are getting served out, to how the network layer is performing under the hood.