Most CWV Advice Is Useless
"Optimize your images." "Minimize JavaScript." "Use a CDN." Thanks, very helpful. The problem with most Core Web Vitals advice is that it's painfully generic. We've been optimizing CWV for client sites since 2021, and the fixes that actually move rankings are much more specific than what you read in most blog posts. Here's what actually worked across 30+ sites we optimized this year.
LCP: It's Almost Always Images or Fonts
Largest Contentful Paint is the metric that most directly affects rankings, and in our experience, the fix is almost always one of two things: the hero image or web fonts. On 22 of 30 sites we optimized, the LCP element was either a hero image or a heading rendered in a custom font.
For images: use Next.js Image component or `<img loading="eager" fetchpriority="high">` for the LCP image specifically. Don't lazy-load above-the-fold images — we see this mistake constantly. Use AVIF format with WebP fallback. Serve responsive sizes via srcset. And preconnect to your image CDN in the document head. One client's LCP dropped from 4.2s to 1.1s just by adding a preconnect tag and switching from PNG to AVIF.
For fonts: inline your critical font-face declarations in the HTML head (not in a CSS file that needs to be fetched first). Use font-display: swap (not optional — swap is better for LCP). Subset your fonts to only the characters you actually use — most Indian B2B sites only need Latin characters plus a few dozen Devanagari characters for Hindi copy. We've reduced font file sizes by 70% with subsetting.
INP: The New Metric That's Catching Everyone Off Guard
Google replaced First Input Delay with Interaction to Next Paint (INP) in March 2024, and a lot of sites that passed FID are failing INP. FID only measured the delay on the first interaction. INP measures the responsiveness of every interaction throughout the page lifecycle. That dropdown menu that takes 300ms to open? That filter that blocks the main thread for 500ms? Those now hurt your CWV score.
The biggest INP offenders we've found: React hydration (the page looks interactive but isn't until hydration completes), heavy event handlers on input fields (debounce them), and third-party scripts (analytics, chat widgets, A/B testing tools). For one e-commerce client, removing Hotjar from the product listing page improved INP from 380ms to 120ms. Hotjar was recording every scroll and click event, blocking the main thread. We moved it to only load on specific pages where they actually needed the heatmaps.
CLS: The One Most Teams Get Right (Mostly)
Cumulative Layout Shift is the easiest to fix and the one most teams handle reasonably well. Set explicit dimensions on images and embeds, don't inject content above the fold after load, and use CSS contain-intrinsic-size for lazy-loaded elements. The one gotcha we still see: dynamic ad slots that shift content when they load. If you're running Google AdSense, set a minimum height on the ad container based on the ad size you're requesting. This alone fixed CLS for three publisher sites we work with.
The Ranking Impact
Here's the honest truth: CWV optimization alone rarely causes dramatic ranking improvements. On the 30 sites we optimized this year, the average ranking change was +3 to +7 positions for competitive keywords. The biggest impact was on mobile rankings, where Google applies the page experience signal more aggressively. But those 3-7 positions, combined with the traffic and conversion improvements from a faster site, consistently produce positive ROI. One client saw a 22% increase in organic conversions after CWV optimization — not from ranking changes, but from users converting better on a faster site.