Recently I came across a question on WordPress Development StackExchange asking for steps to optimize WordPress with regard to server load. Here’s a link to the question. Most of the answers were technical and couldn’t be understood by anyone new to WordPress. So I created this answer-like post to fix that shortcoming.
Enable caching in WordPress
Install & activate the W3 Total Cache plugin for enabling caching functionality in your WordPress site. Activate page caching, database caching, object caching & browser caching feature from the plugin’s settings page. Make sure you choose Alternative PHP Cache (APC / APCu) as the caching mechanism ‘if available’. Do NOT enable any minification in W3 Total Cache as there are many chances for you to break your site’s appearance and/or functionality. We’ll leave it to Cloudflare.
Use a Content Delivery Network
Once you’re done with configuring the rest of the plugin functionalities, set up Cloudflare for your website. Make sure you enable Cloudflare in W3 Total Cache settings too, under the Extensions menu.
Cloudflare is a Content Delivery Network which caches all the static contents (image files, CSS, JS, documents, etc.,) from your site and serves it to your visitors from their global servers. This can help speed up page load times and reduce the load on your server. For a list of file types that are cached by Cloudflare checkout this list. Moreover, Cloudflare has a free plan too.
In Cloudflare, set the caching level to standard and set browser cache expiration to something at least greater than 20 hours. Enable Always Online™ so that even if your server goes down, Cloudflare will serve your website’s static pages from their cache. Also, enable their auto minify feature (remember why I asked you to not enable minification is W3 Total Cache? Because Cloudflare does it better!) Then set Rocket Loader™ to automatic.
Here’s an excerpt of what Rocket Loader does :
- Asynchronously loads scripts (including third-party scripts) so
that they do not block the content of your page from loading
- Caches scripts locally (using LocalStorage, available on most
browsers and smartphones) so they aren’t re-fetched unless
More information can be found here.
Use Genesis Framework for WordPress
If possible switch to the Genesis Framework by StudioPress for WordPress because their themes are clean, without any bloat. Genesis framework and their child themes are built with speed, security, and SEO in mind. I myself have tested it out around a few times and my Google PageSpeed scores were pretty damn good. Also if you’re using Genesis, then don’t forget to enable the ‘fragment cache’ extension in W3 Total Cache settings.
Since the Genesis Framework and all its child themes fall under the premium WordPress themes category (paid themes), not everyone can afford to buy them. So, I’ve got an excellent free Genesis themes alternative for you. Go for GeneratePress, the new kid on the block who’s performance can easily be compared to that of Genesis. Moreover, it is clean, simple and weighs less than 1 MB. GeneratePress is just a single theme but it offers all the best features of Genesis framework – it is lightweight and fast, fully mobile responsive, secure and stable yet developer friendly with full microdata integration.
Bonus Reading –
Since now you’re using Cloudflare as a CDN, you can make use of a plugin like ‘Imagify‘ or ‘Compress JPEG & PNG images‘ by TingPNG to compress your images. Both are free plugins available in the WordPress.org plugin repository. Also, Imagify supports the powerful lossy compression algorithm.
Remove query strings
Use Google’s AJAX Library API CDN
Then install the ‘Use Google Libraries‘ plugin by Jason Penney. This plugin allows your WordPress site to use Google’s AJAX Library API CDN rather than serving these files from your WordPress install directly.
Some of the key benefits are:
- Increases the chance that a user already has these files cached.
- Takes the extra load off your server.
- Uses compressed versions of the libraries (when available).
- Google’s servers are set up to negotiate HTTP compression with the requesting browser.
Optimize WordPress Database
Last but not least, use the ‘WP-Optimize‘ plugin by Team Updraft and Ruhani Rabin to clean and optimize your database so that it runs more efficiently. You can also consider limiting and disabling post revisions in WordPress. If you don’t know how to do that, I’ve got you covered. Click here to read how to limit or disable WordPress post revisions.
Hope this helps you with regard to optimizing WordPress to reduce server load.
Also Read: How to make WordPress site HackProof