10 easy steps to a faster website

After web design SLC wrote a few articles on website performance I thought I’d see how bad the skeleton is in my own closet and run a few tests on my own blog. It turns out to be worse than I thought.

WordPress itself is pretty fast, if all you have is the 2010 theme and a few pages of posts. But if you have 10 extra plugins and a complex custom theme it can get pretty slow pretty fast. Fortunately it turns out not to be too hard to fix. Most of these suggestions apply to all websites not just ones powered by WordPress.

1. Test Page load time

There are many tools to test and analyse your page’s load time. There’s YSlow, PageSpeed, Google Chrome includes a built-in site audit feature in it’s developer tools. There are many websites that will also test and analyse your site for you without the need to download anything. The ones I use include WebpagetestYotta and Showslow. The latter two are particularly useful because they will analyse your website overtime from several different locations around the world and alert you of any performance abnormalities. Webpagetest.org is useful because it instantly test your site and gives very detailed reports of load time and performance problems. It also performed its tests using IE so it lets you target the  worst offender when it comes to browser speed. I will be using it to measure how my site changes as we go through these steps.

The initial test is here. Notice I selected to run the test 10 times so we can get a more accurate picture of the performance. Analysis of the median run is below:

So we have a time to first byte of 0.587s. A start render time of 2.3s. Document complete at 3.386s after 33 requests and 341KB.  The time to first byte is basically the time it takes for the web server to generate the page and start sending it to the browser, it’s best to make this happen as soon as possible it shows the user that something is happening and will be done soon. We can see that there is much room for improvement as there are many small css and js files that are loaded one after the other and each requests takes a minimum of 60ms.

2. Enable Gzip compression and browser caching.