Are you having issues with slow-loading WordPress websites? What can you do to resolve WordPress performance issues?
Yes, it can be pretty frustrating for you and your visitors if your website is slow loading. As most of you know, Google started to take speed, specifically Core Web Vitals scores, into account when ranking mobile websites from May 2021 onwards, and the desktop scores are soon getting into account as well.
There is no need to despair as it is not too hard to make your website load fast, and here I will take you through the most common issues that affect the WordPress website speed and give you some pointers on how to fix them.
Currently, according to Core Web Vitals Technology Report, 35% of 2.35 million web pages pass the CWV criteria. Out of the total analyzed 1.9 mil pages on WordPress, 25.3% pass the Core Web Vitals. For WordPress websites, in January 2022, the median Lighthouse score is only 32%!
Table of contents
- Keep your website updated
- Slow hosting
- Using a CDN
- One-fits-all theme
- Unoptimized plugins
- Unoptimized images
- Large page size
1. Keep your website updated!
This is the most obvious one that most users overlook, WordPress website updates! Only 26.7% of WordPress core is updated and running the latest 5.7 version! 17.5% use previous WordPress version 5.6, while a staggering 55.8% of WordPress installs are using outdated versions. The same thing applies to your theme and plugins. It is important to keep everything updated for performance and security. If a theme or a plugin you are using has not been updated for a long time, you should consider replacing it with the more recent alternative.
2. Slow hosting – choosing a hosting relative to your website needs
This is where it all starts. It is a fact that over 85% of my client website optimization projects start with changing hosting and migrating the website. It is usually one of the biggest problems and solutions to slow-loading WordPress websites. The most obvious sign is the server response time and time to first byte (TTFB) scores. You can test them with various online tools like GTMetrix and ByteCheck. If you have an issue with your hosting, you can check my list of the fastest WordPress hosting companies that I recommend. Always get the best hosting package that you can comfortably afford, do note that expensive does not always necessarily mean good.
Each time a visitor comes to your website, their browser needs to look up the DNS) to know the IP (Internet Protocol) address of the server where your website is located that your domain name points to.
Different DNS providers have different response times for resolving the IP address from a domain. A slow DNS provider will affect the overall speed, and most notably, the Time To First Byte (TTFB) metric.
There are a couple of consistently fast DNS providers, some are free, and some are paid. One of the best free ones is Cloudflare. Cloudflare is free for basic services, DNS, CDN, and WAF. You can use it for just DNS if you do not need the others. To do so, just set up Cloudflare and add your domain. After setting it up, you can pause Cloudflare services, but it will keep the DNS resolver. Some other fast DNS providers are Google Cloud DNS and Hurricane Electric.
WordPress is written in PHP, so your server needs to have it installed to run your WordPress website. Like any other software, it is important to stay up to date. For both speed and security, always choose a hosting company that offers the latest PHP version. At the moment, the lowest version I use on client sites is 7.4, and it is the recommended one (used by 25.8% of WordPress installs), but also quite a few of the sites I manage are already running on PHP 8.0.3, which is the latest version as of 4 March 2021 (used by only 0.2% of WordPress installs).
HTTP is an application protocol that is the standard for communication on the World Wide Web since its invention in 1989. First, you must have an SSL certificate and serve your website to visitors with a secure HTTPS protocol. The newest version of the SSL protocol is called TLS, and its latest version is 1.3. Transport Layer Security, or TLS, is a widely adopted security protocol designed to facilitate privacy and data security for communications over the Internet. A primary use case of TLS is encrypting the communication between web applications and servers, such as web browsers loading a website.
There are also a few versions of the HTTP protocol, the latest being HTTP/3. Although HTTP/2 is in use since 2015 and gives a significant boost in loading the websites by loading assets in parallel that is not possible with the previous version of HTTP/1.1, many web hosts are still not using it! The upcoming version HTTP/3 uses QUIC, a transport layer network protocol initially developed by Google. At the moment, only 7.32% of desktop web browsers support HTTP/3, while no mobile browsers support it. If a website is not served via secure protocol TLS (or SSL), only HTTP/1.1 can be used, meaning a slow-loading website.
The point to note is you must have an SSL certificate installed, use a secure TLS connection and serve your website to visitors with HTTPS secure protocol.
Caching is the term used for storing and reusing the website or application assets and elements to save server resources. It offers a better user experience. WordPress cache allows you to serve web content fast while keeping the server available to handle other requests.
There are several layers of caching your WordPress website. You can cache database queries, PHP-executed code, and whole-generated pages. The server handles the first two, and page caching is usually handled by a plugin that generates static pages from your WordPress content.
Caching pages is one of the most important ones as it speeds up loading times and reduces server resources needed for processing by serving finished static HTML pages to your visitors.
Some of the performance WordPress hosts implement page caching for you (like WPEngine and Kinsta), but you can also use free plugins for page caching on most hosts. Popular free plugins are WP Super Cache, WP Fastest Cache, and W3 Total Cache. From the premium plugins, I can highly recommend one that I use mostly, the WPRocket (use this link to get 20% OFF, not an affiliate link).
4. Using a CDN
CDN is a Content Delivery Network, essentially a network of servers worldwide used to store your website resources. I already mentioned using Cloudflare for DNS resolving, but you can also use it as a CDN to deliver your website content assets like images, CSS, and JS files from their servers worldwide. Why? So the files needed to display your webpage are downloaded by your visitors from the server closest to them, speeding up the load time by lowering the distance that data needs to be transferred. Physical distance affects the loading speed, and visitors worldwide will not have your website loading at the same speed.
The downside of free Cloudflare CDN is that it is not always using a server closest to your visitors to serve the files. To rectify that, you need to use a paid plan or another paid CDN provider like BunnyCDN or others.
Also note that if you have mainly local visitors and clients, you do not necessarily need a CDN and it can actually prove to load your website slower with it than without it. CDN is useful if you have global visitors.
5. One-fits-all theme
When starting a new website, one-fits-all themes seem great for beginners, but this can be an issue as most websites use only a fraction of the features from such themes. All the remaining features, not used, are still there, putting extra weight on your server resources and, in most cases, loading code for your visitors that is not needed. Top of all, it can cause WordPress performance issues.
This one is difficult to fix if you have a website with a lot of content since changing a theme can be costly and time-consuming. That is why you should carefully select a theme when starting. You can find some of the great choices on the resources page with the top 5 choices when choosing a fast-performing theme.
6. Unoptimized plugins
You should be careful when choosing the plugins you install and activate on the website. I mentioned before that any inactive plugins should be uninstalled as those can pose security risks. When choosing plugins, you should consider a few key points: how long has the plugin been in use, how many active installs it has, when was the last time it got updated, does a developer or company have experience and other plugins, how good is the support, is there a paid version of the plugin. Other than these factors, more in-depth analysis is for advanced users (developers) who can inspect the code execution, database queries, and database used by the plugin.
In general, I will repeat myself yet again, using as few plugins as possible to get the website working as you want it to. Concentrate on the main goal of starting and growing your website business with basics, and then gradually improve on it when the need arises. You do not need all the extra fancy features for your website that you or users will rarely use, if at all.
7. Unoptimized images
Images make the largest impact on design, but also on the loading speed. In my experience, optimizing images improves the loading speed and scores significantly. On average, images account for roughly 35% of page size on average, but for many websites, that percentage is even much more.
There are many image optimization plugins, but nothing beats the right image sizing and optimization before actually uploading the image to your website. You can use the simplest tools like IrfanView to resize and save the optimized images for the website.
Install both IrfanView and its plugins from this page. First, you need to know the image sizes used on your website; always use the largest dimensions that are actually used. Normally it is the 1920px max for hero full-width images, although most will look great at the size 1280px as well. When you resize the image, save it for the web with jpeg quality 82, or you can even try 71, which works for most images without degrading the looks. Do not use PNG or GIF formats. PNG is ok sometimes for monotone images or drawings, but in most cases, JPG is the smallest. For optimizing images on your WordPress website, use a plugin EWWW Image Optimizer or services like EWWW Cloud and Imagify.
Secondly, you should create a webp version of the images and serve those to the modern browsers that support the new image format. For this, you can use a plugin that will help and save a lot of work, like WebP Express.
If you have a lot of images, you might consider lazy loading them. This is an optimization technique that loads visible images but delays the downloading and rendering of images that appear below the fold. WordPress, as of 5.5, has a native lazy loading feature as well and is lazy loading images by default.
6. Large page size
Many times I get clients that have pages that are 5-10+MB in size. This is the amount of information a visitor browser needs to download in order to display the page to the visitor. Limiting the size to as low an amount of data as possible is the goal here.
The first web page appeared in 1990. Adding all sorts of fonts, images, videos, and CSS / JS files to the websites and with years of tech development, the sizes of pages have significantly increased. In 2010, the median web page size was 702kb and in February 2022 it is 2385kb, while the 90 percentile of web pages is 8469kb in size, according to information provided by httparchive.org.
The goal should be to have web pages as light as possible, hopefully well under the 2000kb (2MB) range.