Time and time again, we see WordPress users struggling with performance on their sites. In a lot of cases, it’s not hard to achieve faster speeds. Most of it comes down to choosing the right tech stack and following best optimization practices. Having been in the performance industry for years, we’ve seen what does and doesn’t work.
Below is a performance checklist we’ve put together to save you time! All of the tools and services mentioned are those we stand behind 100%, and use on our own sites. If you have a question about performance, we are always happy to answer it, whether it has to do with our plugin or not. We believe that faster sites equal a better web for all.
Invest in managed WordPress hosting
Nothing is more important than the WordPress host you choose to power your site. Think of this as an engine of a car. Do you want a Corvette or a Prius? We always recommend investing in managed WordPress hosting. These types of hosts have environments fine-tuned specifically to speed up WordPress. They also include features such as PHP 7.4, an HTTP/2 CDN, and free SSL. WordPress.org officially recommends PHP 7.4 or higher.
We use Kinsta for hosting all of our WordPress sites.
If you are serious about your business or blog, go with a host that you can trust. Kinsta delivers top-notch performance and removes all the stress out of managing your WordPress sites. You can focus on growing your business, instead of worrying about downtime.
Kinsta has fast server-level caching which means you never have to mess with a caching plugin ever again.
Utilize image compression (and WebP)
All the images we use on our sites and clients’ sites are optimized using lossy compression with ShortPixel. This ensures reduced page weight sizes and fast loading images that still look beautiful.
Images are also automatically converted with ShortPixel to the smaller
.webp image file format. In our testing,
.webp files are on average 59% smaller than PNG or JPG files.
All major browsers, including Safari as of macOS Big Sur, now support the
.webp file format (source). But you don’t need to worry about support. ShortPixel can automatically serve a
.webp file to supported browsers and a
.jpg when it detects an older browser.
Use a Content Delivery Network
A Content Delivery Network (CDN) helps speed up your WordPress site by storing your assets (JS, CSS, images) on different servers (POPs) around the globe. These are then delivered from cache at lightning speeds closer to the visitor.
We recommend Cloudflare (free), KeyCDN (premium), or StackPath (premium). We utilize KeyCDN on all of our sites. Perfmatter’s CDN rewrite feature makes hooking up a premium CDN to your WordPress site a quick and easy process.
A fast WordPress theme is crucial
Nobody codes like GeneratePress! Whether you’re a blogger, run a WooCommerce or EDD shop, or need a personal website, the GeneratePress theme is fast, lightweight, and will ensure your site still looks beautiful. We are using it on this website and all of our other sites.
The best thing about GeneratePress is the developer, Tom Usborne, cares about performance just as much as we do! Here are a few thing we like about it:
- Out of the box it uses streamlined SVG icons instead of Font Awesome (which is quite large).
- Every file loaded in GeneratePress is as small as possible (we are talking in KBs).
- It’s a modular system, so features you don’t need never run any code on your site.
- You can move to system fonts with a click of a button.
Optimize your database
Over time things like revisions, spam comments, transients, auto-drafts, and even trash start to add up to wasted space in your database. There is one table in particular,
wp_options, which if it grows too big can bring your site to a crawl. We’ve seen it more times than we can count.
So just like you change the oil in your car, you should also regularly optimize your database. Our Perfmatters plugin makes this quick and easy with the following options:
- Delete revisions (posts, pages, and custom post types).
- Delete WordPress spam comments in one fell swoop.
- Clean up your trash from comments and posts.
- Delete old auto-drafts that are saved when you’re editing content.
- Delete expired transients and keep your
- Optimize your database tables to reclaim unused space.
You can even automate the optimization if you want on a daily, weekly, or monthly basis. And after you clean up your database, it’s important to put limits in place for the future. For example, to disable or limit post revisions. This helps to ensure a healthy database.
Disable scripts that aren’t needed
Unfortunately, a lot of WordPress plugins and themes aren’t developed with performance in mind. They simply add as many features as they can to increase sales. Because of that, many load their scripts across your entire WordPress site. This isn’t how it should be done.
A plugin should only enqueue a script if it is actually used on the page. (source: Google)
That’s why we built a robust Script Manager into the Perfmatters plugin. This allows you to disable scripts and plugins from loading on a per post/page basis.
An example of this would be with a contact form plugin. With two clicks you can disable it everywhere except for on your contact page.
Another common scenario is with social media plugins. Most of the time you only want them loading their scripts on your posts. That’s easy to do with the Script Manager.
The great thing about the Script Manager is it doesn’t make any permanent changes. If something looks off, you can simply toggle it back on.
Use web fonts sparingly
Custom web fonts, such as Google Fonts, make up on average 3.2% of a web page’s overall weight. While this is not a lot, it still contributes to your overall load time. Some websites use a lot more fonts than they actually need. We’ve seen websites using 26 different fonts! No joke.
We recommend using web fonts sparingly. If you are going to use a custom or Google Font, pick a nice one and go with a couple of different weight variations, normal, bold, etc. This will keep the size down. Fonts if not set up correctly might also show up as render-blocking in speed test tools.
Big-name brands such as GitHub, Bootstrap, Medium, Ghost, and even your WordPress admin dashboard all use what they call a system font stack. This utilizes the fonts on your computer. A few years ago this wouldn’t have looked very good. But with today’s newer operating systems, they all have nicer looking fonts pre-installed.
By using a system font stack there is no need to load any fonts at all on the page! This is pretty huge. It can also help you get rid of any FOUT (flash of unstyled text) or FOIT (flash of invisible text) ugliness. And there are no render-blocking warnings to worry about.
Did you know this site (perfmatters.io) uses a system font stack? You probably didn’t notice, did you? That’s right, this site doesn’t load a single font. Check out this tutorial on how to move to a system font stack in WordPress. Remember, if you’re using a recommend theme like GeneratePress, this is just a simple click.
Lazy load images, iframes, and videos
After optimizing your images, lazy loading can be one of the easiest ways to take that to the next level. It works by delaying the loading of images or videos until a user scroll downs the page and the media enters the viewport. The more media you have, the more benefit you’ll reap from the feature.
In our own testing, enabling lazy loading gave us a speed increase of 33%.
Perfmatters has four different lazy load options you can enable:
- Lazy load images (WebP support).
- Lazy load iframes (YouTube, Vimeo, etc.).
- Swap out iframes with preview thumbnail and SVG play icon which loads the video on click.
- DOM monitoring.
Only use the font icons you need
Font Awesome is great, and millions of sites use it (including parts of our site) on the web to display the icons you see on a daily basis. However, by default, it loads its entire library of icons for your site.
The best way performance-wise to approach Font Awesome is to package up only the icons you are actually using on your site. Here is a great tutorial on how to host font icons locally (only the ones you need).
Or, if you are using a lightweight plugin like GenerateBlocks, you can paste in the SVG code of any icon you want. This is pretty awesome actually! No need to worry about packaging up icon packs. You can easily add only the icons you need.
Use plugins that are well coded
Unfortunately with over 57,000 plugins on the WordPress repository and many more premium plugins, there is simply a lot of bad plugins out there. Many don’t care about performance at all. The number of plugins you use isn’t as important as how well they are coded.
The good news is, there are developers out there that do care about performance. Here are a couple of plugins we use that we highly recommend:
- GenerateBlocks: Ditch heavy page builders and take advantage of blocks! Our entire site is built with blocks.
- Antispam Bee: Lightweight spam protection the way it should be. GDPR compliant.
- Code Snippets: Easy and fast way to add PHP code snippets to your site.
- Wordfence Login Security: A stripped-down and free plugin for two-factor authentication.
- Novashare: Our own social sharing plugin developed from the ground up with performance in mind. Easy UI, share counts, and no bloat.
Get a web performance audit
If you’ve followed our checklist and reached out to our support, but still aren’t satisfied with your speeds, you might need an audit done. A web performance audit takes a deep dive into every aspect of your site.
One day we’ll probably offer this service, but right now we are focused on making the Perfmatters plugin the best it can be! For now, we highly recommend Mike Andreasen, a Codeable expert, for web performance audits.
We personally chat with Mike on regular basis. He is one of the only guys out there which we agree with on just about everything when it comes to optimization, which services and tools work the best, etc. And trust us, that is rare.
He has completed over 1,300 projects for clients. We personally vouch for his work as we have the graphs, speed tests, and data from actual clients to back it up!