Core Web Vitals: what to fix first when LCP, INP, or CLS fails
Technical SEO Published Updated 6 min read

Core Web Vitals: what to fix first when LCP, INP, or CLS fails

Direct answer

If a page loses impressions, gets weak CTR, or remains out of the index, do not start with a generic performance checklist.

Start by separating four different diagnoses:

  1. Is the URL actually indexed and canonicalized as intended?
  2. Does field data show a real Core Web Vitals problem, or are you reacting to one lab run?
  3. Which metric is failing: LCP, INP, or CLS?
  4. Is the real issue speed, or is it search intent, rendering, or snippet mismatch?

Google’s current guidance for Core Web Vitals and page experience still treats CWV as a page-experience signal, not a standalone ranking diagnosis.

Fix order: speed, indexing, or intent?

Use the earliest failed stage, not the loudest symptom:

SymptomCheck firstWhy this comes before a CWV fix
URL Inspection says Crawled - currently not indexedCanonical, internal links, uniqueness, and page roleCore Web Vitals alone does not explain why Google chose not to index a URL
Search Console Core Web Vitals report shows a poor URL groupField data, device class, and representative URLThe report reflects grouped field data, not one immediate page trace
The page is indexed and near page one, but CTR is weakTitle, opening answer, and snippet pull-throughClick problems are often intent or summary problems before they are speed problems
Field and lab data both show poor LCPHero asset discovery, blocking CSS or JS, and server pathThis is when a performance fix should move to the front of the queue

If the page is not indexed, fix indexability and distinct value first. If the page is indexed but slow, fix the failing metric directly. If the page is visible but ignored, work on snippet fit before chasing Lighthouse points.

The current metrics and thresholds

The current three metrics are:

Google recommends evaluating the 75th percentile of visits:

MetricGoodNeeds improvementPoor
LCP<= 2.5 s> 2.5 s and <= 4.0 s> 4.0 s
INP<= 200 ms> 200 ms and <= 500 ms> 500 ms
CLS<= 0.1> 0.1 and <= 0.25> 0.25

One current boundary still worth repeating: INP replaced FID in the Core Web Vitals set. If your checklist still treats FID as current, that checklist is outdated.

Field data, lab data, and index state are different evidence

Teams often mix four different signals into one vague sentence like “the page is bad for Core Web Vitals.”

Evidence sourceWhat it can tell youWhat it cannot tell you
Search Console Core Web Vitals reportWhether real users in a URL group and device class are seeing poor field performanceThe exact code or asset that caused the failure today
CrUX or PageSpeed Insights field dataWhether real visits experience a repeated loading, interaction, or layout problemWhich template line to edit first
Lighthouse lab runsHow to reproduce a likely bottleneck and inspect the current LCP or blocking workYour 28-day field status or ranking cause
URL InspectionWhether Google indexed the intended canonical and how the last crawl wentWhether the page passes Core Web Vitals in field data

This distinction matters because SEO teams often waste time optimizing CWV for URLs that are really blocked by indexing, duplication, rendering, or intent problems.

A real production sample from August 11, 2026

On August 11, 2026, I ran Lighthouse against https://fennecseo.app/blog/core-web-vitals-2026/ with:

URL='https://fennecseo.app/blog/core-web-vitals-2026/'
npx --yes lighthouse "$URL" \
  --only-categories=performance \
  --output=json \
  --output-path=./lighthouse.json \
  --quiet \
  --chrome-flags="--headless=new --no-sandbox"

The current sample output was:

URL: https://fennecseo.app/blog/core-web-vitals-2026/
Fetch time: 2026-08-11T02:06:24.756Z
Performance score: 31
FCP: 5.5 s
LCP: 8.3 s
Speed Index: 8.9 s
TBT: 1,750 ms
CLS: 0

The same run identified the above-the-fold hero image as the current LCP element, and it also surfaced unused third-party JavaScript plus unused icon CSS as follow-up work.

That sample is useful for two reasons:

  • it shows a real LCP problem on a live production URL instead of a generic checklist;
  • it still does not prove that rankings or indexing changed because of speed alone.

At the same time, Search Console URL Inspection for this English URL currently reports Crawled - currently not indexed, with indexing allowed and the Google canonical matching the declared canonical. That is exactly why CWV, indexing, and page-role diagnosis should be kept separate.

What to fix first by metric

If LCP is failing

Find the actual LCP element first. Then check:

  • slow server response or redirect delay;
  • late discovery of the hero image or main text block;
  • render-blocking CSS or JavaScript;
  • above-the-fold images loaded from a heavy remote source;
  • client-side rendering that delays the main content.

The fastest wins are often HTML caching, reducing redirects, replacing decorative remote hero images with lighter local assets, preloading the real LCP resource, and cutting blocking work before the main content renders.

If INP is failing

Treat INP as an interaction problem, not a page-load-only problem.

Check for:

  • long main-thread tasks after the page becomes visible;
  • oversized JavaScript bundles;
  • expensive click, input, or filter handlers;
  • third-party scripts that delay interaction;
  • large rerenders after one user action.

If field INP is poor but the load metrics look acceptable, the bottleneck is often interaction code rather than raw loading.

If CLS is failing

Look for the moving element, not just the final score.

Common causes include:

  • images or embeds with no reserved dimensions;
  • banners or notifications injected above existing content;
  • fonts swapping late and moving headings;
  • client-side components that expand after initial paint.

CLS work is usually layout discipline, not a generic “make it faster” project.

When it is not really a Core Web Vitals problem

Do not use CWV as a catch-all explanation.

Sometimes the real issue is:

  • the title and opening answer do not match the query;
  • important content appears only after JavaScript rendering;
  • canonical, hreflang, or indexing controls are wrong;
  • the page loads, but the main task is still hard to complete.

If the content appears only after client-side rendering, check Googlebot WRS and JavaScript SEO. If the URL is not indexed, use the Google indexing troubleshooting workflow before you request more performance work. If the page is indexed but weak for its query, use the SEO Audit tool to separate user-task fit from page speed.

What Core Web Vitals can and cannot say about SEO

Google’s page experience guidance says ranking systems use page-experience signals and reward pages that provide a good experience. The same guidance also makes clear that useful content can still perform well even if page experience is not perfect.

That means:

  • better CWV can reduce friction for real users;
  • poor CWV is a valid diagnosis target;
  • good CWV does not guarantee higher rankings;
  • bad CWV does not prove that relevance, content quality, or rendering are fine.

This is why “we improved Lighthouse from 31 to 80, so rankings should rise” is not a reliable SEO conclusion.

A reproducible verification workflow

  1. Check URL Inspection first so you know whether the page is indexed, allowed, and canonicalized as intended.
  2. Open PageSpeed Insights for the representative URL and separate field data from lab data.
  3. Run a reproducible Lighthouse test and save the JSON output.
  4. Identify the real failing metric and the current LCP element or interaction bottleneck.
  5. Re-test for regressions in layout, rendering, and conversion paths.
  6. Annotate the release date and wait for enough field data before judging the result.

If you need a quick rendered check before shipping:

URL='https://fennecseo.app/blog/core-web-vitals-2026/'
curl -I -L "$URL"
curl -sL "$URL" | rg -n 'canonical|hreflang|img|preload|fetchpriority'

That does not replace field data, but it helps you catch obvious deployment mistakes before the 28-day window catches up.

Common mistakes

  • Treating one Lighthouse run as proof of a field-data problem.
  • Blaming Core Web Vitals for a URL that is not indexed.
  • Optimizing TBT and claiming INP is fixed without checking field evidence.
  • Improving lab speed while leaving the actual LCP element unchanged.
  • Keeping a decorative remote hero image above the fold and calling it a content asset.
  • Improving speed while the title and opening answer still miss the query.

What to do next

Q&A

What are the current Core Web Vitals thresholds?

At the 75th percentile of visits, aim for LCP at or below 2.5 seconds, INP at or below 200 milliseconds, and CLS at or below 0.1.

What should I check before blaming Core Web Vitals?

Check whether the URL is indexed, whether field data actually shows a CWV problem, and whether the page has an intent or snippet problem before you jump into a speed-only fix.

Do better Core Web Vitals guarantee better Google rankings?

No. Google uses page experience signals, but relevance and helpful content still matter more than a good CWV score alone.

Privacy & Cookies

We use cookies to enhance your experience. By continuing to visit this site you agree to our use of cookies.