A 90+ PageSpeed Insights score sounds like the kind of thing that takes premium plugins, a pricey CDN, and maybe a developer on retainer. It doesn’t. On a typical WordPress site, three free moves do most of the heavy lifting: page caching, image optimization, and a theme that doesn’t sabotage you.
This guide walks through that exact free stack, with measured before and after results from a real test site: a desktop Performance score of 83 going in, 94 coming out. No honest guide can promise you a specific number, and this one won’t try. What it can give you is a method that transfers to pretty much any WordPress site.

Three free ways to improve your PageSpeed score in WordPress
PageSpeed Insights grades a handful of metrics, but on most WordPress sites the Performance score comes down to two big levers you can pull today, plus a third you likely already have covered. Why bother pulling them? Beyond a better experience for actual humans, Google uses page experience signals in ranking, so a slow site pays for it twice. Pull the two big levers and 90+ stops being a fantasy.
- Page caching. Without it, WordPress rebuilds every page from PHP and database queries on every single visit. A caching plugin serves static HTML instead, which slashes time to first byte. (The WPShout caching explainer covers the mechanics in depth.)
- Image optimization. Images are usually the heaviest part of a page. Compressing them, converting them to WebP or AVIF, resizing them per device, and lazy loading anything below the fold cuts the payload dramatically.
- Theme discipline. A bloated multipurpose theme with sliders and animation frameworks loads JavaScript and CSS that no plugin can fully undo. A lightweight theme is the cheapest speed upgrade there is.
One honest caveat before the steps: no plugin guarantees a score. PageSpeed results fluctuate a few points between runs, and mobile scores are usually tougher than desktop. The goal here is a method you can measure, not a magic number.
Step 1: Measure your baseline with PageSpeed Insights
Head to PageSpeed Insights, paste in your URL, and run the analysis. Note both the mobile and desktop scores, because the fixes below affect them differently.
The test site for this guide, a content blog with an image-heavy homepage, started at 83 on desktop.

Whatever your number is, write it down. Without a baseline, every claimed “improvement” is a guess. Two more tips for a baseline you can trust: run the test three times and take the middle result, and test a typical blog post as well as your homepage, since they often behave very differently.
Step 2: Turn on page caching with a free plugin
If your host doesn’t already cache pages for you (many managed hosts do, so check first), install a free caching plugin. The test site used Super Page Cache, a free plugin that handles full page caching and can pair with Cloudflare if you already use it. WP Super Cache and WP Fastest Cache are equally solid free picks.

Setup is mostly “install, activate, leave the defaults alone.” One gotcha: don’t stack two caching layers on top of each other. If your host caches at the server level, adding a plugin on top tends to cause stale-content weirdness rather than extra speed.
Once it’s active, verify it the simple way: open your site in a private window (so you’re logged out) and confirm pages load instantly on repeat visits. And remember to purge the cache after updating content, or your changes won’t show for visitors.
Deeper tuning (object caching, cache preloading, database cleanup) is real but goes beyond the free-stack basics. The WPShout guide to speeding up WordPress has the full checklist when you’re ready to go further.
Step 3: Optimize your images with Optimole (free plan)
For the image lever, this guide uses Optimole, our very own image optimization plugin. It runs on 200,000+ sites and holds a 4.7 out of 5 rating on WordPress.org, and the free plan is genuinely usable: all features, unlimited images, for sites with up to 2,000 monthly visits. A visit counts as a unique daily user, so the cap stretches further than it sounds. If you’re comfortable enabling the small Optimole badge in your footer, that adds 20,000 extra free visits on top.
Once connected, Optimole compresses your images automatically, converts them to WebP or AVIF on the fly, resizes them for each visitor’s device, lazy loads them without jQuery, and serves everything from a CloudFront CDN with 450+ locations.
Install and connect Optimole
In wp-admin, head to Plugins > Add New, search for Optimole, then install and activate.

Activation prompts you to connect an Optimole account. Creating one is free, and the plugin asks for the API key from your Optimole dashboard. Paste it in and optimization switches on, with no per-image configuration to babysit.
Check the dashboard and the visit meter
The Optimole > Dashboard screen confirms the service is running and shows your monthly visit usage against the free plan’s 2,000 cap, plus stats for saved file size, average compression, and CDN traffic once visitors start arriving.

Pick a compression mode
Under Optimole > Settings > Advanced > Compression you get three modes. Speed Optimized is the default and the right call for most sites. Quality Optimized keeps near-lossless quality, which suits photography portfolios where every pixel matters. Custom exposes manual quality controls if you want to tinker.

Everything else (format conversion, per-device resizing, lazy load) runs automatically with sane defaults, so there’s nothing else to configure.
☝️ Worth knowing: the free plan caps at 2,000 monthly visits, and complete image offloading (moving your media library to Optimole’s cloud) is a Pro feature. Your images are also served from Optimole’s servers, which is a cloud dependency some site owners won’t want. And the advertised “up to 80%” file size reduction is a best case; real results depend on how compressed your images already are.
Step 4: Re-measure, and read the results honestly
With caching and Optimole both live, the same test site scored 94 on desktop, up from 83. The caching layer cut server response time, and Optimole shrank the image payload and moved it onto a CDN.

Read your own results with the same honesty. Scores wobble a few points between runs, so treat anything within two or three points as noise. Mobile will likely land lower than desktop. And a “No Data” notice in the real-user section just means the site doesn’t get enough traffic for Chrome to have field data yet, not that something is broken.
If your score barely moved, don’t add more plugins. Open the Diagnostics section of the report instead and fix the single biggest item it lists, then re-test. That loop beats stacking tools every time.
When the free plan isn’t enough
The free stack has a ceiling, and it’s worth knowing where it is before you hit it:
- Traffic past 2,000 monthly visits (or 22,000 with the badge) means a paid Optimole plan. Official sources disagree on where the paid tiers start – the WordPress.org listing says 40,000 monthly visits, while the live pricing page lists 48,000 – so check the current pricing page rather than trusting any article, this one included.
- Media offloading to free up your server storage is Pro only.
- Heavy JavaScript or a slow theme won’t be fixed by any image plugin. If your score stalls in the 70s after all this, the bottleneck is elsewhere, and the WPShout speed guide is the next read.
If Optimole turns out not to be the right fit for your site, WPShout’s tested roundup of image optimization plugins compares the main alternatives.
Bottom line ⚡
A 90+ PageSpeed score for free is realistic on a typical WordPress site, as long as you pull the two big levers, cache your pages and optimize your images, and run a theme that isn’t fighting you. The test site went from 83 to 94 with exactly that stack and zero dollars spent.
What it isn’t is guaranteed. Measure your baseline, change one thing at a time, and re-measure. That loop, not any single plugin, is the actual trick.
What did your before and after scores look like? Drop your numbers in the comments.
How to Speed Up Your WordPress Site
With some simple fixes, you can reduce your loading times by even 50-80% 🚀
By entering your email above, you're subscribing to our weekly newsletter. You can change your mind at any time. We respect your inbox and privacy.



