The SSL times to my domain look slow - I assume this is the server. I can’t easily combine more js / css, but I could perhaps load more of them asynchronously as with the google analytics / translate.
Also, the load time here seem slower than I get with firebug, especially repeat view which is around 1s (I re-open the page by clicking a link, after first loading the page to fill the browser cache). The main difference seems to be that in firebug, only html (which is 304ed), plus google analytics / translate are requested. Here, a js plus lots of images are requested again, but I think they have far future expiry dates.
I tried to set the test speed similar to my own broadband speed.
Is your hosting really in Houston? If so, that’s probably why your SSL times are so long. SSL takes 2 or 3 round trips for the negotiation (can’t remember off the top of my head) so the latency really hurts.
On the caching, there are probably 2 main differences. The first (and main one) is that you need “cache-control: public” headers on the responses, otherwise IE won’t cache them when it’s over SSL. The other is that WebPagetest closes the browser between first view and repeat view so it’s more like someone coming back later in a different browser session than someone bouncing around the site.
Which version of Firefox are you using for your manual testing? 3.6 has a couple of key improvements that will make it MUCH faster for your site. They no longer block for javascript in the head (much like IE8 added) and they increased the number of parallel connections to 16. IE7 is pretty much a worst-case (though common) scenario and the newer browsers can be quite a bit faster (but optimizations for IE7 can still help them and certainly don’t make them slower).
On the recommendations front:
Move the css ahead of the javascript - it will allow it to download somewhat in parallel.
Make as much of the javascript async as possible (or at least move it to the bottom of the page). That is the biggest blocker in your performance (and particularly for the user experience). You’re probably talking about close to 2 seconds faster if you can move it out of the way.
I can’t do much about the Houston hosting for the moment. I retried the test using San Jose ([url=http://www.webpagetest.org/result/100514_NBA/]http://www.webpagetest.org/result/100514_NBA/[/url]), and the SSL times are just as bad, so maybe it’s partly a server issue too. However, I couldn’t customise the connection speed to be the same, so that might be a factor.
I tried the “cache-control: public” change you mentioned, but the images are still being requested in repeat view. I’m still not sure why some page elements are being re-requested, and others aren’t. If you close the browser before repeat view, I’d expect all https content to be reloaded, as it should only be cached in memory, not on disk.
I’m using firefox 3.6.3.
I’ll take a look at reordering css/js to load at the end, and maybe also sprites too.