Why Is My WordPress Website So Slow?
In the past 10+ years as a WordPress developer I have worked on countless slow websites. Each one is unique in its slowness, but there are some common issues that nearly all slow websites have. The good news is that most of these are fixable without spending countless hours and thousands of dollars. So let’s take a look at what may be ailing your website’s speed and let’s get everything running at peak performance. Not only will your site visitors love you more, but Google will also be impressed.
Low-quality Web Hosting Services
Most new website owners fall into the trap of relying on low budget web hosting. This is especially tempting with all of the other costs a business has and who doesn’t want to save a few dollars here and there? While the hosting provider’s site may look impressively designed and their offers may appear to be a real bargain, you often get exactly what you pay for. It is common knowledge that if something sounds too good to be true, then it probably is. While there are some things that defy that philosophy, cheap web hosting is not one of them. With hosting, you will have to pay for quality and anything less then will be clearly displayed in the performance of your website.
If you’re not sure about your current web host, take a look at the following list of warning signs:
- Slow loading pages
- Inconsistent load times
- Random error messages
- Frequent downtime and white screens
- Non-responsive or hard-to-understand customer support
- Website hacks
- Additional costs for all extras such as SSL and CDN
- Lack of help after purchase
- Outdated software or server hardware
- Low site conversions and sales
How do we fix it?
If your website is experiencing any of these issues it’s likely time to upgrade to a high quality web host. Quality web hosting typically starts around $35 per month for small websites and upwards of $200 per month for larger scale eCommerce websites. Make sure to discuss your website with a developer before purchase so you know exactly what level of resources your site will need for best performance. Look for web hosting not by “brand name” but instead by the quality of service, all the included options, hosting specialty and client reviews.
Non-optimized Images and Media
Another common area of slow WordPress websites is the use of non-optimized images. This is typically done by individuals creating new pages and posts and then uploading media images directly from their phones. These images load quickly on your device but are actually extremely large in size and dramatically increase your page load time. A typical photo taken from an iPhone 13 is 4MB in size. When this same image is uploaded to your website without first being optimized, it alone can add seconds to the load time.
Let’s imagine that you have a single blog post with 3 or 4 of these super-sized images. Your load time for that single blog page could be upwards of 6-10 seconds simply because of the images. Your website visitors are not going to wait around that long and you will miss out on an opportunity to convert that visitor into a customer.
How do we fix it?
Optimizing images is a multi-step process that includes first resizing each image and then compressing them. These steps are best done previous to uploading the files to your website. If you are experienced using professional software such as Adobe Photoshop, optimizing your images can be done very quickly and even automated in batches.
If you do not have access to Photoshop, there are some excellent free online resources that can help:
- Adobe Express – https://www.adobe.com/express/feature/image/resize
- Resize Image.net – https://resizeimage.net
- Compress JPG – https://compressjpeg.com/
- Compress PNG – https://compresspng.com/
As mentioned before, it’s generally best to optimize your images previous to upload. There are though WordPress plugin options that can assist the process after upload. If you’re not experienced with working with images or you want the convenience to just upload and let your website do the hard work, take a look at the following list of quality WordPress image optimization plugins:
- Smush – https://wordpress.org/plugins/wp-smushit/
- Optimus – https://wordpress.org/plugins/optimus/
- EWWW Image Optimizer – https://wordpress.org/plugins/ewww-image-optimizer/
When resizing your images, you should make them no larger than the largest area where they will be used. Images taken directly off a mobile phone can be as large as 4000px wide while the largest display size is typically about 1920x wide. The larger the image size, the longer it will take to load. If you are using the images in a blog post, check the width of your blog layout and then match the images to the same size.
My go-to website performance testing providers are Google Pagespeed and Gtmetrix. There are many others out there, but I feel that these two provide the most accurate results with legitimate help in fixing reported issues. One of the most commonly found problems is with CSS and JS files. This is especially true with slow WordPress websites.
WordPress and its seemingly endless array of plugins is awesome. It helps developers and novices alike build high-quality websites with advanced features like eCommerce and event management. But with all that great software comes hidden problems that can turn into ugly website slowdown.
Your website’s theme comes with a series of CSS and JS files that load on every single page. If properly coded these should have a minimal effect on load time, but often times these files are setup to be render-blocking as well as not optimized. The term render-blocking simply means that nothing else on your webpage will load until that specific file has completed. Each time you add a new plugin to your site, you are increasing the number of CSS and JS files that are loading. Your website can eventually get to the point where all of these files are taking multiple seconds to load and ruining the experience for your visitors. It is vitally important to only use plugins that are absolutely necessary and to only use those that are professionally coded and continually updated.
How do we fix it?
The first step is to review all of the themes and plugins currently running on your site. Are there any installed that go unused or that are unnecessary? If so deactivate and remove them to help reduce the total number of files loading. This also helps keep your site free of bloat. Once you have cleaned everything up, check to make sure the remaining files are being properly minified and set to be non-render-blocking. It is likely that you will have a few CSS files that need to be downloaded before showing the rest of your webpage, but nearly all JS files can be deferred until later.
If you have direct access to the CSS and JS files and know what you are doing, I highly suggest minifying these files before upload. You may have read elsewhere about combining all of your CSS and JS files into 1 single file. While you should try to condense your code into as few files as possible, it is no longer recommended to combine all of your files together. Generally, loading one very large file will take longer than loading a few smaller files. If you are not experienced in this manner, there are some quality WordPress plugins that can assist.
- Fast Velocity Minify – my personal favorite – built for developers with a strong knowledge of web and server settings – https://wordpress.org/plugins/fast-velocity-minify/
- Autoptimize – https://wordpress.org/plugins/autoptimize/
Unclean Code, Outdated Software and PHP Errors
A major source of website speed issues stem from the use of outdated or poorly coded themes and plugins. It is tempting to install every cool sounding plugin you can find, but this is a recipe for site bloat and high load times. Even some very well-known plugins can cause serious performance issues with your website. My apologies to the Automattic company, but I feel the need to call out the Jetpack plugin for being one of these. Jetpack and other similar software contain a vast array of features that appear to be a one-stop shop for everything WordPress. The reality though is that most websites will never use 95% of what is included and nearly all websites that install Jetpack experience long-term performance issues. Before installing any new plugin on your site, first take an initial speed and performance test and then re-test after the install. If you see a substantial decrease in performance, deactivate and remove the plugin immediately.
Another important step to take is to check your hosting server for error messages. Most quality web hosts will keep a log of PHP errors and slow running processes. If you are seeing performance problems on your website, check these logs to see if something is going on behind the scenes. Most error logs will be separated into “Warnings” and “Fatal Errors.” Warnings can be a sign that something is not working as it should or that there is an issue with the coding of your website. Your site will still function with warnings, but performance is often degraded. Fatal errors on the other hand can halt a website in its tracks. If you have experienced pages not loading, visible error messages or white screens, it’s likely you are seeing the effects of a website fatal error.
If your web host does not make an error log available to you. You can optionally turn on WordPress’ own debugging log. This can be setup to either display the error messages directly on screen or in a log file located in your /wp-content/ directory. You can read more on turning on the DEBUG mode at: https://wordpress.org/support/article/debugging-in-wordpress/
How do we fix it?
As previously mentioned with JS and CSS files, the first step is to audit your installed themes and plugins. Remove everything that is not actively being used and search for alternative plugins for any that are performing poorly. WordPress will display the last updated date for each of your plugins within WordPress admin. If you are using any plugins that have not been updated within the last year, it’s time to consider replacing them. Not only is this best for website performance, but outdated plugins and themes are a huge security risk for your website.
After performing your website audit, check your log files for errors. If you locate any errors, they should be fixed as soon as possible. If you are experienced writing and editing code, I urge you to take on the challenge to fix these yourself. If not, seek out a high-quality developer or agency that can assist you. Make sure to be as specific as possible when discussing the issue you are seeing including any error messages. The more info you can give a developer up-front, the faster and cheaper the issue can be resolved.
If the coding issue resides in your WordPress theme, you can contact your theme provider for assistance. Often they will address issues with their theme by including a bug fix in their next update. If your theme is no longer being updated or the provider is not responsive to your support requests, its likely time to switch to a new theme or a custom design.
No Web Caching or CDN
Slow WordPress websites that run without caching have to recreate every single webpage for every single visitor every single time. This is a common and major source of website speed problems. There are two main types of caching available, web cache and object caching. Web caching stores a dynamic website as a static file that is then made available to all future visitors. Each time a webpage is loaded, behind the scenes multiple tasks are taking place. Code is being interpreted, databases are being queried, DNS lookups are occurring and so on. This process takes resources which increases the time it takes for your webpage to load. With web caching, most of these tasks occur only for the first website visitor and then future visitors will benefit from the stored cache. The difference in load time for non-cached vs cached can be considerable. Most web caches will clear after about an hour, but that can be adjusted to meet the needs of your specific site.
The second type of caching is called object caching and it occurs when your website database is queried. The result of that query is then stored for a duration of time so that the query doesn’t have to happen over and over. Most website queries are repetitious so limiting those helps improve site performance. As with web caching, the duration the cache is held can be adjusted for each site. Object caching is less common than web caching and only provided by some hosts.
A CDN or content delivery network, is a series of web servers, located all over the globe, that each house your website. The CDN network is configured to serve your website visitors’ files from the sever closest to their location. This greatly reduces the latency time of downloading files for all users, no matter where they are from. Take for instance a user in New York attempting to access your business located in Los Angeles. Without a CDN, that user would have extra lag time while the data is transferred across the country. A CDN instead makes a full copy of your website and places it on a server located closer to your user. Instead of accessing files in Los Angeles, the files could be located within just a few miles of their current location.
How do we fix it?
Both web and object caching are features of quality web hosts. When selecting a web host, caching has to be considered and any provider that does not offer it should be avoided. Some hosts will charge extra for this service or will only turn it on after being requested. If your hosting solution does have caching, make sure to turn it on and configure it for your website. If you have a membership website where users are logging into their own accounts, it is best to turn off caching for those account areas. You do not want one user to accidentally see personal data that was cached by another user. I generally turn off all caching for logged in users. While this does degrade the site performance a bit, it is generally a better overall user experience.
There are also WordPress plugin options to assist with page caching. Caching is something that should be done on the server level, but if that’s not possible in your case, using a plugin can still help. I suggest using any of the following:
- Wp Rocket – https://wp-rocket.me/
- Cache Enabler – https://wordpress.org/plugins/cache-enabler/
- Comet Cache – https://wordpress.org/plugins/comet-cache/
Utilizing a CDN can be a service provided by your web host, or a third-party. I suggest choosing a host that integrates a CDN into your hosting package and one where you do not have to do any additional configuration. If that is not possible with your host, you can also secure CDN services through a platform such as Cloudflare.com.
Website speed and website performance are vital to the success of your website. Visitors are not willing to wait around for your website to load and it can be very frustrating to not understand why you have a slow WordPress website. Take some time to really dive into your website and go through each of the points in this article carefully. As you improve each area, you will begin to see the fruit of your labor with better search engine results, happier visitors and more sales. If you’re in need of a high quality developer to assist, we are here for you at Website Restore. We have increased the speed and performance of hundreds of websites and would love to help you as well.