Performance
Core Web Vitals checklist for 2026
Pass LCP, INP, and CLS with a field-data-first checklist. Practical fixes for landing pages, WordPress, and B2B sites that cannot afford silent speed decay.

TL;DR
- 2026 targets (good): LCP under 2.5s, INP under 200ms, CLS under 0.1. Measure field data in Search Console or CrUX first. Use Lighthouse as a debug aid.
- Fix the largest failing template first (home, service, or checkout), then set release budgets so third-party scripts do not undo the win.
- LCP: server response, hero image, and render-blocking CSS/JS. INP: long tasks and heavy click handlers. CLS: reserved space for images, ads, and late fonts.
- Pair this checklist with ongoing website performance work and a performance & SEO engagement when you need an owner.
Why the checklist exists
Core Web Vitals fail when teams chase lab scores and ignore field data.
Lighthouse on a quiet laptop is useful for debugging. Google rankings and real conversion care about what phones on real networks experience. Start with Search Console Core Web Vitals or CrUX by URL group, then open DevTools on the worst template.
In 2026 the three metrics that matter for most B2B and WordPress sites are still LCP (largest contentful paint), INP (interaction to next paint), and CLS (cumulative layout shift). Passing means the 75th percentile of field data is in the "good" range. A single green lab run is insufficient on its own.
This checklist is ordered by impact. Do not polish favicon compression while the hero image is 1.8 MB and the server spends 1.2 seconds before first byte.
Passing means the 75th percentile of field data is good. A single green lab run is insufficient on its own.
Good thresholds (2026)
- <2.5s
- LCP: largest contentful paint for the main above-the-fold element.
- <200ms
- INP: interaction to next paint across clicks, taps, and key presses.
- <0.1
- CLS: cumulative layout shift from late images, ads, banners, and fonts.
Checklist
Twelve controls that keep LCP, INP, and CLS in the good range.
01
Segment field data by template
Split home, listing, article, service, and checkout. Fix the template that fails for the most traffic or revenue first. A green blog post does not save a slow product page.
02
Cut server response time (TTFB)
Aim for a fast HTML response on the critical templates. Use edge caching, a nearby origin, and lean CMS queries. Slow TTFB makes LCP almost impossible to fix in the browser alone.
03
Optimise the LCP element
Identify the actual LCP node (often a hero image or H1 block). Serve a modern format (WebP/AVIF), correct dimensions, priority hint, and no lazy-load on the LCP image.
04
Remove render-blocking CSS and JS
Inline critical CSS for the first viewport where practical. Defer non-critical scripts. Kill unused page-builder and plugin CSS on templates that do not need them.
05
Budget third-party scripts
Tag managers, chat widgets, heatmaps, and A/B tools often own INP and LCP regressions. Assign an owner, a load condition, and a maximum KB/ms budget per script.
06
Break up long JavaScript tasks
INP suffers when the main thread is busy past 50ms on interaction. Split heavy bundles, defer non-essential hydration, and move analytics off the critical path.
07
Make clicks and forms responsive
Audit primary CTAs, menus, and form fields. Avoid expensive synchronous work in click handlers. Prefer CSS for open/close UI over large JS libraries when possible.
08
Reserve space for media and embeds
Set width/height or aspect-ratio on images, video, and iframes. CLS spikes when late content pushes the layout. Never inject banners above existing content without reserved space.
09
Load fonts without layout jump
Use font-display: swap or optional, subset files, and preload only the critical face. Match fallback metrics so text does not reflow when the webfont arrives.
10
Cache and CDN for repeat visits
Cache static assets aggressively. HTML caching needs care for logged-in or personalised pages. A CDN close to users helps LCP on international traffic (US + DACH).
11
Set a release performance budget
Define max JS, image weight, and third-party count per template. Fail CI or staging review when a PR exceeds the budget. One unchecked script undoes a month of fixes.
12
Retest field data after release
Lab green is not done. Watch Search Console for 28-day field trends after each major change. Assign one person to own regressions.
Practical fix order
LCP first on marketing pages. INP first on tools and checkout.
LCP playbook: improve TTFB, shrink and prioritise the hero, cut blocking CSS/JS, then touch secondary images. For WordPress, page builders and unoptimised sliders are the usual LCP offenders.
INP playbook: find long tasks around the first interaction (menu, cookie banner, chat launcher). Delay third-party boot until after consent or idle. Avoid shipping a marketing site with a full SPA hydration cost.
CLS playbook: dimensions on every media asset, stable cookie banners, and no late "notification" bars that shove content down. Ads and embeds need placeholders with the final height.
For deeper metric context (especially INP), see Core Web Vitals and INP. For budgets as an operating habit, see performance budgets explained.
Pre-release smoke checks
Run these before you call the sprint done.
✓
Field data (or at least mobile throttled lab) checked on the money template as well as the homepage.
✓
LCP element identified in Performance panel; image not lazy-loaded.
✓
No new third-party script without an owner and budget entry.
✓
Cookie banner and chat widget measured for INP impact on first tap.
✓
Images and embeds have dimensions; fonts do not cause a visible jump.
✓
Search Console URL group scheduled for review 2 to 4 weeks after release.
When to get help
Own the metric, or hire someone who will.
If performance work keeps bouncing between freelancers and plugin updates, put a single owner on field data and release budgets. That is the core of our website performance work and the performance & SEO service line.
Germany and US teams see the same three metrics. Hosting region and third-party stacks differ; the checklist does not.
Common questions
What people ask about Core Web Vitals in 2026.
What are the Core Web Vitals thresholds in 2026?
Good is LCP under 2.5 seconds, INP under 200 milliseconds, and CLS under 0.1 at the 75th percentile of field data. Needs improvement and poor bands sit above those lines.
Why is my Lighthouse score green but Search Console red?
Lighthouse is a lab simulation on one device and network. Search Console uses real-user (field) data across many devices. Fix field failures on the templates that carry traffic, then re-check after enough data accumulates.
How do I fix LCP on a WordPress site?
Find the LCP element, compress and correctly size the hero, stop lazy-loading it, reduce render-blocking CSS/JS from builders and plugins, and improve server or cache response time. Theme and host choice matter as much as image compression.
What causes a bad INP score?
Long JavaScript tasks on the main thread during clicks and taps: heavy frameworks, chat widgets, tag managers, and expensive event handlers. Break up work, defer non-critical scripts, and measure the first interaction users actually take.
How do I stop CLS from images and ads?
Reserve space with width/height or CSS aspect-ratio before the asset loads. Give ads and embeds a fixed placeholder height. Avoid inserting banners above existing content without reserved space.
Do Core Web Vitals still affect SEO in 2026?
They remain a ranking and quality signal, and they still affect conversion when pages feel slow. Treat them as a product quality control with budgets and owners. A one-off audit screenshot leaves the work unfinished.
Start here
Ready to talk.Send us the brief.
or book a 15-minute call →or email us directly →
Not sure where to start? Send the page, workflow, or backlog causing the problem. We will tell you whether it needs a scope call, a short diagnostic, or a different first step.