1) Optimize and compress your images.
Large, uncompressed images can so easily double, triple, or quadruple your site loading time. A 1MB-sized site could become 4MB with just a few uncompressed images. Yikes!
- Resize images down to the size you actually need. You don’t need images that are 4000×3000 pixels, straight off the camera. Resize those down to no more than the width of your blog area.
- Save the image in the best format for what the image is of. Photographs should be JPEG and vectors should be PNG.
- Put JPEGs through JPEGmini and PNGs through TinyPNG.
To learn more about optimizing images, read my post on compressing images to improve SEO and user experience.
2) Don’t load an excessive amount of content on your page. Use excerpts!
This one is particularly important for photo-heavy blogs (fashion, lifestyle, travel, etc.).
By default, WordPress is set up to show 10 posts on your home/archive page. That’s fine if you’re showing excerpts with small thumbnails. But what happens if you decide to show full blog posts instead?
Suddenly, you’re loading ten entire blog posts, which can often mean 20+ images (if you use two images per post). If each image is optimized and thus about 150 KB, that’s still about 3 MB of extra content to load! Not good!!
The more content you’re loading at once, the slower your site will get.
I personally recommend showing excerpts instead of full posts, but if you insist on showing full posts at least reduce the amount you’re showing on each page. You can change this in Settings > Reading. Take it down to two or three.
3) Start caching!
Here’s how caching works…
Here’s life without caching:
- Person visits your site.
- Your website goes:
- Go look at the menu settings. We need to find out which pages she decided to put in there. Then put them on the site.
- Which post are we supposed to be showing? Ah, that one. Go find the post title, author, date, and content of that post.
- We’re loading a sidebar, folks! Go find out what widgets she put in the sidebar. We need to get the title and contents of each of those.
…plus a lot of other bits and pieces.
All the parts of your site are saved in a database, and every single time someone visits a page, your site has to jump around pulling data and information out of that database and figure out where each piece belongs.
Here’s life with caching:
- Person visits your site.
- Your website goes:
- Ah yes, we’re visiting this page. I’ve saved a copy of that page already. Here it is.
With caching enabled, all that database lookup stuff is done once, and then the final result is saved. Then the next time your site is visited, your site super quickly pulls up that saved copy and shows us that instead. All those complex database queries aren’t run every.single.time. That’s fabulous! Faster page loads!
How to enable caching on your site.
The best kind of caching is the kind built directly into your server/hosting. Some managed WordPress hosts will already have this built-in and you don’t need to worry about it.
But if you’re on a normal shared hosting plan, odds are you have zero caching going on! There are a variety of WordPress plugins you can pick from to enable it:
4) Use a CDN.
In short: it makes your site load a bit faster for people who are located further away from your server’s location. Sweet!
Here are a few CDN providers:
5) Be careful about the plugins you use.
Yes, plugins can slow down your site. But no, it’s not necessarily about the number of plugins you use. It’s about the quality of them.
- Some plugins are just coded horribly. For example: not utilizing caching when they should be.
- Some plugins are coded well, but they’re very feature-heavy. They do a lot of things, or require a lot of assets, etc. It’s not that the quality is bad, it’s simply that it’s a big plugin.
You could have 80 really well-coded and ‘small’ plugins that barely impact your loading time at all.
Or, you could have 2 poorly coded or ‘big’ plugins that bring your site to a crawl.
Find out how a plugin is affecting your site’s performance.
For someone who’s not techy enough to actually dig into plugin code, it might be hard to separate the good and the bad. But, usually you can at least separate out the ‘small’ from the ‘big’ by using a little common sense.
- What is this plugin trying to achieve?
- Is it adding a huge new feature to my site (like e-commerce functionality and payment gateways) or is it doing something kind of small (like just sending an email when I reply to a comment)?
- Does this plugin change the appearance of the front-end of my site? If so, it’s probably loading a stylesheet. Loading extra assets always impacts loading time at least a little.
- Is the plugin loading information from a third party site? Like displaying a Pinterest feed? If so, that means the plugin has to load information from an entirely different site before it can finish loading yours!
Just ask yourself a few simple questions. You might not be able to separate out your plugins with 100% accuracy, but it’s better than nothing. You can also use a plugin like P3 (Plugin Performance Profiler) to analyze the load time of your site and figure out which plugins take longer to load. (Tip: Uninstall it when you’re done running the tests!)
Limit your use of ‘big’ plugins.
You don’t need to eliminate all ‘big’ plugins, but it’s a good idea to limit the number you have. If you’re using 10 ‘big’ plugins, that might not be a great idea. Your site’s performance may suffer. But if you only have one or two, then it might be less of a big deal.
6) Find a better web host.
If you’re on a budget/shared host, keep in mind that only a certain percentage of your site speed can be improved upon. After a certain point you’ll just need a better, more optimized server. That’s down to hosting.
Maybe after working through points 1-5, you think your site is good enough. That’s fine. Better hosting isn’t necessary for everyone, especially if blogging is just your hobby.
But if your website is your business or helps you make money, then it’s generally a good idea to improve your hosting as much as you can afford. Site speed plays a role in how likely it is someone will abandon their cart during the checkout process.
Level up your hosting with a “Managed WordPress host”.
Generic shared hosting is built to accommodate a variety of website types and platforms—not only WordPress. That means you may not be running on the best system for WordPress. You’re running on a system that’s most compatible with tons of platforms. That doesn’t mean it’s the best for you.
How a managed WordPress host can make your site faster:
- The servers are optimized SPECIFICALLY to work with WordPress. Switching from Apache to Nginx alone can see massive improvements.
- They’re more open to using modern technologies, like Varnish and HHVM (or PHP7).
- The server hardware is often better, such as using SSDs.
- Caching may be built directly into the server, which is a better way to do it than via a plugin.
- Built-in security specifically for WordPress.
In short, you’re getting all these speed boosts and optimizations at a server level. You’re using a system that was built to make WordPress as fast and epic as possible.
A few examples of WordPress hosts
- Nose Graze (for book bloggers and authors) ($19.99/month)
- Flywheel (from $15/month)
- Pagely (from $64/month)
- Pantheon (from $25/month)
- Presslabs (from $149/month)
- WP Engine