You run your WordPress site through PageSpeed Insights and get a score in the 30s or 40s. The list of recommendations is long and confusing. Here are the eight fixes that produce the biggest score improvements on real WordPress sites, in order of impact. Work through them in sequence rather than trying everything at once.
Fix 1: Compress and convert images to WebP
Unoptimised images are the single biggest cause of low PageSpeed scores on WordPress. Install ShortPixel or Imagify to bulk-compress your media library and automatically serve WebP images to browsers that support it. Enable lazy loading for images below the fold. For your hero image (the LCP element), serve it at exactly the size it displays — a 1920px image on a 400px mobile screen is wasted bandwidth.
WordPress speed optimisation →Fix 2: Enable caching
Install WP Rocket, W3 Total Cache or LiteSpeed Cache and enable page caching. For most shared hosting setups, WP Rocket is the most reliable option. Enable browser caching (Cache-Control headers), Gzip or Brotli compression, and minification of CSS and JavaScript. These combined often move a score by 15–20 points on their own.
Fix 3: Eliminate render-blocking resources
Google flags CSS and JavaScript that blocks the browser from painting the page. Defer non-critical JavaScript using async or defer attributes. Load CSS for below-the-fold content asynchronously. In WP Rocket, the Delay JS Execution feature handles this automatically for most WordPress plugins. Remove unused CSS — many themes and page builders load stylesheets for features not present on a given page.
Fix 4: Move to faster hosting
If your Time to First Byte (TTFB) exceeds 600ms, no amount of front-end optimisation will get you to a good score. TTFB is entirely a server-side metric — it is the time the server takes to respond to a request. Shared hosting with 800ms+ TTFB is a performance ceiling you cannot work around. Move to managed WordPress hosting (Kinsta, WP Engine, Cloudways) for immediate TTFB improvements.
Fix 5: Use a CDN for static assets
A content delivery network serves your images, CSS and JavaScript from servers geographically close to each visitor. Cloudflare (free) is the easiest option for WordPress — it acts as a CDN and reverse proxy, adding caching, compression and security simultaneously. Connect your domain to Cloudflare, enable caching, and re-run PageSpeed Insights.
Fix 6: Optimise Google Fonts loading
Google Fonts blocks rendering if loaded in the standard way. Preconnect to fonts.googleapis.com and fonts.gstatic.com in your document head. Use font-display: swap in your font CSS. Better still, download the font files and self-host them — this eliminates the DNS lookup and third-party connection entirely and is worth around 200–400ms on mobile.
Fix 7: Remove unused plugins
Every active WordPress plugin adds PHP execution time and potentially JavaScript to the front end. Deactivate any plugin that is not actively contributing to the site's function. Use the Query Monitor plugin to identify which plugins are adding the most execution time per page load. A site with 30+ active plugins is carrying unnecessary weight.
Fix 8: Enable object caching for the database
On sites with high traffic or complex queries, WordPress makes repeated identical database calls on every page load. Redis or Memcached object caching stores the results of expensive queries in memory. This reduces database load and can halve PHP execution time on content-heavy pages. Most managed WordPress hosts offer Redis object caching as a one-click feature.