Most WordPress speed advice is a decade old, and most “optimised” sites still fail Core Web Vitals on a mid-range phone. After performance-rescuing dozens of client and agency sites, these are the ten changes that actually move LCP, CLS and INP — roughly in order of impact per hour of work.
1. Fix the LCP image first
The hero image is usually your Largest Contentful Paint. Serve it in WebP or AVIF, size it to the actual rendered dimensions, preload it, and never lazy-load it. This single fix has taken client LCP from 4.2s to 1.9s.
2. Put the site on decent hosting
No plugin outruns a 900ms server response. If TTFB is over 400ms on cheap shared hosting, move to LiteSpeed or a managed host before touching anything else.
3. Run a plugin audit — then actually delete things
Every plugin is a tax: scripts, styles, queries, update risk. The question isn’t “is it useful?” but “does it earn its cost on every page load?” Most sites we audit lose 8–15 plugins without losing a single feature users notice.
4. Load scripts only where they’re used
Contact form scripts on every page, slider libraries where there’s no slider, chat widgets loading before content — conditional loading (via your builder’s settings or a few lines of PHP) cleans this up.
5. Use full page caching properly
LiteSpeed Cache, WP Rocket or FlyingPress — configured once, correctly: page cache, browser cache, and careful (not blanket) CSS/JS optimisation. Aggressive “optimise everything” toggles break sites and get caching a bad name.
6. Self-host what you can, delay what you can’t
Fonts self-hosted with font-display: swap. Analytics delayed until interaction. Third-party embeds (maps, videos) replaced with click-to-load facades. Third parties are regularly half the JavaScript on a page.
7. Kill layout shift at the source
CLS comes from images without dimensions, late-loading fonts and injected banners. Set explicit sizes, preload fonts, and reserve space for anything that appears after first paint.
8. Trim the builder output
In Elementor: containers over legacy sections, selective widget loading on, unused global styles removed. In Divi: upgrade to Divi 5 or enable its performance options. Builder bloat is real but manageable.
9. Clean the database quarterly
Post revisions, expired transients, orphaned meta from deleted plugins — a quarterly clean keeps queries fast, especially on WooCommerce.
10. Measure like Google measures
Stop screenshotting desktop scores. Watch mobile field data in Search Console’s Core Web Vitals report — that’s what affects rankings. Lab tests are for debugging, field data is the scoreboard.
The takeaway
Speed work is unglamorous and compounding: each fix buys a few hundred milliseconds, and together they’re the difference between red and green. If your site — or your client’s — is failing Core Web Vitals, I offer a fixed-price speed optimisation with before/after field data, not just a prettier lab score.