Without proper optimization (such as caching, image optimization, etc.), a WordPress website can load slowly, affecting the user experience and search engine rankings. It can also be resource intensive, especially on shared web hosting, leading to slow performance or additional hosting costs.
Shared Web Hosting
Shared hosting can work for smaller WordPress sites with low traffic, but it has its limitations, which can impact the performance and functionality of WordPress websites. Shared web hosting means sharing server resources (like CPU, RAM, and storage) with other websites on the same virtual machine. If your site or another site on the same server experiences a spike in traffic, it slows down all the sites on that machine. So someone else’s problem can become yours. It’s often cheaper to use shared hosting, but if your business depends on web based leads, it may be worth an upgrade.
Caching is crucial for improving the speed and performance of a WordPress website. On WordPress, various types of caching mechanisms are used to speed up websites by storing and reusing data instead of processing it again. Below are some of the primary types of cache used on WordPress. Different types of caching are suitable for different scenarios, and often a combination is used to achieve the best performance. It’s important to understand how each type works to effectively implement caching strategies for your WordPress site, and consider using comprehensive caching plugins that allow you to manage multiple types of caching from a single interface.
An important note: if you’re hosting your WordPress website on a specialized host like WPEngine, Kinsta or Pagely then this is already taken care of automatically for you.
Page caching stores the entire HTML of a page so that the server doesn’t have to regenerate it each time. Doing this results in a much faster load time because it avoids pulling information (like content) out of your database. It effectively reduces the server’s work by serving the already generated page to the user.
Ways to Get Started
- W3 Total Cache
- WP Super Cache
- WP Rocket
- CDN services like Cloudflare or Sucuri allow configuration of browser caching settings
Caches database queries in your server’s memory, avoiding the need for those queries on subsequent requests and queries. This reduces the time it takes to retrieve data from the database and speeds up dynamic elements and database queries, especially beneficial for websites that rely heavily on database operations.
- Redis Object Cache
- WP Object Cache
Caches compiled PHP code between every request, which reduces the time it takes to process PHP files by avoiding the need to recompile the same PHP code for every request.
CDN Caching (Content Delivery Network)
Caches and serves website content from multiple servers around the world to speed up content delivery based on the user’s location. This improves loading times for users worldwide by serving content from a nearby server. It’s especially effective for optimizing your website for mobile users on 4G/5G networks.
Caches specific sections or elements of a webpage (like a widget or block) instead of the entire page. This depends on the way your site is setup, it’s primarily beneficial for highly dynamic websites where page caching isn’t as effective. Instead of caching each page, you’re caching each individual piece of page and then loading these cached pieces (or modules) when they’re used on a page.
Resolves domain names before a user clicks on a link, reducing latency when navigating to another page or site. This improves performance by preloading DNS queries, or domain name lookups, so that there’s one less network lookup to make when someone does visit your site.
Delays the loading of images and other media until they come into the viewport, which reduces the initial page load time, conserves bandwidth and results in less resources loaded when each page is first loaded by users.
“WordPress plugin overload” refers to the problem that occurs when too many plugins are installed on a WordPress site. Although plugins can add a lot of functionality and features, installing too many can lead to various issues. More often, though, the cause is from what plugins you have installed. Some plugins do a lot, way too much in my opinion, and that results in a massive amount of code being loaded into your site. This is particularly noticeable inside the WordPress administration area that you use to create and edit pages.
Scanning a WordPress Site for Slow Plugins
The best way to check for this issue on your site is to use a tool to scan for slow plugins. The best I’ve found and recommend is with a discontinued plugin called P3, or Plugin Performance Profiler. It’s original author did something very malicious in the codebase, but [wpmu.dev] patched the source to remove the vulnerability and pushed it to GitHub. It can be downloaded there and then manually installed on your site. Disclaimer: It’s up to your to understand what the issue was, and check the source code yourself to verify it doesn’t include any of that code.
One more important note, this plugin will make your site very slow while it’s running. It’s best to replicate your site on a staging URL or localhost and run the scanning process there.
Notoriously Slow WordPress Plugins
These common culprits come up often when I investigate a slow WordPress website. It’s not uncommon to find one of these plugins installed and activated, particularly on large sites with many pages or posts.
- WPBakery Page Builder
- Beaver Builder
- Theme Fusion
- Wordfence Security
- iThemes Security
- Event Espresso
Quite often, these and other slow plugins are the cause of bugs and issues that are difficult to track down and identify. They’re complex abstracted code bases are convoluted and difficult to work with, and they have so much code that it’s easy to conflict with other plugins.
Heavy Database Queries
WordPress heavy database queries can be a potential source of performance bottlenecks for a website. These queries can slow down your site, especially when there’s a high volume of traffic. It’s important to identify and optimize these queries to ensure your WordPress site performs optimally.
The first step is to identify if you have slow queries, and to do that I’d recommend the Query Monitor plugin.
The Query Monitor plugin for WordPress is a developer tool that enables debugging of database queries, hooks, conditionals, HTTP API calls, and more. It provides a detailed insight into the database queries run by the pages of your WordPress site, among other things, allowing you to identify and analyze performance bottlenecks.
Using this plugin, you’ll be able to:
- View all database queries performed on the current request
- Filter queries by query type, component, or calling function
- Identify slow, duplicate, or erroneous database queries
File System Issues on Cloud Hosted WordPress
When hosting a WordPress site on a cloud infrastructure, one of the most common issues you might encounter could be caused by the file system. A slow file system can affect your website’s performance, impacting the user experience, SEO ranking, and overall functionality of your website. It’s also notoriously difficult to track down if you don’t think to look for it. Most commonly, it can happen when your cloud hosted files reset permissions each time you upload or deploy to your instance.
Below are some potential problems and solutions related to file system speed in cloud-hosted WordPress environments:
- Slow Media Loading – Images, videos, and other media files may take a long time to load, leading to a poor user experience.
- Delayed Content Delivery – Content updates, theme changes, or plugin installations might be slow due to sluggish file operations.
- Backup and Restoration Issues – Backing up or restoring your website might take longer, impacting your ability to quickly recover from issues or make significant changes to your site.
- Inefficient Scaling – Your website might struggle to efficiently handle increased traffic or demand due to limitations in file system performance.
- Plugin/Theme Installation Issues – Installing or updating plugins and themes might be slower, impacting your ability to quickly deploy changes and enhancements. You also may find that you run into issues reading or writing certain files, or to certain directories.