Speed & Core Web Vitals

Performance starts before the build command

Updated June 29, 2026 3 min read
Performance starts before the build command

WordPress Performance Optimization — what you get

Core Web Vitals work is easier when template boundaries and asset ownership are clear. By the time you’re running a build command and minifying assets, most of your performance ceiling is already set — by decisions made much earlier.

There’s a comforting myth that performance is a final step: build the site, then “optimise” it with a caching plugin and a minifier. In practice, the build step only amplifies whatever structure you already have. If the architecture is clean, the build makes a fast site faster. If it isn’t, you’re shipping a smaller version of a slow site.

Performance is an architecture decision

The biggest performance wins I’ve shipped didn’t come from tooling. They came from deciding, early, which parts of a page are critical and which aren’t — and structuring templates around that. Above-the-fold content gets prioritised; everything else can wait. That decision shapes how you load CSS, how you order markup, and what you defer. You can’t bolt it on at the end without a rewrite, which is why I treat it as part of the design phase, not the deployment phase.

Every component should own its assets

When a component owns its own styles and behaviour — and only loads them when it’s actually on the page — performance becomes a property of the system rather than a cleanup task. The alternative is one giant stylesheet and one giant script loaded everywhere, where a homepage carousel taxes a contact page that doesn’t even use it.

Critical CSS, deferred everything else

Once boundaries are clear, the loading strategy almost writes itself: inline the critical CSS needed to render what the visitor sees first, defer the rest, and keep render-blocking resources close to zero. The same logic applies to scripts — there’s rarely a reason for JavaScript to block the first paint. None of this requires heroics; it requires knowing which styles are critical, which is only possible when the template structure is honest about what renders first.

Images and fonts are first-class, not details

Two things sink Core Web Vitals more than almost anything else: images without dimensions, and fonts that arrive late. So images get explicit width and height to protect against layout shift, the largest one gets prioritised for LCP while the rest lazy-load, and modern formats do the heavy lifting. Fonts get preloaded where they matter and use font-display: swap so text is never invisible.

Measure before you optimise

I don’t guess at performance; I measure before and after with real metrics so the improvement is provable. It also keeps the work honest: sometimes the thing you assumed was slow isn’t, and the real cost is a third-party script someone added for one campaign.

The build step amplifies good structure

By the time I run the build, its job is simple: bundle, minify, and fingerprint assets that were already scoped sensibly. Minification on a well-structured site is the cherry on top. Minification as a strategy — hoping the build will rescue a tangled architecture — is how you end up with a “fast” site that still feels slow on a mid-range phone.

Watch the third parties

The fastest theme in the world can still be dragged down by what gets added after launch: an analytics tag, a chat widget, a marketing pixel, an embedded video. These rarely show up in local testing and almost always show up in a real user’s experience, because they compete for the main thread exactly when the page is trying to become interactive (the INP metric). I plan for them: load them after interaction where possible, give the team a clear place to add tags rather than scattering them through the theme, and re-measure once they’re live. A performance budget that ignores third parties is a budget that only holds in the lab.

Performance, in other words, is mostly upstream of tooling. Get the template boundaries and asset ownership right, and Core Web Vitals largely take care of themselves. That’s the approach behind my performance optimization work — and it pairs closely with technical SEO, since a fast, well-structured site is also an easy one for search engines to crawl and render.

Have a WordPress project or problem to solve?

Book a short call and I will help make it shippable — from a quick fix to a full custom build.

Book a call

Related articles