Here are some of the most common PageSpeed problems and how to fix them to improve your score…
Compressing your images lets you shrink their file sizes with zero or minimal loss in quality, depending on your compression algorithm.
To automatically optimize and compress all the images on your WordPress site, you can use the Optimole plugin:
Leverage browser caching
Browser caching speeds up load times by storing certain static assets in visitors’ local browsers. This means that, on subsequent visits, visitors’ browsers can serve up those assets from visitors’ local computers rather than downloading them on each visit.
Many WordPress caching plugins already offer browser caching, including WP Super Cache, WP Rocket, and WP Fastest Cache.
Serve scaled images
A scaled image is an image that’s perfectly sized for the dimensions that you’re using it for – we have an entire post on the concept of scaled images over on ThemeIsle.
One easy way to serve scaled images on WordPress is, again, with the Optimole plugin – it can automatically do the work for you so that your images are always perfectly scaled no matter what device a visitor is using.
Specify image dimensions
This one involves HTML – you want to specify the actual width and height of an image when you embed it.
<img src="https://yoursite.com/wp-content/uploads/pandabear.jpg" width="500" height="200">
WordPress will do this by default when you insert images in the editor, but you’ll want to make sure to specify images that you use elsewhere (like in a plugin).
These are technically three separate rules, but I’m lumping them together because the basic concept is the same.
Minification involves stripping out unnecessary characters in your site’s code without changing its functionality. For example, removing white spaces and line breaks.
Some WordPress performance plugins, like WP Rocket, include minification. Or, you can use the free Autoptimize plugin to minify your site’s code.
Avoid landing page redirects
URL redirects are useful for directing traffic. However, you want to avoid using them if at all possible because they will slow down your website.
To fix this, make sure that all of your internal links go directly to the current URL – don’t rely on redirects to fix things. For example, if you automatically redirect
https://yoursite.com to force SSL usage, make sure that you always link to the HTTPS version of your site to avoid unnecessary redirects.
When you’re talking about page load times, how fast your website becomes visible is just as, if not more, important than how long it takes your entire site to load.
Combine images using CSS sprites
This is an advanced technique that lets you combine multiple images files into a single file using CSS. This lets you reduce the number of HTTP requests required to load your page.
You should not use CSS sprites for all of your images because there are negative SEO and accessibility implications (because you can’t add image alt text anymore). Instead, you should only use CSS sprites for decorative images, like logos of your clients or social share icons.
Unfortunately, there’s no plugin to automatically set up CSS sprites – you need to do it manually. Here’s how.
We already talked about image compression earlier, but this “compression” is referring to compressing all of your website’s files at the server level using something called Gzip compression.
On average, Gzip compression can shrink the size of your site’s files by about 70%.
Many WordPress performance plugins can help you enable Gzip compression, including WP Rocket, WP Super Cache, and WP Fastest Cache. Or, you can use the simple and free Enable Gzip Compression plugin for a dedicated solution.
2. YSlow tab
Your YSlow score follows a similar approach to your PageSpeed score, it just uses a different set of rules to test against. The list is a little smaller – the YSlow tab on GTmetrix contains just 19 rules.
Like your PageSpeed score, each rule gets its own score and your overall score is based on the weighted average of those scores.
Here are some of the most common recommendations that you’ll encounter…
Use a content delivery network (CDN)
A CDN speeds up your site’s page load times by delivering your site’s static content from a network of servers around the world. Learn more in this post.
To serve your images via a CDN, you can use the free Optimole plugin. To use a CDN for all of your site’s static files, Cloudflare is also a good option.
Comparison of top CDN services ?
This is the same as the “Enable compression” recommendation from the PageSpeed tab. You can fix it by enabling Gzip compression.
Many WordPress caching plugins include a Gzip compression feature. Or, you can use the dedicated Enable Gzip Compression plugin.
Avoid URL redirects
This is the same as the “Avoid landing page redirects” in PageSpeed.
Try to always link to the current URL of a page, rather than relying on redirects to move people to the right destination.
Reduce DNS lookups
Visitors’ browsers need to perform a DNS lookup for each domain that your site has content from.
You’ll always have at least one DNS lookup for your own site. But if you use external services on your site (like Google Fonts or the Google Analytics tracking script), those are going to result in additional DNS lookups.
Two solutions are to:
- Remove the external service if it’s unnecessary
- Try to self-host the content if possible, like hosting Google Fonts on your own server instead of relying on the Google Fonts CDN. This plugin can help.
Make fewer HTTP requests
You’ll see HTTP requests in more detail in the Waterfall tab section (that’s next).
3. Waterfall tab
The Waterfall tab is a bit advanced, but it’s a very useful tool to understand how the different parts of your site load and where there might be small bottlenecks that slow down your entire site.
When you open the Waterfall tab, you’ll see a list of every single HTTP request for this page (these are the “Requests” from the GTmetrix results summary).
Every object on your page is a separate HTTP request. For example:
- Each image is one HTTP request (unless using CSS sprites!)
- Any external scripts that you’re loading (like Google Analytics) will also be at least one HTTP request
All things equal, fewer HTTP requests generally means a faster-loading website.
Additionally, as you’ll see when you look at the list, each HTTP request takes a different amount of time to load and loads in a different order (some will even block others) – so if you can find and remove the slow-loading HTTP requests, you can make a big difference in your site’s page load times.
You can see the details for each HTTP request when you hover over it. For example, this Moroccan chickpeas image took 102.4 ms to load:
You can also use the filter and search options at the top to find specific HTTP requests. For example, if you search for
wp-content/plugins you can find the HTTP requests that are added by your WordPress site’s plugins.
You can even dig further to find requests from specific plugins. For example, searching
wp-content/plugins/elementor will turn up all of the requests from the Elementor page builder plugin:
If you find that a plugin is adding a lot of slow-loading HTTP requests and doesn’t give you much benefit, you might want to consider removing it and finding a better alternative.
4. Timings, Video, and History tabs
I’m going to group the last three tabs of the GTmetrix speed test together because you probably won’t use them that often, and I don’t think they require a deep breakdown.
The Timings tab gives you more detail about how long it takes to reach various load time metrics. You can also find this information in the Waterfall chart – the Timings tab just makes it a little easier to visualize.
If you hover over one of the metrics, GTmetrix will display a description below that tells you what it means:
If you enabled page load videos when you started your test, you can view those videos in the Video tab.
You’ll also be able to slow them down to 1/4th the original speed to see things in more detail.
Videos are useful because they let you see not just when your site loads, but also how your site loads. For example, which parts of your site are visible first? Are there any weird glitches during loading like a “flash of unstyled content“? These are useful things to know as you’re optimizing your site’s performance.
Finally, if you test a page multiple times, the History tab lets you see the results of previous tests so that you can analyze how things have changed over time.
It will store all tests for this page for the last 30 days. After that, the historical test results are deleted.
For example, if you make some tweaks to improve your GTmetrix speed test scores, you could see how those changes translate into real page load time improvements:
Get more from the GTmetrix speed test
If you want to get the most from the GTmetrix speed test tool, you should go beyond the summary box and dig into the details below.
You don’t want to get too hung up on your GTmetrix performance scores, but the suggestions that go into the scores provide some useful guidance on areas where your site’s front-end performance optimization might be lacking.
Additionally, the Waterfall tab is a great tool to dig into specific aspects of your site’s performance, like finding images, scripts, or plugins that are having an inordinate effect on your site’s page load times.
If you want to dig into WordPress performance in more detail, check out our collection of 11 ways to speed up WordPress.
Do you have any lingering questions about how to test your website with GTmetrix? Leave a comment and we’ll try to help out.