This list is meant to help you optimize your WordPress website to the best of it's ability. Some things cannot be optimized, such as how your hosting company has configured their settings, if you are using a badly coded and bloated theme, or if the plugins you use require a lot of external resource calls. Some things on this list may be daunting, and if you require further assistance don't hesitate to contact me. Even doing just a few of the items on this list should improve the loading time of your website. *Always backup your website before making any changes to it.
*Disclaimer, any link with the * uses my affiliate link.
Before we begin it's best to run an analysis to see what optimizations you could apply or if you even need to optimize your website. I recommend using GTmetrix, Pingdom, or Google PageSpeed Insights. After scanning your website you will see a list of recommendations usually ranked by priority. It's best to take a look at Yslow and the waterflow chart to see what takes the longest to load and apply optimizations where you can based of of that.
Remember to not obsess over getting your website to an A or 100% ranking because for one, that may not be possible to do for your website without sacrificing functionality, and two it really is not worth the effort, if the optimizations you can apply help your website load between 2-3 seconds without getting a 100% score.
1. Choose the right Hosting Company
Make sure the place where your website lives is a healthy one. Choose a good hosting company that cares about performance and runs the latest version of software like PHP 7 and up. If GTmetrix or any of the other page speed analyzers say your server response time is slow it might be time to contact your host to see if they will improve their service or switch hosting companies.
The hosting companies I recommend are *Websavers and *Siteground
2. Use a fast and well coded WordPress Theme and Page Builder
Try and find a theme that is not bloated, what I mean by bloated is it has a lot of features, but most of them you don't have a use for. Bloated themes tend to run slower due to lack of proper coding and they have pre-packaged plugins that could be coded badly or require a lot of external recourse calls. *Protip, most themes will work with your favourite plugins, and you can pick and choose the best ones based on your specific needs. Therefor, you do not need to purchase a pro theme to have the functionality you require. I recommend starting out with a theme that has basic features you can easily add onto like *GeneratePress and choose a well reviewed and easy to use page builder such as *Beaver Builder. Reading theme reviews by developers will help you decide if a theme is well coded, and worth the purchase.
3. Use Well Reviewed and known plugins
Plugins are fantastic for extending the functionality of your WordPress website but make sure the ones you use don't take up a lot of your server resources or need to make excessive calls to external servers.
When choosing plugins make sure they have been updated in the last month, have a high installation count and of course good recent reviews. I do not recommend downloading a plugin that is not in the WordPress plugin database as it runs a higher risk of being malicious.
4. Optimize your images for web
Images are easy to overlook when it comes to optimization but can make a huge difference when optimized correctly for web. Why? Because the larger the file size of the image the more time it takes to load that image for your visitors, and especially on the phone where users will be using their data.
Before uploading an image to your website it's best to re-size it to 72 dpi in an editing program like Adobe Photoshop or GIMP. The lower the file size is while retaining it's quality the better. Another great tool I love to use is a website called tinypng, which does lossless compression of your photos thereby further reducing the file size.
If you have a lot of photos already on your website that need to be optimized I recommend installing an image optimization plugin such as WP Smush or Imagify. You can batch compress pre-uploaded photos on your website and set it to automatically optimize your photos as you upload. But keep in mind it is still better to manually optimize your photos first, especially if they are 2-5 MB in size.