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 simplest terms, a CDN is basically a system that copies your site assets (images, CSS files, JavaScript files, etc.) across many servers around the world. Then when someone visits your site, the assets are pulled from the server closest to them. That way if someone is in Europe visiting your US-based site, the assets will be served from a European server rather than travelling all the way from America each time.
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”.
Why?
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
Ready to test your site’s loading time?
You can use tools like Pingdom and WebPageTest to see how long it takes for your site to load. Go on—check it out! I recommend trying to get that number to under 3 seconds if you can!
This has been a major issue for me. The front end doesn’t get a gold star from any testing, but it’s not bad. The worst is my dashboard. Posts trying to save to draft time out, same with trying to preview. The pages take forever to open. I’very do everything pretty much everything on the list except change hosts. They used to continually tell me my plug-ins were hogging resources. Now I’m getting hit with too many bots. They told me I have to watch continually and be banning IP’s all the time. Sometimes I think this might be too much work!
Honestly, it sounds to me like a hosting issue. Or at least an issue that could be solved with a more attentive host with more measures in place, like:
– A less-crowded server.
– A better server configuration.
– Rate limiting, IPTables, and Fail2ban to manage bots. (CloudFlare also helps with the bot issue.)
– Built-in server caching.
If the “problem” is actually bots then that’s the kind of thing that could definitely be solved at a server level (at least to a certain extent). Many of the cheaper hosts just don’t bother with more advanced and useful configurations to deal with it.
Asking you to watch and ban IPs yourself is just ridiculous.
It seems really rare that a cheaper/shared host will come out and admit something like, “We have too many people on this server, which is causing performance issues.” From what I’ve seen, they love to try to blame “plugins” and just generally throw the blame elsewhere. (Sometimes it can be plugins, but often times it’s not and it’s just a server thing they don’t want to admit to.)
Instead of actually trying to dig too hard, I was directed to webpages basically telling you how to look up your access and error logs, weed out the baddies and ban them. That was the extent of their “support”. They used to just send me what looked like an automated message saying it was my plugins. Now its the bots, I have Cloudflare, but maybe I should see if I’m missing some settings that could help. I seriously think I should change hosting services, but everyone has complaints about all the cheaper companies, and I’m not big enough to pay for Managed. Its quite a cluster fuck. So much so that I think I will visit Instagram this morning instead of beating my head against a wall writing a blog post! That’s a Monday for you! LOL
Yeah if you just moved to another cheap/shared host, then you could just end up with the exact same problem.
Part of it comes down to pure luck: whether you get placed on a crowded server (which you might be on now), or a relatively empty server (which might have fewer problems).
After changing my design, I went through all my posts–yes Ashely, ALL OF THEM–and just compressed everything. I removed all my unattached photos and content. Got rid of plugins I didn’t use and cached everything. I think from my last one, I had over 1000+ posts just sitting there taking up space. Not only did it save so much space (It think I halved the size of my content) but it was quite therapeutic to do so.
Wow! You are a total rock star!!
Great post! I bougth JPEGmini after seeing it on your blog the previous time you mentioned it in a post and it’s been a big help. Definitely worth the investment. I am compressing and resizing most of my images now and it really helps a lot. I also use it for a client’s site I am managing and it’s awesome to see those images go from very large to manageable size.
I once tried a caching plugin which crashed my site and after that never looked at it again, but I might give it a try later eventually. I have a security plugin that also has a caching option, so I might try and turn that on once.
And if I make more money I might look into moving to wordpress managed hosting, I can’t afford it at the moment and my sites both load pretty fast (both under 3 seconds), so I am not too worried about that yet. But moving to another type of hosting is definitely something to keep in mind for the future. I did a cleaning of my plugins recently. I still use some big plugins, but as long as I only have a few of those I figure I am okay.
Some caching plugins can be difficult to work with because of the limitations on your host. So, for example, if you have a caching setting turned on that your web host doesn’t support, then it can actually slow your website down or even make it break completely.
That’s why caching plugins can be a bit complicated. That’s also where it might be helpful to invest in a paid option like WP Rocket, which might be of higher quality or would at least give you paid support to help get it working correctly!
Eeeeep! My site loads at 8.24 seconds! I found 2 offending plugins and uninstalled it (it was previously around 13 seconds)!! I am looking at installing total cache to it so I’ll see how it goes! I really had no idea how slow my site loads! I also didn’t take into consideration my jpeg files. My header alone took a long time to load! XD
Gotta remember the chaching one. I love to optimize my images. Makes me feel awesome. lol
Well your hosting with me has bitchin’ caching built-in! 😀 Woot woot!
YaY!!!!
Ashley, I don’t remember how I found your site, but it’s a good thing I landed here. Because your blog is awesome.
Going to go sherlock as to why my blog is slow now.
Keep up the good work =)
Well, this was rather fantastic. I’ve read some of your other stuff, too, and just want to say that your choice of wording makes me trust you. Especially when trying to grasp tech stuff I have a hard time believing people off the bat, but the scientist in me approves of your lack of waffling 🙂
Thanks very much, Nina. 🙂
I think these are some great thoughts here. I have some of those plugins and they help a lot with loading my site faster. I do have a question though. There is only one place that recently has started to be slow. Whenever I have a page post, it tends to run a bit slower. The site is actually fine, but when I am putting in information it tends to go a bit slower and was curious would that be a plugin problem or problem with my hosting?
Hi Renee!
Is it slow when loading the Edit Post page before you make your changes, or after clicking save and you’re waiting for the post information to be saved and updated?
Hey Ashley,
Thanks for responding 🙂
Its slow as I am typing in information into it. Its updates pretty quickly, it is a bit frustrating to have to wait a while for it to show what I have typed. But I don’t have problems in doing a regular post. Just in the pages section. I just have no clue how to fix it.
If it’s while you’re typing then that suggests either a plugin problem or a problem with your browser/computer. It’s unlikely to be hosting related if it’s while you’re typing. The first thing I’d try is to deactivate all plugins and switch to a default theme like Twenty Sixteen and see if that fixes the problem. If so, it’s a problem with your theme or one of your plugins (or multiple plugins).