WordPress

How to Speed Up a WordPress Website: 15 Fixes for a 90+ PageSpeed Score

Slow sites lose visitors and rankings. Here are the 15 fixes I use to take WordPress sites from sluggish to a 90+ PageSpeed score.

How to Speed Up a WordPress Website: 15 Fixes for a 90+ PageSpeed Score

A slow WordPress site quietly costs you visitors, leads and Google rankings. The good news: most speed problems come from the same handful of causes. This is the exact checklist I use when clients ask me to speed up a WordPress website — in the order that gives the biggest wins first.

Step 0: Measure before you change anything

Run your homepage and a key inner page through PageSpeed Insights and note the three Core Web Vitals Google uses:

  • LCP (Largest Contentful Paint) — how fast the main content appears. Aim for 2.5 s or less.
  • INP (Interaction to Next Paint) — how quickly the page responds to taps and clicks. Aim for 200 ms or less.
  • CLS (Cumulative Layout Shift) — how much the layout jumps around. Aim for 0.1 or less.

Test mobile first — that is what Google primarily uses.

Server-level fixes (biggest impact)

1. Move to quality hosting

Overcrowded shared hosting is the #1 reason for a slow Time to First Byte. A good managed host or a properly configured VPS often halves load time on its own.

2. Run a current PHP version

Newer PHP 8.x releases are significantly faster than old versions. Check compatibility, then upgrade from your hosting panel.

3. Add page caching

Serve pre-built HTML instead of generating every page on every visit. LiteSpeed Cache (on LiteSpeed servers), WP Rocket or W3 Total Cache all work well — use one, not three.

4. Add object caching

For WooCommerce and busy sites, Redis object caching cuts repeated database queries dramatically.

5. Put a CDN in front

A CDN such as Cloudflare serves static files from locations close to your visitors — essential if your audience is spread across countries.

Front-end fixes (what visitors feel)

6. Compress and resize images

Serve WebP or AVIF, size images to their display dimensions and never upload 4000-pixel photos for 400-pixel slots.

7. Prioritise the LCP image

Your hero image should not be lazy-loaded. Preload it and give it fetchpriority="high" so the browser fetches it first.

8. Lazy-load everything below the fold

WordPress lazy-loads images by default; make sure videos, iframes and maps are lazy too.

9. Fix web fonts

Use fewer weights, self-host or preload them, and set font-display: swap so text shows immediately.

10. Defer and delay JavaScript

Defer non-critical scripts and delay chat widgets, pixels and analytics until user interaction. This is usually the biggest INP win.

11. Remove unused CSS

Page builders load CSS for every widget on every page. Remove unused CSS or generate critical CSS for above-the-fold content.

12. Reserve space for images, ads and embeds

Always set width and height (or aspect-ratio) so content doesn’t jump when it loads — that is how you fix CLS.

WordPress housekeeping

13. Audit your plugins

It is not the number of plugins, it is what they load. Remove anything unused and replace heavy “do-everything” plugins with lightweight ones.

14. Clean the database

Limit post revisions, clear expired transients and remove leftover tables from deleted plugins.

15. Control the Heartbeat API and cron

Reduce Heartbeat frequency in the admin and switch WP-Cron to a real server cron job on busy sites.

Extra tips for WooCommerce stores

  • Exclude cart, checkout and account pages from page caching — but cache everything else aggressively.
  • Disable cart fragments on pages that don’t need a live cart count; it’s a common hidden slowdown.
  • Optimise product images in bulk and limit the number of gallery images loaded upfront.
  • Use Redis object caching — WooCommerce is database-heavy and benefits more than most sites.
  • Clean up old orders, sessions and transients on large stores.

Are page builders like Elementor slow?

Page builders add extra HTML, CSS and JavaScript, but they can still score well when used carefully. Use the builder’s performance settings (optimized DOM output, improved asset loading), avoid stacking multiple add-on packs, keep global fonts and colors consistent, and don’t use heavy sliders or animations above the fold. I build many fast sites with Elementor — the difference is discipline, not the tool.

Your quick WordPress speed checklist

  1. Quality hosting on a current PHP version.
  2. One page-caching solution, plus Redis for busy sites.
  3. CDN in front of the site.
  4. WebP/AVIF images, sized correctly; hero image preloaded.
  5. Fonts reduced and set to swap.
  6. Non-critical JavaScript deferred or delayed.
  7. Unused CSS and plugins removed.
  8. Width/height set on media to prevent layout shift.
  9. Database cleaned and cron under control.
  10. Re-test on mobile after every change.

Speed and security go hand in hand — an outdated, bloated site is also an easier target. See my guide to recovering and hardening a hacked WordPress site.

Pro tip: change one thing at a time and re-test. Stacking five optimisation plugins that fight each other is a common reason sites get slower.

When speed fixes aren’t enough

If a site is built on a bloated theme with dozens of plugins, optimisation has a ceiling. Sometimes a lean rebuild is cheaper than endless patching — see my Speed & SEO Optimization package or send me your URL for a free quick audit.

Frequently asked questions

What is a good PageSpeed score for WordPress?

Aim for 90+ on desktop and as high as practical on mobile, but focus on passing Core Web Vitals: LCP of 2.5 s or less, INP of 200 ms or less and CLS of 0.1 or less.

Which caching plugin is best for WordPress?

Use the one that matches your server: LiteSpeed Cache on LiteSpeed hosting, or a well-configured WP Rocket or W3 Total Cache elsewhere. Only run one page-caching plugin.

Do too many plugins slow down WordPress?

It is less about the number and more about what each plugin loads. A few heavy plugins can slow a site more than many lightweight ones, so audit what each one adds to the front end.

Hamza Umar, author and Head of Development
Written byHamza Umar

Head of Development at Bright Ideas Communications and founder of OPT Tech Solution. 6+ years, 1000+ websites and 250+ clients across 20+ countries — WordPress, Laravel, MERN, security and AI.

Need help with this?

Get a fixed quote, scope and timeline — usually within an hour.

Leave a Reply

Your email address will not be published. Required fields are marked *