Most teams treat Core Web Vitals as a launch-week chore: run a report, compress a few images, ship. By then the expensive decisions — framework, rendering strategy, data-fetching, third-party scripts — are already baked in. Core Web Vitals architecture isn’t a checklist item you tick off before go-live. It’s a design constraint that should shape your build from the very first commit, because retrofitting speed into a finished product is always slower and more expensive than designing for it upfront.
This is for founders and engineering leads who keep hearing “our Core Web Vitals need work” from marketing or SEO, and want to understand why that keeps happening — and how to stop it happening on the next build.
Core Web Vitals architecture decides more than rankings
Google uses three field metrics as ranking signals: Largest Contentful Paint (LCP), which should land under 2.5 seconds; Interaction to Next Paint (INP), which replaced First Input Delay as the official responsiveness metric in March 2024 and needs to stay under 200 milliseconds; and Cumulative Layout Shift (CLS), which should stay below 0.1. Google grades these at the 75th percentile of real visits over a rolling 28-day window via the Chrome User Experience Report — not a single lab test, but what actually happens on real devices.
The SEO angle gets the headlines, but the business case is simpler and applies whether or not search ranking matters to you: faster pages convert better, bounce less and cost less to serve. A site that hits its vitals on a mid-range Android phone on a patchy 4G connection is a site that respects the majority of real users, not just the developer testing on a fast laptop and office wifi.
The problem with treating vitals as a launch checklist
By the time a team runs its first performance audit, the architecture is usually locked in. A client-rendered single-page app that ships a blank screen and fills it in with JavaScript can’t be turned into a fast-loading page with a few tweaks — the rendering model itself is the problem. Third-party scripts added one at a time over eighteen months, each individually harmless, add up to a main thread that’s too busy to respond to a tap within 200 milliseconds. Images without dimensions, embedded early and copied into every new page template, cause layout shift on every single page at once.
None of these are quick fixes. They’re architectural decisions that were made — often by accident, by whoever reached for the easiest tool at the time — and now have to be unmade. That’s expensive and disruptive in a way that deciding correctly the first time never is.
Where speed is actually won
Rendering strategy
Server-render or statically generate the content that matters for LCP, and hydrate only what genuinely needs interactivity. Shipping a blank page that a megabyte of JavaScript fills in later is the single most common cause of poor vitals, and it’s a decision made at the framework and routing level, not something a build step can fix afterwards. If you’re weighing up a move to a modern framework, our guide to migrating a website to Next.js without losing search rankings covers how to make that change without a temporary performance regression.
The critical path
Inline the CSS a page needs above the fold, self-host fonts with font-display: swap, and defer everything that isn’t needed for first paint. Every render-blocking request in the critical path pushes LCP back, and most of them — a font from a third-party CDN, a stylesheet that styles the whole site rather than just the visible page — are avoidable with better build tooling rather than more hardware.
Third-party scripts
Every analytics tag, chat widget and tag-manager snippet is someone else’s code running its performance budget on your page. INP is the vital most sites fail today, and it’s almost always caused by JavaScript blocking the main thread exactly when a user tries to interact. Load third parties lazily, behind consent or on interaction, or not at all if they aren’t earning their keep.
Layout stability
Reserve space for images, embeds, ads and dynamically injected banners with explicit width and height so nothing jumps as the page loads. CLS problems are usually the easiest to diagnose and the easiest to prevent — the fix is almost always “set the dimensions before the content arrives” — but they’re routinely missed because nobody owns layout stability as a requirement.
Bake it into the process, not the end of it
We set a performance budget at the start of a project — a maximum JavaScript payload, a target LCP, an INP ceiling — and treat a regression against that budget the same way we treat a failing test: it blocks the merge. That single rule does more to keep a site fast than any amount of post-launch optimisation, because it stops the debt from accumulating in the first place.
Lab tools like Lighthouse are useful for catching regressions early, but they don’t tell you what real users experience. Real-user monitoring closes that gap, because lab scores and real phones on real networks rarely agree. We fold Core Web Vitals checks into the same launch process we use for technical SEO more broadly — if you want the fuller list, our technical SEO checklist covers what we verify before anything goes live, vitals included.
The pay-off compounds. On one recent rebuild we walked a client’s site from a multi-second load down to under a second largely by making these calls early rather than chasing scores after launch — proof that this is a build discipline, not a post-launch scramble.
If you’ve already shipped
None of this means an existing, slow site is a write-off. If your vitals are already failing and a rebuild isn’t on the table, there’s still a lot of ground to make up through targeted fixes rather than architectural change — see our guide on how to improve your Core Web Vitals score properly for where to start. But it will always be a harder, slower climb than designing for speed from day one, because you’re working within constraints that a fresh build wouldn’t have.
Decide it at the start, not the end
Performance isn’t the last thing you do before launch. It’s the first thing you decide when you choose how to build — which framework, which rendering strategy, which third parties earn a place on the page. Teams that treat Core Web Vitals as an architectural decision ship products that stay fast for years. Teams that treat them as a checklist end up running the same rescue mission every twelve months.
If you’re scoping a new build, or trying to work out why a fast launch turned into a slow product, our web and web app development services are built around exactly this kind of decision-making from day one. Book a free consultation and we’ll talk through where your architecture is helping or hurting your Core Web Vitals.