I haven’t had the best relationship with the issue of site speed over the years, if I’m honest. I mean, even though I knew that it’s obviously important, I wasn’t doing much testing to find out how fast my site was for its actual audiences.
After all, the site loaded just fine for me (when doing administrative tasks, publishing content and so on), so it’s probably the same for my audience too, right?
Well, not quite. As it turned out, the average visitor had to wait around eight seconds (that’s 8) for my site to load. I was quite shocked to see that number, and that’s probably why I remember it so clearly.
How many seconds is “too slow?”
There’s no other way to say this, eight seconds is painfully slow, and it’s way too slow for what can be considered a smooth browsing experience.
In fact, a study by KISSmetrics says that if a site takes more than three seconds to load, 40 percent of visitors will abandon it without waiting to see the content. This means that my eight seconds could make people leave nearly three times over!
So as a rule of thumb, I guess it’s safe to say that if your site takes longer than two seconds to load, you’re entering the danger zone and some steps need to be taken about it. Here’s how to get this done on WordPress with a handful of plugins and other tactics.
1. Spring-clean your plugins
These days, there’s a WordPress plugin for everything, but that doesn’t mean that you need to be using every single one of them on your site.
Let me just emphasize that plugins are one of the main bottlenecks in terms of site speed on WordPress. The thing is, not all plugins are that well-coded, with some of them being even unsafe to use altogether.
So what I advise you to do is have a go at some spring cleaning. Go through the plugins that you have installed, and delete every one that hasn’t given you any apparent benefits and every one that you simply didn’t end up using at all.
2. Remove slow plugins
Once you’ve gotten rid of the plugins you don’t need/use, it’s time to handle the low performing ones.
To find out what’s going on with your plugins in terms of speed, get a plugin called P3.
Once activated, you can go to the Tools menu in the WP-Admin and run it. It will scan your current plugins, perform some tests, and present you with a graph showcasing how well each of your plugins is doing.
This will give you a good overview of where the bottlenecks are and what plugins you should probably get rid of. There’s more than enough WordPress plugins out there, so you can easily find quality replacements that can handle the same tasks quicker.
3. Optimize your images
Images are one of those things that can consume a huge amount of bandwidth. They take much more space than text and if any of your posts go viral, you can hit your web host’s limit very quickly.
One of the things you can do to prevent this is use a plugin like WP Smush.it.
It lets you go through your image library and optimize every image individually. The savings are often really brutal. It’s not uncommon to see images being reduced by 20 percent in disk space with no loss of quality.
And even if you use one of the popular custom tools to create your more complex visuals – infographics, charts, etc. – although such tools already have pretty good image optimization algorithms, it can never hurt you to put those files through WP Smush.it too.
4. Lazy-load content
In short, lazy loading is about only displaying certain blocks of content once they are in the viewport of the visitor. So if something hasn’t been scrolled down to yet, it won’t get loaded.
You can get this functionality with a plugin like BJ Lazy Load. It uses jQuery (plus works with non-JS users too) and works with both images and iframes.
5. Optimize the database
Over time, the WordPress database tends to get messy. It’s just the nature of the MySQL database and the way WordPress interacts with it.
But that’s not that huge of a problem because there’s a handful of plugins that can help you to optimize the database every once in a while.
The one I recommend is called WP-Optimize. It’s pretty easy to use – it has its own control panel where you can select the optimizations that you want to perform – and then you can just click the Process button. A minute later, you get a clean and optimized database.
6. Get a caching plugin
Caching is a great concept in its idea. Basically, instead of your WordPress installation having to execute every piece of source code repeatedly whenever a visitor comes by, the files are executed once, the result gets stored, and then displayed to every consecutive visitor (until the contents of the page changes). More or less, that’s the simple definition of caching.
In itself, it’s a fairly complicated mechanism, and coding it on our own would require a lot of effort. Luckily, there’s a great plugin that takes care of this. It’s called W3 Total Cache. It’s one of the few plugins recommended by most hosting providers. While it does offer a ton of features for the more advanced user, it’s also perfectly operational on its default settings, so you can just enable it and let it do its magic.
7. Don’t keep all plugins activated all the time
Like we already established, every active plugin will add its five cents to your site’s total load time.
Luckily, some plugins just don’t need to stay activated all the time. For instance, the P3 plugin described above is a prime example. You need it only occasionally (to scan your site, do its job and then it can be disabled again).
Some other types of plugins that can be kept disabled for the most part:
- Plugins checking for broken links.
- Database optimization plugins.
- Social media metrics plugins.
- Content scanning and optimization plugins.
- Manual backup plugins.
8. Don’t use plugins for simple tasks
It’s very tempting to keep getting new plugins for every hip new feature that we want to integrate with our WordPress site, but it’s not the best approach from a site speed point of view.
It doesn’t take long to lose yourself in the plugin craze and end up with 20 or 30 of them on the site. But try to resist this. And most importantly, don’t use plugins to handle simple tasks.
The prime example of this is integrating your site with tracking solutions like Google Analytics or Clicky. While you can get plugins to do that for you, it’s a lot more effective to just take the embed codes that those solutions give you and then include them by hand.
The general rule of thumb could be this: If you can do something in less than five minutes by hand then you don’t need a plugin to do that for you.
What would be a good entry #9 on this list? Do you have any ideas of your own on how one could speed up a WordPress site? Feel free to share.
Karol K. (@carlosinho) is a contributor to HTMLCenter and a blogger at NewInternetOrder.com, Codeinwp.com, Adobe.com and others.
Number 9: Minify, concatenate and compress all the resources in your sites theme files (html, css, and js). If you are using a custom theme that you built, this should be pretty easy to do. There are plugins that can assist with this too like Minqueue or Autoptimize. W3 Total Cache can do this as well if you are familiar with using the more advanced features of it. These plugins can handle the optimization of your theme files and all plugin resources as well. But I personally consider it a good practice to optimize your themes’ files yourself before the resources of other plugins enter the mix.
Number 10: Use sprites or other image optimization techniques wherever applicable and make minimal use of custom fonts. This to further reduce the number of HTTP calls.
Good tips @nathan_mckay:disqus, thanks for sharing! both tips are important
What I noticed in the projects that if minify resource files for production sites, its a good practice to disable this in staging / development environments. This way you can still debug your css / js without much pain.