If you’ve owned a blog or website built on WordPress for any length of time, you’ve probably wondered if it’s possible to speed it up, since Google has said that site speed plays an important role in their ranking factors, and since we’re all impatient and hate waiting for a website to load.
While WordPress is a great platform to build your blog or website on, the simple fact there are so many web hosts, themes, plugins, and varying setups and configurations mean there can be a huge differential in speed from one site to the next.
Over the years I’ve learned a few things about how to speed up your website, especially when it’s built on WordPress, and it’s not as hard as you might think.
Setup a Performance Baseline
Before attempting to improve your website’s performance, one of the first things you need to do is to test your current site speed so that you’ll have a baseline to measure against for any changes you make. This is pretty simple to do through the use of a couple online tools that will grade your site and suggest improvements based on their findings.
The two site speed tools I prefer are:
Both of these resources will grade your website on several factors, including page load time, size, number of http requests, code, images, and more. I recommend using both since they look at different things and work well together.
Once you have a good idea of where your site is at performance wise, it’s now time to tweak things to squeeze out every last bit of optimization goodness.
10 Steps to Speed up Your WordPress Website or Blog
There are numerous steps you can take to improve the speed of your website, and some of them can get really technical, but these 10 steps should be pretty easy for even a novice blog owner to make.
1. Use a High Quality Web Host
When you first built your website, chances are you chose the cheapest web host you could find. The problem is that you get what you pay for. If you’re on the super discount $3.00 per month generic hosting plan, then most likely you’re going to get $3.00 per month site speed, which equals SLOW.
Since your blog or website is built on WordPress, I’d HIGHLY recommend using a dedicated, WordPress only host, since their infrastructure is built and optimized for the nuances of WordPress.
A few good ones are:
There is definitely a cost increase when you go from a cheap shared hosting provider to a premium WordPress only host, but the increase in site performance is typically well worth it. However, if your budget doesn’t allow for this, I’d recommend upgrading your hosting to SiteGround, as they offer very good performance but at a discounted rate.
2. Only Use Well-Coded Premium WordPress Themes
There are thousands of free and premium themes available, but there’s a massive difference in quality between them. Over the years working with dozens of clients, I’ve used and evaluated hundreds of different themes, and the only ones I continue to personally use and recommend are from StudioPress and built on the Genesis Framework.
Genesis is built with speed, security, and search engines in mind. It doesn’t include extraneous code that can slow down, bloat, and cause your site to be susceptible to hackers and spammers. The framework and child themes are completely customizable with hooks and filters so that your blog or website will look, function, and perform exactly as needed.
3. Minimize Plugins
WordPress is incredibly extensible because of it’s add-on plugin architecture. This is both super helpful and dangerous at the same time. Since anyone can build a plugin to add additional functionality to WordPress, the quality of code varies greatly by developer, so knowing which ones to use can be tricky. This post highlights some good ones that most bloggers will need.
Over the years, you’ve probably accumulated a number of plugins that are no longer being used. It’s a good idea to audit your plugins once a month and delete any that are not absolutely necessary, since this is just extra code that can potentially bloat your site, slow it down, and create vulnerabilities for hackers to break in through.
One plugin you might want to use is the P3 (Plugin Performance Profiler). It creates a profile of your site’s plugins’ performance by measuring their impact on your site’s load time so that you’ll know which one’s are using up the most resources and putting a strain on your server. Once you install and run the P3 plugin, take note of what is causing the most issues, then deactivate and delete it once finished.
4. Keep Your Software Updated
You’ve probably noticed the round “update notice icon” located at the top left of your dashboard toolbar from time to time. This means your site has updates available. Just like the software on your computer or the apps on your phone, WordPress, your theme(s), and plugins will have updates every few weeks or so. It’s incredibly important that you perform these updates right away, as many times they include bug fixes, security improvements, and added functionality that will help your blog run faster and protect it from hackers trying to break in.
Over the past six months, I’ve seen seven different websites of clients who were hacked because they hadn’t updated their software. This is probably the single most important thing you can do to protect your site. If your website ever does get hacked, check out Sucuri for ways to fix it.
5. Optimize Your Website’s Images
Pictures and images enhance the design and feel of your website and can help pull in traffic from Facebook, Pinterest, and other social media sites, but they can also slow down your site more than anything else if you don’t take some steps to optimize them for the web.
There are actually three steps to improving your website speed by optimizing your images:
A. Create Exact Dimension Images
Before uploading a new picture to a blog post or page, you should always crop it down to the exact dimensions needed for the page. For example, the image at the top of this post is cropped to the exact dimensions of the post content width, which is 800 pixels. If I were to upload an image larger than this, WordPress has to dynamically resize it, which uses up server resources and slows down your site.
Once you’ve created an image to the exact dimensions you need, you should then optimize it for the web before uploading. The best tool I’ve found to do this is called Image Optim. It’s a free desktop application that you drag and drop your photos onto and the app automatically optimizes them by stripping out all the un-needed meta and EXIF data that takes up space and increases your image load time.
B. Install an Image Optimization Plugin
I mentioned Reducing plugins in step 3, but there’s a couple of excellent WordPress image optimization plugins that can further help to reduce the image size (without a loss in quality) and speed up your site. These are:
Both of these are excellent options that will automatically optimize your images upon upload, and you can even go back and force compress all your old images to further improve your site speed and performance.
C. Delete Old Thumbnail Sizes & Duplicate Images
By default WordPress creates specific thumbnail sizes which are defined by and used in your theme and or plugins. If you have used multiple themes over the years, chances are you have dozens of unneeded thumbnail sizes littering your uploads folder, since they’re not deleted when you change themes. The only way to get rid of these is by deleting and regenerating new thumbnails. The best plugin I’ve found to do this is called Force Regenerate Thumbnails. It’s a free plugin that does exactly what it says, it force deletes all your old thumbnails and creates new one’s based on your current theme. You should run this plugin every time you change themes, but feel free to delete it once finished running.
You’ll also want to delete any duplicate images you have on your site. Often times users will upload the exact same image into their media gallery whenever they are creating a new blog post or page. This is a really bad practice since it clogs up your database, makes it harder to search through, and will slow down your site. I recommend using the Media Deduper plugin to to analyze your media gallery to find and delete any duplicate images that have been uploaded.
6. Install Website Caching
Websites typically serve up files dynamically when loaded, and depending on how many images, stylesheets, and other files your site has, this can take longer than it should. The solution is to use a caching plugin, which compresses, minifies, and “caches” your static files so they don’t have to load each time your site is visited. There are three popular caching plugins (there are actually many others, but these are the ones I’d recommend) that are relatively easy to use, and once configured, will give an immediate boost to your site speed. They are:
Cache Enabler is free and probably the easiest to setup and use.
WP Rocket is a premium plugin, but it’s my favorite of the three.
W3 Total Cache is the most complex and is used by many of the world’s most popular blogs and websites.
7. Use a Content Delivery Network
A content delivery network, or CDN for short, is a network of web servers around the world that serve up and deliver content based on the location of the end user. Utilizing a CDN will help speed up your site by delivering your static content (images, files, etc.) to your readers from the location nearest to them. It works best when used in conjunction with a caching setup, which I mentioned above.
Two of the most popular CDN’s are:
Both services are excellent, but my personal preference is Key CDN, since it’s slightly easier to setup and use, is less expensive, and they also regularly contribute back to WordPress. Both of them are on par when it comes to performance.
8. Optimize Your Database
The older your blog is, the more likely the database is filled with no longer needed fields and tables that are leftover from old themes and plugins. Database cleaning and optimization can be scary, especially if you attempt to do it manually, but there a few plugins that can do most of the heavy lifting for you.
The Plugins Garbage Collector will scan your WordPress database and show what deactivated or uninstalled plugins have left over tables that are no longer needed and delete them.
WP Sweep allows you to clean up unused, orphaned, and duplicated data in your site and optimizes your database tables for improved performance.
WP Optimize is similar to WP Sweep in that it provides database cleanup and optimization, but it includes a scheduling feature that will run automatically based on the criteria you set.
DB Manager Allows you to optimize, repair, backup, and restore your database, drop/empty tables and run selected queries. It’s the most powerful of all the above, but can also be the most dangerous if used incorrectly.
A Word of Caution:
Making changes to your database is not without some risk, as it’s what WordPress is built upon, so it’s always a good idea to backup your database, themes, plugins, and uploads folder before performing any type of database changes, since if these become corrupted it could completely destroy your site.
9. Reduce Broken Links and Redirects
Blogs and websites are constantly evolving and changing. Sometimes posts, pages, and images are changed and updated or deleted. There’s nothing wrong with this, unless of course you’ve linked to one of these pages that has been moved. Then of course, you either have a broken link or a redirect. Both of which are not optimal for your website’s performance.
In order to determine if you have broken links or redirects on your site or if you are linking out to pages that are no longer working, it’s a good idea to run the Broken Link Checker plugin every couple of months. This is a really cool plugin that will monitor links in your posts, pages, comments, and custom fields and notify you to update them. The less redirects your site has, the faster it will run, so this is incredibly important, both for site speed and for SEO performance.
10. Remove Outdated Code, Pingbacks, Trackbacks, Spam & Revisions
Many themes and plugins include short-codes and in post styling and markup, that when removed, don’t get deleted from posts or pages where they were used. This is what’s called “inline styling”, and not only look tacky on your site, they can cause it slow down, since all of this extra code is loaded each time that page is opened, instead of loading directly from your theme’s stylesheet. Unfortunately there’s not a good way to automatically delete this, except by doing a complete one by one page audit and removing any extra code that shouldn’t be there. This is one of the other reasons choosing your theme and plugins is so important, so all this extra bloat is not added to your site.
Pingbacks and Trackbacks are methods for alerting blogs that you have linked to them or that they have linked to you. While at one time they were a useful tool, these days they are more abused by spammers than anything else. It’s a good idea to delete these whenever possible from your comment database. You should also turn off link notifications under the Discussion settings of your site.
As any blogger knows, comment spam is a serious annoyance. Fortunately, there are several plugins that can help reduce the amount that gets through and clogs up your database. Akismet comes bundled with WordPress by default and is excellent at keeping the worst offenders at bay. However, there’s always a bit that seems to still get through. That’s where Growmap Anti Spambot and the Invisible Captcha plugins come in handy. These two plugins add extra security features to help keep all the other spambots out of your site.
Whenever you create a new post or page, save a draft, edit it, re-save or publish, WordPress creates a revision in case you need to revert back to the older version. This is a great feature which has saved my butt on several occasions, but it also greatly increases the database size if these are left there indefinitely. For example, There are currently 30 revisions of this post sitting in my database. The solution to this is to delete these revisions regularly. Fortunately, the database optimization plugins mentioned in step 8 will do this for you.
Once you’ve completed all of the above steps, go back to Pingdom and GT Metrix to see how much your site speed has increased. I think you’ll be pleasantly surprised!
There are many additional and slightly more technical steps that can help speed up your website, but these 10 should be a good start.
Which of these steps have you not implemented yet? Have questions about improving your site speed? Ask below!
Elle C. says
Ah! Resizing images, it seems so simple but I definitely overlooked that!
Regarding high quality hosting; what specifics would you look for in quality. You mentioned WordPress only dedicated servers, I’m on a different platform but curious about the host quality.
Great article as usual, thanks!
Seth Spears says
My experience with hosting is almost completely limited to WordPress. It looks like your site is built on Square Space. Don’t they provide the hosting as well as the software? Managed WordPress specific hosting means that the servers (should) have been configured specifically for the intricacies of the WP software, as they don’t host any other type of websites, software, or applications that could adversely effect the performance.
Thanks Seth – some good tips here that I’m looking forward to trying out.
Seth Spears says
Super. Let me know how they work out for you!
Really nice article. Thanks for sharing such nice points.
Seth Spears says
Glad you enjoyed it, Jose. Have you implemented any of the steps listed?
I recently switched plugin I was using for compressing plugins after reading this article ( https://www.wpcub.com/wordpress-image-compression-plugin/ ) But I noticed that I have lots of Image resizes for the same Image. I can generate new image size using the plugins you mentioned But I can’t find any way to delete the unused images. The plugin doesn’t provides any such options. Do you know how can I delete the unused images. You mentioned that we should delete unused images but I can’t find any way to do so.
Seth Spears says
Hi Ritu, the Force Regenerate Thumbnails plugin I mentioned should delete all instances of thumbnails created that aren’t in use by your theme. As far as images that aren’t attached to any posts on your site, that’s not something I’ve looked into and would frankly be a little afraid of trying to automate, as it’s highly likely there are images in your uploads folder that you’re using on the site, but that weren’t attached to any particular post or page.
This plugin will redirect unattached images to your homepage for better SEO (https://wordpress.org/plugins/redirect-unattached-images/), but to permanently delete images I would recommend manually going through your media gallery and deleting them individually to make sure nothing is lost that’s needed.
If I am already using WP Super Cache on my site, is it worth changing to W3 Total Cache? Will I notice any real performance improvement.
Seth Spears says
I’m personally not a fan of either one, as I’ve seen performance drop when they’re setup incorrectly, since there’s so many variables within the settings and it’s easy to screw up. That’s why I much prefer WP Rocket, as it’s so simple to use.
WOW great information, will I have two issue one I have conflict between W3 total cache and Mail-chimp when I turn W3 plugin off the mail goes out no problem, the other is how to increase file size mine is set to default 2 MB. any suggestion will be appreciated..
Seth Spears says
Wally, you’ll probably need to talk to the plugin developers to help you troubleshoot the issue.
I did but they never reply back.
Robin Jennings says
You really get what you pay for with web hosting so budgeting to pay a little more is the best option if you’re serious about your web presence.
Seth Spears says
Agreed. I always prefer managed WordPress hosting such as Synthesis since the speed, support, and up-time are so much greater than the cheap shared hosting providers.
Lauren Gray says
Force Regenerate Thumbnails can actually be bad for sites older than a couple years. WordPress changed their rounding method a year or two ago and any images uploaded and inserted before that change can be broken if you delete old sizes when regenerating. They will literally be one pixel off, so image-url-1200×456.jpg might become image-url-1200×457.jpg. Not a problem if you’re manually resizing images before upload, but generally not a good recommendation for the masses.
Seth Spears says
I’ve had that happen as well. The good news is the original image is still in the uploads folder so it’s not actually lost, you’ll just need to reassign it to the post where the broken image is showing. I’ve found the Broken Link Checker plugin to be very helpful with this.
Rajdip Das says
Since long I tried to find a proper blog to optimize my blog completely. Thank you today I got it finally. 🙂