A slow WordPress website can be a curse. Not only for SEO, but also sales. Thankfully, there are ways to make a website faster. It just takes a little work to get it right. If you are hosted with us and your website isn’t loading fast you can rest assured that the problem is not with the hosting, but something (or multiple things) on the website that’s causing the slow load times.

If this is over your head we do offer a one time speed optimisation service. Please be aware that the results depend on a number of factors ranging from your hosting to how willing you are to remove unnecessary content, plugins and widgets. Every recommendation we make, we make for a reason. If you are on our hosting we can guarantee that the site can be extremely fast if you follow our instructions. If you are on a budget host it can be like putting tractor tyres onto a V8 sedan. We can make the engine roar, but if the tyres (host) is big, slow and bulky it won’t make much difference. To purchase the one time optimisation service follow this link. If you have a hosting account or are an existing support client you can select the addon at the discounted price ($100 off) from the addons section in your account area.

Step 1. Rule out plugin and theme conflicts

If you suddenly find that your website has become feet draggingly slow, it could be due to a plugin or theme conflict. This is one of the easiest, but most frustrating problems to solve. I’ve experienced sites going from under 2 second load times to over 2 minutes due to a bad plugin.

How to solve a plugin conflict:

  1. Disable all plugins
  2. Enable one plugin at a time and test the site speed. If it suddenly goes slow after enabling a plugin you’ve found the problem
  3. When you find the bad plugin look for an alternative. If none exist open a support ticket with the plugin author
  4. Leave the plugin disabled if you can do without it

If the plugins aren’t to blame look at the theme. Simply switch to a different theme, preferrable a default WordPress one such as Twenty Nineteen. If the problem lays with the theme you may have no other option but to switch to a different theme, but still inform the theme author to see if they can resolve it.

Doing this should help work out this problem

Step 2. Check your PHP version

WordPress runs on PHP, which is a type of programming language which allows for the dynamic pages that WordPress can create. As with everything, it has gone through changes over the years, and among those changes have been performance boosts.

To see if the PHP version is the problem log into your hosting control panel and look for something like PHP selector. Once you find it make sure it’s not on anything 5.x.x. Between V5.6 and V7.0 there was a more than doubling of performance, and many hosts still offer 5.6 as the default version (we default to 7.0, but go up to the most recently available versions). Ideally, you’ll want 7.2 or newer. If you can’t find the PHP selector ask your host for assistance. If we are your host, open a ticket and we’ll assist as soon as possible.

Just be aware that changing the PHP version can break your website if there are plugins or themes that aren’t using supported PHP versions in their code.

Step 3. Install and activate cache

This is an incredibly crucial step when operating a WordPress website. This will dramatically improve the page loading times. How does it work?

We said earlier that WordPress is made with PHP, but the problem is web browsers can only read HTML, CSS and Javascript. PHP is converted to HTML on the server (hence why a newer faster version of PHP is recommended). This process takes time to complete, quite often several seconds. Without a cache running it has to complete this task with every single page load. An easy way to understand it is like typing out an A4 page for thousands of people. Typing it out each time someone comes along takes a long time, but if you were to go to the photocopier and run off thousands of copies all at once it would take just seconds. This is essentially the same process.

If you’re on our hosting we recommend using Litespeed Cache. Once installed it will be automatically active and running, making your site faster. You can extend this further by enabling the advanced settings. This will take a while to do and require testing after each step, but will help you see dramatic improvements in loading time.

If you are not hosted with us we strongly recommend using WP Rocket. This is a premium plugin, but one of the best cache plugins money can buy. It’s easy to use and configure. While it isn’t free, it’s money well spent.

Step 4. Image optimisation

This is one of the most common problems I encounter, and it’s so easy to avoid. The reason images are a problem is because of improvements to technology. Digital cameras can take larger images and websites can do more things. Reducing images is one of the main things that you can do to improve your website loading speed.

How to do improve website speed by optimising images?

  1. Reduce their size. You will need to use an image editor for this. There are high quality paid ones such as Photo Shop, but there are also free ones such as Paint.net as well as online tools. Needless to say, you get what you pay for, but if you are tight for cash, Paint,net does the job quite well. You can get it at getpaint.net. You’ll need to reduce the physical size of the images (width in px and height in px). You really don’t want them to be wider than the content width of your current theme on a desktop.You can usually find the width in the customiser, but if you can’t find it you can use the developer tools or simply take a screenshot and measure the width with an image editor. By reducing the images to the max-width of the content area you’re ensuring maximum size and quality
  2. Save them as JPG. GIF and PNG images are often larger in size, and unless needed it’s recommended not to save and upload them as anything else other than JPG. For images than need a transparent background you can use PNG, and for animations use GIF, but try not to overuse them.
  3. Optimise them prior to upload. IO like to use tis free online tool for image optimisation. I generally prefer to optimise them before uploading as it not only removes the need for later optimisation, but leads to a faster upload time and less wasted space on the hosting account. If you need good quality images use lossless compression. If you don’t mind losing a little image quality use lossy. Lossy compression will mean you lose some image quality (barely noticeable) but result in a much smaller image. Lossless compression means no loss in image quality, but a larger image file than lossy. This is a personal preference. Product images should ideally be lossless, blog images (if not a photography blog etc) should ideally be lossy.
  4. Optimise after upload. If you are with us and using Litespeed Cache plugin there’s an option in the settings to automatically optimise the images and to use WebP versions (more below). This setting will automatically optimise the existing and new images for you, saving you countless hours. If you are not using the Litespeed cache plugin there are plenty of image optimisation plugins available. I recommend using Optimus.io as it offers teh webP versions (premium).
  5. Optimise for WebP. WebP is a new image type developed by Google. It’s mainly used on Chrome, but is expected to be adopted by more browsers over time. WebP images are smaller than JPG and PNG versions by about 30% without any loss in quality.
  6. Lazy load images. By lazy loading images the image will only load when the image comes into view. For a large page this can improve speed considerably because it only loads the images when needed

Step 5. Remove iframes

If you are loading iframes on the pages removing them will improve the loading speed. There is an option in the litespeed cache settings to lazy load iframes which is a good option if you prefer to keep them. Iframes can lead to slower loading pages, and removing or lazy loading them will increase the overall performance of any page they’re on

Step 6. Remove unnecessary external connections

This is another problem I encounter a lot and are usually caused by social networks, but other services can also slow down a website. What happens is each time you load something from another website, be it Facebook, Instagram or Mailchimp, the visitor needs to connect to another site then load that content. This adds seconds to each page load time. The more connections, the slower the page. To compound the problems, many people will test with GT Metrix which recommend changes to these external sources you simply cannot make.

It’s worth considering the following before making any decision.

  • How much value does the service or widget offer?
  • How much of an impact on performance does it deliver?
  • What effect does it have on sales and time on site?

As you can see, there’s a lot to consider before moving forward. Let’s take a look at the usual culprits.

  • Payment gateways. These must be in place to receive payments
  • Social network feeds
  • Review widgets
  • email marketing services
  • Live chat windows
  • Ads

While there are more, these are the most common.

Payment gateways. You can’t do without these if you are running an ecommerce store, so keep them in place.

Social network feeds. These are a killer, both for speed and conversions with the lead offender being Instagram. Many websites will load their pages with social network widgets for social proof and to grow their customer base and following. The problem with social networks is they all make connections, load images and generally slow a website down. Instagram has the added disadvantage of looking like a product which drives potential buyers away from your site, resulting in a lost sale. I’ve lost count of the number of times I’ve clicked on an Instagram link thinking it was a product. It simply results in a lost sale

Review widgets. Reviews can be vital for a business success, but it is possible to succeed without using a third party souce that kiils website speed

email marketing. There are very few alternatives to these, but they do exist. There is a premium alternative available, Mailster, but it does require a bit of work to setup. The benefit of Mailster is the contacts are stored locally and avoids external connections. You can also save on monthly sending by using Amazon S3 for the sending, which is considered the cheapest method available.

Live chat. If you need live chat, there’s not a lot you can do here.

Ads. If your website is dependant on ad revenue reducing the number of ads will not only improve user experience but increase the page loading time

Step 7. Reduce the number of active plugins

Every time you add a plugin to your website it adds code. The more code on a page the slower the site will load. It’s imperative to only load the plugins that you absolutely need to perform the task your website is aiming to fill. When you have a look at your plugins you need to ask what each one does. Does it perform a necessary task, or simply make things pretty? Does making things pretty improve user experience and help with conversion? In most cases you’ll find a good handful of plugins that you can remove without causing any problems to your website.

Step 8. Use a Content Delivery Network (CDN)

A CDN is usually considered a premium service and out of reach for most website owners, but the benefits are simply amazing. A CDN will distribute the static files that don’t change, like images, JS and CSS to a globally distributed network of servers. When a visitor from one location visits your website those files will be loaded from the closest server to the visitor, reducing the time to load those resources. All that’s left to load from the server is the content that’s dynamic in nature. This will mean a dramatic increase in performance.

If you are hosted with us we make available access to a free CDN at no additional cost. It’s another reason to host with us. If you are not hosted with us KeyCDN offers competitive pricing and an easy to use plugin.

If you can’t afford a CDN and are not hosted with us the Jetpack plugin has a module which will allow images to load over the WordPress.com CDN.

Step 9. Disable Cloudflare (if in Australia)

This is a contentious subject, and one many developer and hosts, even in Australia, wouldn’t be aware of. Essentially, Cloudflare is of no value to Australian businesses unless you are willing to subscribe to their US$200/m service.

Now, as I said, not many people are aware of this and you’ve likely read millions of articles and been told by innumerable people to use Cloudflare. Unfortunately, if your business is in Australia, you need to disconnect it immediately.

The problem comes down to the refusal of the three largest ISP’s in Australia refusing to partner with Cloudflare. In an announcement on the Cloudflare Blog, Cloudflare acknowledged the cost their decision had on their total worldwide revenue, so decided to no longer keep their free or base plan subscribers in Australia. What happens now is when a visitor visits your website instead of being served from the nearest Cloudflare network, which normally reduces load time, the visitor is sent offshore, normally to the US and back again. This adds a lot of time and can be solved simply be disabling the DNS options in Cloudflare or reverting the nameservers to their default host ones.

Alternatively, if you have the cash, purchase their business plan which will see visitors retained in Australia.

If your traffic is outside of Australia it’s recommended to enable Cloudflare

Step 10. Redesign the pages

One of the most visited pages on your website will be the homepage, and it’s the one that’s always used to test performance. by cleverly redesigning the homepage you can improve the overall performance of the site.

Try to aim for a small page. I’ve seen pages that have been over 30MB in size. Needless to say, this is insane, and won’t load on most mobile devices. The smaller the page, the faster it will load. A page under 1MB in size should be the goal, but under 3mb can be acceptable. Anything larger is nothing short of a disaster.

Try not to use too many large images on a page and avoid background images. Background images will stop a page from rendering (appearing) until it has finished loading. This is due to the way the page is put together. Background images will load before the rest of the content so the page is visually correct on first paint. This causes other content to stop loading, essentially causing a blank page for much longer than is necessary. Reducing the number of large images and not loading background images if you can help it will result in a faster page.

Make sure your images are no larger than they need to be. If the space only needs to be 300px wide don’t upload an image 800px wide. The page will load a larger image than is necessary. Manually resize the images then put them into position.

If you have an eCommerce store such as WoCommerce, don’t place products on the homepage. The products will load a large image and more WooCOmemrce data than is necessary, slowing the page down. Instead, place a static image that links to the product or product category manually.

Step 11, Remove sliders and carousels

These look pretty, but kill performance and conversions. Sliders and carousels are bulky by nature, and even worse once their content has been added. Due to the nature of WordPress, these plugins with all their content will load on every page, even ones they’re not needed on, causing the entire site to bog down in their slowness. In their place use static images and products instead.

Step 12. Don’t use page builders

This is a difficult one for anyone who doesn’t know how to code. Page builders, such as Elementor, Beaver Builder and Divi make it easy for the average person to build a stunning website with no coding experience. The only downside from them is they have a negative impact on site speed.

Page builders serve a purpose, and when we build a site we use them so that the website owner can easily make changes when and if they want without requiring coding experience. However, if you are able to code an HTML page, not using a page builder will make your website load faster.

Step 13. Don’t host your own videos

Not many people will be fussed with this anyway, not with the likes of YouTube available. There are plenty of reasons not to host your own videos, among them the added difficulty of creating different versions for different devices and the size and speed of them. A video is normally much larger than most other content you’ll load on your website, and the average hosting account will have difficulty streaming the video. Instead of fighting a losing battle, it’s recommended to upload the videos to someone like YouTube and then embed the videos into your post. Not only does it take the stress out of it, but it will load the pages much faster.

Step 14. Remove WooCommerce scripts and styles from non-WooCommerce pages

You’ll likely have pages without WooCommerce on them, but due to the way WordPress works the scripts and styles will continue to load even when not needed. This will make those pages load slower. You can prevent these pages loading the scripts and styles by placing the following code into your functions.php file.


add_action( 'template_redirect', 'remove_woocommerce_styles_scripts', 999 );
function remove_woocommerce_styles_scripts() {
if ( function_exists( 'is_woocommerce' ) ) {
if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() ) {
remove_action('wp_enqueue_scripts', [WC_Frontend_Scripts::class, 'load_scripts']);
remove_action('wp_print_scripts', [WC_Frontend_Scripts::class, 'localize_printed_scripts'], 5);
remove_action('wp_print_footer_scripts', [WC_Frontend_Scripts::class, 'localize_printed_scripts'], 5);
}
}
}

This will be even more beneficial to your website if you remove all content relating to WooCOmmerce, such as wooCommerce shortcodes from the homepage

Step 15. Avoid the rabbit hole

Chasing a perfect page speed score can be like chasing a bunny down a rabbit hole and lead to nothing short of bugs, downtime and frustration. What do we mean?

Many people will focus on the score presented in page speed reports and not the actual load time. The tools that generate the reports are just that, tools. They measure certain metrics and make recommendations based on the results. Not all of these are actionable either as many will be on external websites you have no control over. While a site might get a score of 56 out of 100 it might be loading in 2 seconds, which is very fast. Likewise, a site may get a score of 95 out of 100 but take 13 seconds to load, which is slow. Using these examples you can see how the scores can be misleading to the overall website performance.

I’ve seen many people spend days or weeks chasing a few points to make their website load 0.01s faster. Clearly this is time that could be better spent getting conversions on the website. Instead of looking at the score, look at the time. That’s the metric a real user will take into consideration, not stuff hidden deep in the code they have no idea even exists.