Max
Back to Blog

A Web Performance Checklist, Starting from Core Web Vitals

When clients come to me for performance work, eight times out of ten the trigger is 'the site got slow and rankings dropped.' Since Google folded Core Web Vitals into its ranking signals, performance is no longer just an engineering concern — it is a business problem that directly affects traffic. Here are the three core metrics, and the checklist I run on every optimization project.

What the three metrics measure

LCP (Largest Contentful Paint) measures how fast the biggest piece of content appears — usually the hero image or main heading; target under 2.5 seconds. CLS (Cumulative Layout Shift) measures layout jank — that experience of reaching for a button as the whole page shifts; target below 0.1. INP (Interaction to Next Paint) measures how quickly interactions get a response, replacing the old FID; target within 200ms.

Images: the biggest and easiest win

Nine out of ten slow sites are slow because of images. Convert to WebP or AVIF, serve appropriate sizes per layout (srcset), lazy-load everything below the fold, and give the hero image fetchpriority="high" — these alone often cut LCP in half. And always set explicit width/height or aspect-ratio on images: missing dimensions are the most common cause of CLS.

Fonts and JavaScript

Use font-display: swap so text never waits invisibly, and preconnect / preload your font files. JavaScript is the main driver of INP: shrink the above-the-fold bundle, defer non-critical third-party scripts (chat widgets, analytics) or load them on interaction, and break up long tasks. In Next.js, dynamic imports and server components are ready-made tools for this.

Measure first, then act

Before optimizing, run PageSpeed Insights and Lighthouse to establish a baseline, and distinguish lab data from real-user data (CrUX) — when they disagree, trust real users. Re-measure after each change; do not change ten things at once and guess which one worked.

There is no magic in performance work — just checklists, measurement, and iteration. But the ROI is brutally honest: fast sites bounce less, convert more, and rank higher.