Microsoft and Google have revealed that the longer your site takes to load, particularly beyond one second, the significantly more likely your overall traffic including engagement and retention will suffer as viewers like you ain’t got time for slow responses to your stimuli. One second should be the target, the magic number. I’ll settle for two.
Our site is grossly overweight. I’d wager over a hundred of the requests your browser makes to load a single page here don’t contribute anything at all to make you more likely to come back, and therefore have the opposite effect. By my watch and Google’s our pages take ten seconds to load which of course is way, way off the mark. Based on their data it’s remarkable we manage to pull in the traffic we currently get. I want our readers to have a better site experience, we want as few bytes and requests and DNS lookups involved per pageview. The situation is rather bad, it’s obvious that we need to correct it, we have got work to do, so let’s get started.
I’d like your help please cooking up a to do list. Here’s what I’ve got so far.
Disable hostnamelookups, experiment with keepalive, test various maxes in Apache and php, deflate/gzip, disable all extraneous Apache modules (along with WordPress plugins). Don’t ask me why hostnamelookups were ever enabled to begin with…
Minimize DNS lookups on page views, serve as much as possible on one host including even our ga.js (use cron to grab an update from Google daily). See which loads faster, hosting jQuery locally or serving it from Google at the expense of another DNS lookup.
Pack as much minified CSS and JS together as possible. Determine how much they slow down the site and decide how badly we truly need Livefyre and the slideshow. And the various widgets.
Images: start by spot checking for oversized images that are scaled down needlessly, then police for proper image format selection. Consider WebP for supporting browsers (either with HTTP_ACCEPT or an image file name extension rewrite based on reported user agents).
Experiment with various Apache, PHP and MySQL settings (keepalive, various limits, disable all extraneous modules), compare site speed with and without deflate/gzip enabled.
Experiment with different caching methods, EG memcached versus file caching. Issue correct browser caching instructions.
Try mod_pagespeed, or Google’s Pagespeed Service, or one and then the other.
Try serving images on another host or sub.
Trim server load by only allowing Chrome users to access the site.
Make sure all local URLs are relative, grab an SSL cert, enable SSL, try out mod_spdy.