As you may know, I use WP SuperCache on all of my blogs to enable them to handle the rather high loads the server runs at occasionally. One of the things that WP SuperCache does is enable compression for all of the cached pages. It’s an option in the control panel, which I ALWAYS enable. This saves a lot of bandwidth and makes pages download much faster for readers.
Well, what I didn’t realize was that the compression is only being performed on the cached files apparently. Because I did some testing and on the non-cached files there was no compression. So, I’ve got a really, really easy trick that anyone can do on their PHP blog to enable GZip compression.
Of course I’m going to show you how to do it in WordPress because that is what I know – but a simple one line addition to your theme file will enable it on any PHP based system (Drupal, Joomla, or whatever). If you have instructions for another CMS please let me know and I’ll add them here too.
What we are going to do is add a very simple line that tells your server to compress all of the HTML pages that it creates using the build in function that PHP has. In order to do this in WordPress all you need to do is go into your Admin control panel, and choose the Theme Editor under the Appearance menu.
- Select the Header.php template
- Add the following line to the very beginning of the template (before anything else)
<? ob_start("ob_gzhandler"); ?>
- Save the template
- Have a cold beer.
That’s it. Your job is done.
GZip Compression Improvement
What will this do for you? Well, in my case lets look at the before and after results from OneMansBlog.com. These results were measured by the Firebug plugin for Firefox and each example was the best of three back to back pageloads. I also enabled the compression immediately between the before and after reloads to try and ensure similar load circumstances. The test was conducted via a 15mbps cable internet connection.
Prior to implementing GZip Compression the homepage was 99.6kb and took 1.96 seconds to download (click the image to view full size):
After turning on GZip compression in WordPress the homepage was compressed to 18.3kb, and it took only 1.15 seconds to download. The 80% page compression saved about 40% of the download time (click the image to view full size):
Once you’ve enabled compression you can go here to test your Webpage to see if it is working.
Whoopee! 1 Second. Who Cares?
Hold on there honcho. I managed to save about one second on just one pageload. On average I routinely get over 20,000 page loads per day. So that would be 20,000 seconds – or 5.5 hours – per day saved. That is 2,027 hours per YEAR – or the equivalent of an entire full time employee.
In addition, we saved over 80kb of data from being downloaded or 1.6 gigabytes per day. That is almost 600GB per year (128 complete DVDs) in what would have been completely wasted bandwidth.
Now, just imagine if everyone did this how much time we would save, and how much faster the Internet would be going. Heck, its a moral imperative for everyone to turn on compression!
So, what are you waiting for? Your readers are begging you to speed things up for God’s sake!
PS – You can try and find a plugin to do this for you too. But it’s so easy why not just add the line and be done with it?