WordPress performance challenge

Tech Talk/ 17th Jul 2015/Chris James

Every so often here at Clook HQ we see a challenge being offered up, usually related to something silly such as eating cupcakes or locating something lost in the office!  The last office challenge was a little more interesting though…

With discussions of making our new website as fast as possible a challenge was born to put together a custom hosting environment with the best performance possible for a single website/CMS.  To make it interesting some rules were set:

  • The hosting platform should be based on one of our regular managed cloud costing no more than £100 per month
  • The website will be a standard WordPress install with the Woocommerce addon, both with dummy content in place
  • Software used should be open source
  • Other services on the server (email, control panels, FTP, etc) should remain usable

After a few weeks of playing around the winner has been decided based on the fantastic page speed results from Pingdom and GTMetrix:

pingdom2

gtmetrix

To get this kind of performance a number of techniques were used which are detailed – without giving too much away! – below…

Server specification

Due to the website not being huge we could go with a fairly modest server specification with a small hard drive.  One of our managed cloud servers with the following specification was used:

2 CPU
2 GB RAM
15 GB SSD drive
£93 per month

Out of the box the above server provides adequate performance in a “general hosting” environment allowing for other sites to be hosted on a variety of CMS’s.  However, we wanted more and due to this server only hosting one site, could apply customised settings with performance for one site in mind.

Caching

Caching is used to store static versions of dynamic pages to avoid having to do resource intensive page rendering for each page load.  In addition, some elements can be cached in RAM to get optimum performance.

We used the W3 Total Cache plugin within WordPress to implement caching which has good results for all websites with basic settings.  To get the most performance we used Memcached as the cache store for some of the elements which serves data straight from RAM.

Following this, Varnish Cache was installed to sit in front of the web server and serve any cached content directly from RAM without causing any Apache or PHP overhead.  While involving a fairly complex configuration to work correctly with WordPress and Woocommerce, we got great results which also applies to SSL connections by using Pound.

Content Delivery Network

While Cloudflare can be used for basic/medium CDN features we were after every last bit of performance so went with our CDN service (provided via the global Edgecast network) allowing all static objects to be served by this instead of adding load to the hosting server.

WordPress plugins

Some additional WordPress plugins were used to handle image optimisations and other performance tweaks such as the removal of query strings from static objects.

Apache + PHP

Due to all of the caching most pages got served straight from RAM so could handle a a huge amount of visitors.  However, for pages that weren’t possible to cache (such as checkouts, admin area, etc) we needed a bit more performance from the standard Apache + PHP install.  This was achieved by converting SuPHP to PHP-FPM and stripping away some unused extensions.

Finally, we still wanted SSL protected URL’s to load fast so used Pound to reverse proxy SSL connections to Varnish Cache.

The results speak for themselves in that with a good set of configurations and work on the tight integration between server side optimisation and application, truly fantastic performance can be achieved.  The end of contest figures look like this:

Monthly spend: £98 per month (including CDN)
Pingdom load time: 259ms
Pingdom performance grade: 100/100
Google Page Speed Grade: A (98%)
YSlow Grade: A (99%)

For anyone looking to incorporate our WordPress Speedboost service to their cloud/dedicated server for performance WordPress hosting, please contact us to discuss further.

The demo site these results were taken from can be seen at http://wordpress.demo.clook.net

Hailing from Preston, Chris is the company founder and has always had an interest in computers, particularly internet technology. When not working he spends time with his family which is never quiet with a 3 year old running around!
  • Brian

    Those WordPress pages load up pretty fast! Unfortunately, it’s Xenforo that forms the backbone of my sites these days. Perhaps if made the same speed changes to your forum…? 🙂

    • Chris James

      We don’t use Xenforo any more but there are optimisation options for forums and more dynamic sites using some or all of the techniques mentioned above. Feel free to get in touch with the details of your site(s) and I’ll be happy to take a look to see if anything can be done to get them towards the speed of the above demo.

  • Chris James

    We don’t use Xenforo any more but there are optimisation options for forums and more dynamic sites using some or all of the techniques mentioned above. Feel free to get in touch with the details of your site(s) and I’ll be happy to take a look to see if anything can be done.

We have a very strong team here at Clook and we build on everyone's strengths and weaknesses, you have to be able to make a good brew too!

Chris James

Customer Login

Forgot Password? Cancel