How I fix it · 01 / 04

Measure where Google does.

On a mid-range phone over 4G, on every key template, plus 28 days of real visitors from Search Console. Not one desktop lab score.

Find the real 80%.

Caching is rarely the problem. The time hides in one oversized image, builder CSS, scripts in the head and third-party tags.

Fix it at the source.

Theme and plugin level, on staging first. No design changes, and no fourth caching plugin.

Prove it with field data.

Lab test on handover day, then Search Console after 28 days.

Mobile LCP · homepage4.1Measuring
2.5 s · Google’s line0 / 5 fixed
  • Hero image1.4 s
  • Theme & builder CSS0.9 s
  • JavaScript0.7 s
  • Third-party tags0.6 s
  • Server & caching0.5 s
  1. 01 / 04

    Measure where Google does.

    On a mid-range phone over 4G, on every key template, plus 28 days of real visitors from Search Console. Not one desktop lab score.

  2. 02 / 04

    Find the real 80%.

    Caching is rarely the problem. The time hides in one oversized image, builder CSS, scripts in the head and third-party tags.

  3. 03 / 04

    Fix it at the source.

    Theme and plugin level, on staging first. No design changes, and no fourth caching plugin.

  4. 04 / 04

    Prove it with field data.

    Lab test on handover day, then Search Console after 28 days.

  5. Mobile LCP · homepage1.9Good
    2.5 s · Google’s line5 / 5 fixed
    • Hero image0.5 s
    • Theme & builder CSS0.4 s
    • JavaScript0.3 s
    • Third-party tags0.2 s
    • Server & caching0.5 s
Measuring: 4.1
WordPress speed · under NDA

Sites I made fast. No names.

Five WordPress sites, measured before and after on the live site. Clients stay anonymous because most of my work is white-label or under NDA.

A bionics company’s site full of 3D hand renders, autoplay video and scroll animation. Rebuilt how it loads, not how it looks: main content on a phone in 3.3 seconds instead of 22, and every page readable by Google.

Lighthouse performance, mobile56 → 90Homepage weight8.0 → 2.4 MB

A fintech marketing site with product pages, 160 articles, events and a newsroom, rebuilt from a Divi theme into a custom block theme and measured page by page against the original. Not a URL, an integration or a ranking lost.

Home page weight6.8 → 1.8 MBRequests to load the home page341 → 33

An enterprise data platform’s marketing site on OceanWP, Elementor Pro and 38 plugins. Rebuilt as a lean custom block theme with every page migrated by script, the builder and most of the plugins removed, the design exactly as it was.

Lighthouse, average of 4 key pages67 → 91Homepage requests, site’s own code101 → 33

A moving company’s WordPress site that worked, but heavily: every request reached the server, the homepage weighed megabytes and the theme carried a build and libraries nobody used. Rebuilt the theme, the build, three levels of caching and the tracking. Design and content unchanged.

Main-thread blocking, mobile490 → 50 msJavaScript at page start200 → 4 KB

A US government-contracts law firm, delivered white-label through a design studio. The old WordPress theme kept its content model in the database and shipped one stylesheet and one script to every page. Replaced with eleven composable blocks, a content model in version control, and a publishing programme the firm runs without a developer.

JavaScript shipped244 → 4 KBCSS shipped152 → 23 KB
Pricing

Fixed scope. Fixed price.

Before you sign, we agree a mobile LCP target. You see it measured at handover.

Simple$490Up to 3 templates · 3–5 days
  • Images, caching and scripts
  • Lab test before and after
Get a fixed quote
Speed + SEOComplete$2,250Full site · 2–3 weeks · fast and found
  • Everything in Fullall templates, plugins, theme fixes, 28-day field check
  • Technical SEO auditindexing, canonicals, sitemaps, crawl waste
  • Structure and redirectsclean URLs, internal links to money pages
  • Schema and AI readabilityOrganization, Service and FAQ markup
  • Search Console trackedbefore/after on clicks and rankings for 60 days
Get a fixed quote
Prices exclude VAT · if a page builder is the ceiling, I’ll quote a migration instead

Signs your WordPress site is too slow

Speed is the leak you can feel. Visitors on phones leave before the page finishes, and you never see them in your analytics because they bounce before the tag fires.

The usual signs: PageSpeed Insights shows red on mobile whatever plugin you install. Search Console flags pages as “Poor” for LCP or INP. The hero image appears last, after everything else. Buttons feel sticky, so you tap and nothing happens for a moment. Three caching plugins are installed and nobody remembers why. Ad clicks get more expensive while the bounce rate keeps rising.

Core Web Vitals in plain words

Google measures three things from real visitors over 28 days, collected in the Chrome User Experience Report (CrUX). To pass, at least 75% of visits need a good score on all three.

Largest Contentful Paint (LCP), under 2.5 seconds. How long until the main content is visible, usually the hero image or the headline. On WordPress it’s most often an oversized image that loads late.

Interaction to Next Paint (INP), under 200 milliseconds. How quickly the page reacts when someone taps or clicks. INP replaced First Input Delay in 2024 and is the metric most WordPress sites now fail, mostly because of third-party JavaScript, sliders and mega menus.

Cumulative Layout Shift (CLS), under 0.1. How much the layout jumps while it loads: late cookie banners, web fonts swapping in, and images without dimensions.

Why a caching plugin alone won’t fix it

Most slow WordPress sites already run a caching plugin, often two, and adding WP Rocket, LiteSpeed Cache or W3 Total Cache on top rarely moves the score much. Caching helps the server answer faster, which improves Time to First Byte. It can’t shrink a 2 MB hero image, remove 400 KB of unused builder CSS, or stop a chat widget from blocking every tap.

That’s why WordPress speed optimization starts with the page itself: the LCP element, render-blocking CSS and JavaScript, fonts and third-party tags. Caching is configured last, once, and properly.

Elementor, WPBakery and Divi

Page builders are the most common reason a WordPress site stays slow. Each widget ships its own CSS and JavaScript, and the markup is deeply nested, which makes the browser work harder on every page.

A lot can still be fixed: unused CSS removed per template, scripts deferred, heavy widgets replaced, and the builder’s own performance settings switched on. But there is a ceiling. If the builder is most of the page weight, I’ll tell you where that ceiling is for your site, and whether a migration to a lean block theme costs less than fighting it.

WooCommerce and dynamic pages

Shops and membership sites can’t cache every page. Cart fragments, logged-in sessions and search pages hit the server on every visit, so hosting, database queries and object caching matter more. I profile the slow queries, cut unnecessary AJAX calls, and keep the product and category templates as light as the homepage.

Hosting, TTFB and CDN

If the server takes more than about 800 milliseconds to answer, nothing on the page can make up for it. I check Time to First Byte on your host, the PHP version, object caching and whether a CDN such as Cloudflare is serving images and static files. Sometimes the cheapest fix is a better hosting plan. When it is, you’ll hear that before you pay for anything else.

Keeping the site fast after the fix

The usual reason a fixed site gets slow again is a new plugin or tag added without anyone checking. A simple performance budget for each template, plus a weekly check of Core Web Vitals and page weight, stops that. Leak watch does those checks for you, and fixes regressions within two business days.

Not sure where your site stands?The free scan checks your LCP, INP and CLS on a real phone in a few minutes.Run the free scan
WordPress speed FAQ

Speed, answered.

Builders, caching, PageSpeed scores and what access I need.

Something else?Write a line about your site. You’ll get a reply from me within one business day.

No. Speed fixes are under the hood. If something visual is the problem, like an autoplay video hero, I show you the trade-off before touching it.

Yes, most of the slow sites I see run on a builder. There’s a ceiling to what optimization can do, and I’ll tell you where it is for your site.

One, configured properly. Which one depends on your host, and often the host’s own cache is enough.

PageSpeed runs one lab test. Search Console shows 28 days of real visitors, and that’s what Google ranks on.

On ad and landing pages, usually yes, because fewer people leave before the page shows. I measure it rather than promise it.

WordPress admin plus hosting or staging access. Everything is done on staging first.

Often done together