Page Speed Checklist

A Core Web Vitals checklist is an ordered list of concrete fixes for LCP, INP and CLS, ranked by how much each one actually moves the score — not a vague "optimize your images" audit summary. Every item here is tagged by metric and impact, so you can fix what your real data says is actually failing.

🕒 Updated September 28, 2026 ⚡ 20 actionable fixes 💾 Progress saved in your browser 🆓 Free forever ⭐ Rate this tool 📖 Read the guide

Your progress

0 / 20 complete
LCP · Largest Contentful Paint
Add <link rel="preload" as="image"> for the hero/LCP image so the browser fetches it immediately instead of discovering it late in the HTML.
Everything else is delayed until the HTML document itself arrives — a slow TTFB caps how fast LCP can possibly be, no matter what else you fix.
Inline critical CSS and defer non-critical stylesheets and scripts so the browser can paint sooner.
Smaller file sizes than JPEG/PNG at equivalent quality directly cut download time for the LCP element.
Cuts round-trip time by serving assets from a location physically closer to the visitor.
Helps the browser prioritize and reserve space for the resource earlier, instead of discovering its size only after it loads.
INP · Interaction to Next Paint
Tasks over 50ms block the main thread and delay the browser from responding to clicks or taps — split them up with setTimeout, scheduler.yield, or a Web Worker.
Ad tags, chat widgets and analytics scripts often run unrelated JS on the main thread at exactly the moment a user is trying to interact.
Search-as-you-type, resize and scroll handlers that run heavy logic on every single event compound quickly under real usage.
Reading and writing to the DOM in alternating order inside the same handler forces repeated synchronous reflows.
Defer analytics pings, prefetching and other non-critical work to idle time instead of the main interaction path.
CLS · Cumulative Layout Shift
Give ad slots, iframes and embeds a fixed size (or aspect-ratio) up front so content around them doesn't jump when they load.
Without this, the browser can't reserve space before the media finishes loading, so surrounding content shifts.
Font swaps that change text size or spacing mid-load are one of the most common, least-noticed causes of layout shift.
Dynamically adding a banner, cookie notice or promo above what's already rendered pushes everything below it down.
General
Field data (CrUX) can take up to 28 days to reflect a change — lab data confirms the fix actually worked immediately.
Core Web Vitals thresholds and real-world results often differ significantly between the two — a fix for one doesn't guarantee the other.
Loading everything eagerly wastes bandwidth on content the user may never scroll to.
Cuts transfer size for HTML/CSS/JS with no quality tradeoff — usually a one-line server config change.
Bundles that include code for pages the visitor isn't on inflate parse and compile time for no benefit.
Rahib Ali
Written & maintained by Rahib Ali
Senior PHP/Laravel Developer & Technical SEO Specialist, 12+ years experience · Updated September 28, 2026

Every item reflects INP — the metric that replaced FID in March 2024 — not outdated advice still floating around from before that change, and each fix is tagged with the impact level actually seen when applying it on real client sites.