Core Web Vitals are three metrics with which search engines measure not abstract "speed" but concrete sensations: is the content visible quickly, does the page answer clicks, does the layout jump under your hands.
LCP — how fast the main thing appears
Time until the largest element of the first screen is painted. It is usually ruined by a heavy hero image without a modern format and explicit dimensions, less often by fonts and third-party scripts loading ahead of the content.
INP — how fast the page responds
The delay between a user action and a visible reaction. The main source of trouble is excess JavaScript: analytics, chat widgets, maps and sliders executing at the exact moment someone tries to press a button.
CLS — how much the layout shifts
Blocks moving after loading has started. Usually images and ad slots without reserved space, plus fonts that get swapped on the fly.
What we do on our side
Serve static pages instead of assembling them on every request.
Convert images to WebP and always set dimensions.
Inline the critical CSS and defer everything not needed above the fold.
Load third-party scripts after interactivity, not before it.
Metrics are worth reading on real users, not only in a lab test: the gap between a developer laptop and a visitor phone is usually the real problem.