Speed run
Self-hosted WordPress can be a bit two-sided. It’s easy to set up; it’s always a great idea to control your own platform; and there are seemingly endless additional features that can be added. But, after a while, it can be difficult to keep your site performing quickly and smoothly.
One of the most frequent questions we get is how to increase WordPress site speed. Here are the areas where we frequently see performance taking a hit – and some things you can do to increase your WordPress speed optimization!
In general, when people come to us and say their WordPress site isn’t loading as quickly or cleanly as they like, it’s not WordPress core that’s the issue.
What did we say one of the great things about WordPress was? Extensibility. You can add any number of themes or plugins to do just about anything you can imagine, and that’s all before any custom work!
But when you start adding in a piece of plugin code here, a page template there, a new kind of sidebar widget over here, you don’t always get a beautiful patchwork quilt. Sometimes you get a patched-together shirt with three sleeves and no neck. Or, you know, something like that.
These five tips focus on the specific places where we see things go awry – and what you can do to help minimize load-speed troubles.
Thrive Architect is a plugin we see people use a lot when they want to have “nice” or “clean” landing pages. We’ll say this right up front: We have no problem with Thrive Architect as a plugin. It does the job it says it will do very well, and does a pretty good job of integrating with almost any theme.
Here’s the big “but:” It does this by almost completely ignoring your regular theme. That means that any caching you have on your CSS, JavaScript, and accompanying images is lost completely, and the user has to load a completely new set of resources as well.
This is hard to say, but we’ll say it: Usually, when someone wants to use something like Thrive Architect or another “builder” with widely varying templates, it’s because they’ve put too much crap on their regular pages.
Remember, you own the site and can make it look however you like. If you think your regular theme isn’t “clean” enough for a landing page, how do you think readers feel when they try to read your latest post?
Typically, we try to steer people in the direction of either cleaning up their current implementation of their theme, or trying to find a theme that can serve their purposes for both regular content and landing pages. Keeping all these template pieces in the same theme means you can keep loading (and caching) the same resources, which usually results in performance gains.
If you really want high-performance WordPress speed optimization, you should have a custom theme built that only does what you want it to. The downside of themes that can do everything is that they often load resources to do things you don’t need them to do, resulting in unnecessary longer loading times. A custom theme does exactly what you want it to, efficiently.
It’s pretty common for people to start a blog without a super-clear vision of what they’re going to be doing with it six months down the road. And even for those who do have a clear vision, the future is inherently unpredictable. (Honestly, who knew Fortnite would consume everyone’s entire life?)
The ability to extend and change how your site looks and behaves is a huge bonus for WordPress site owners, because they can adapt their site without having to overhaul everything. Plugins are simultaneously the best and worst of the WordPress experience. They offer the ability to do almost anything you can imagine, but often come at the cost of speed when it comes to loading each individual web page.
Every plugin you add to your site changes how WordPress operates in some way. Absent caching, a WordPress site with any plugins will never run as a fast as it did before those plugins were added. But plugins can also be a good thing! It’s really hard to run an ecommerce store in WordPress without a plugin. (We’re not going to say it’s completely impossible, but it is for all practical purposes).
Not all plugins are created equal, and we encounter many cases where a plugin performs a job well, but is an enormous hit to performance for one reason or another. Bottom line: Make every plugin count, and make sure the plugins you’re using are the best/fastest ones for the job you want them to do.
One of the more popular services we offer at Technical Penguins started out as a “plugin audit.” In this process, we go through all the plugins on a site and offer suggestions about things that might be unnecessary, or for which there might be better options based on your site’s needs. We’ve since expanded this service into a full performance audit, where we look at the entirety of your site and help you figure out how to get it running as fast as possible.
We know site performance! Whether you want an audit to find our where the slowness is, or would like to take advantage of our Penguin Pack of plugins that help alleviate speed issues, we can help.
Image formats can be confusing! PNGs and JPEGs can look nearly identical, but have different features and file sizes depending on how much compression you’re using. In general, most images should probably be JPEGs. About the only times you should use PNGs are if you need transparency (JPEGs do not support transparency) or if you’re providing something for offline use and the file size doesn’t matter. For all other matters where you’re delivering images online, you will usually get sufficient quality at a smaller file size with JPEGs rather than PNGs.
(Aside: Yes, we know many popular blogging courses say text on images is clearer in PNG format. In theory, yes, but unless you plan to cast your blog to your new 2,000-inch TV, or if you’re using a 12-point font that’s close to the color of your background image, it won’t make an appreciable difference to your users – or at least not one they’ll stick around to notice when your slow load speed scares them away!)
Also, when you’re uploading images, make sure you’re taking advantage of WordPress’ built-in image management features. Your theme should be using image sizes wherever possible; this allows you to upload one version of an image and automatically pull in the right sizes (thumbnail, teasers, etc.) wherever you need to. And please make sure that you’re not uploading a 2000px image when your website never shows images larger than 1000px wide — that’s just making the user download photo information they literally can’t use.
Image-optimization plugins are some of the most useful out there. There are several that do a variety of different things, but the features you should be looking for are image compression (especially the ability to switch formats if it makes sense to do so); use of a content delivery network (CDN); and the ability to offer next-generation image formats (such as webp) to those browsers that can view them.
Caching is probably one of the most misunderstood (and hardest-to-manage) categories of plugins. At a very basic level, every time you call up your website, you not only get the actual information (text, images) on that page, you also load up a set of stylesheets, script files and other bits of code that make your website look the way you want it to. The information is driven by your database; every time you hit a page, that’s at least one call to your database, but usually it’s several such calls.
Most caching plugins work by making sure that images, styles and scripts are all configured to stay in the user’s browser. When the user goes to your home page, they download all those files, which have metadata that tells the user’s browser not to look for new versions of those files for a set time (usually a number of days). Then, if they go to an inside page, their browser doesn’t have to re-download all the stuff it already grabbed, and this gains your site a perceptive speed increase on the second and subsequent pages viewed.
This is great for repeat and multiple visitors, but a lot of people can get burned by this because they forget that the first visit by a new user (or by an existing user on a new device) requires downloading absolutely everything.
Something we see a lot is that site owners who use caching themselves can become immune to the growing size of their pages – because they’re not experiencing them like a new visitor would. However, loading all of that stuff – not just bits at a time – can be a very slow process that might lead a new user to give up in frustration.
Some caching plugins go a step further and essentially create and store individual content files for each page on the site, thus eliminating the database calls (in addition to the other caching information). This can be a big speed boost, but there are drawbacks — WooCommerce, for example, does not support this by default (because it has to know if you’re logged in or have things in your cart).
You can configure a website to support all of this, but it usually does not come without custom development. In most cases, WooCommerce pages are excluded, meaning you do not see the same performance improvements in your store.
The big problem site owners tend to have with caches comes when they make design changes. Because the user’s browser holds on to information longer, this can lead to some strange visual problems if you’ve changed, for example, the size at which something should display, but the user still has the old style cached.
Caches can be a great utility to help speed up sites, but they do require more work than just flipping the switch. Also, never use more than one caching plugin, as that can lead to all sorts of strangeness that’s almost impossible to troubleshoot, and rarely actually helps performance anyway.
Everyone likes a good deal, and lots of web hosting providers practically give away their services for the first month/quarter/year, figuring that once they have you on the platform it’ll be too difficult or annoying to extricate yourself and move to another host. This can lead to people trying to use substandard hosting for what they’re trying to build.
The two biggest issues we see around hosting are:
The first is pretty self-explanatory: For most people, their blog is a business, and it should be treated as such. In any business, to keep your customers happy, you must have enough supply to meet their demand. For an online business, if a bunch of people are looking at your site, you will need more server resources in order for them to have a good experience. No amount of caching and optimization will solve that completely.
The second point gets into what we have already touched on: If you’re trying to run 40 plugins on your site, each individual page load will require more resources. Even if you’re only running four plugins — but they’re big plugins, or they perform a number of different functions — you might need more resources. With enough modifications, you can make a Geo Metro look like a monster truck, but it’s not going to be able to turn those gigantic wheels very far or very fast. This is another reason we preach moderation in plugins and theming.
Upgrading your plan on your existing host, or moving to a host that offers more, can definitely help increase your site speed. There are also some technical bits that can be addressed with a good host, such as ensuring your database is optimized and that you’re running a current version of php, the language that powers WordPress.
WordPress is a wonderful, powerful platform that gives you the ability to rev your online business from 0 to 60 with very little time investment up front. But, like a car, it needs maintenance and care. If you’re looking for WordPress speed optimization, you’re going to have to fine-tune things, not just keep adding plugins and themes on top of each other. And of course, if your engine is underpowered, it doesn’t matter how flashy it looks.