harshtalreja.com · core web vitals consultant

Core Web Vitals Consultant: I find the one cause that is actually failing your score, fix it behind a rollback, and prove it on real users.

6.0s → 3.7s mobile LCPone render-blocking file removedno rebuildevery change reversiblefrom $285

Senior technical SEO consultant. I find the one cause that is actually failing your Core Web Vitals, fix it behind a rollback, and prove it on real users. Below is also one of the most thorough, honestly-disclaimered guides you will find for fixing LCP, INP, and CLS yourself, on WordPress, Shopify, Next.js, or custom code.

By Harsh Talreja, senior technical SEO consultant (LinkedIn). I build SEO tools (SEO Audit Pro, a live first-pass auditor) and work the technical layer for B2B SaaS and content sites where rankings move revenue.

TL;DR: Most sites fail Core Web Vitals because of one dominant render-blocking cause, not a hundred small ones. As of 2026 the three metrics are LCP (good at 2.5s or less), INP (200ms or less, it replaced FID in March 2024), and CLS (0.1 or less), each judged at the 75th percentile of real-user field data over a rolling 28 days. Fix the dominant cause first, behind a rollback, then verify in the field before touching anything else. This page shows exactly how, per technology, with the checks and risks for each fix.

Find your one cause, free →

I pull your real field data first and tell you the single cause most likely failing your Core Web Vitals. No pitch, no obligation.


How to read this guide

There are two ways to use this page. If you want someone to just fix it and prove the result, that is what I do, and there is a free data review at the bottom. If you want to do it yourself, the per-metric sections below are a complete, current, Google-aligned playbook. Either way, three rules run through everything:

  1. Measure field data first. Never fix what is not failing. Field data (real users) decides the verdict, not a lab score.
  2. Back up and change one thing at a time. Every change behind a rollback, validated on staging, so a regression is a one-step undo, not a crisis.
  3. Verify in the field before you call it done. A lab win is not a field win. Confirm at the 75th percentile in CrUX over the trailing 28 days.

Disclaimer, stated once and meant throughout: Core Web Vitals are a real but secondary page-experience signal, not a guaranteed ranking lever. Google states plainly that "there is no single signal" and that good scores "doesn't guarantee that your pages will rank at the top." Fix these for users and revenue first. And do not optimize purely for the number. Google's own guidance is that "trying to get a perfect score just for SEO reasons may not be the best use of your time" (Google Search Central, Understanding page experience). Every technique below is a real user-experience improvement, not a way to game a metric.


The One-Cause Method: how I find what is actually breaking your score

Most guides hand you a thirty-item checklist. The problem is rarely thirty things. It is usually one dominant cause, and the rest is noise. The method is four steps, and it is the spine of every engagement and of this guide.

  1. Isolate (field first). Start with CrUX or RUM, not one Lighthouse run. Identify the single failing metric and the single template or resource driving it.
  2. Quantify the waste. Prove how much of the offending resource is dead weight (coverage analysis, the Performance panel, the LoAF API). Name the culprit with a number.
  3. Fix reversibly. Apply the smallest targeted change that moves the failing metric, each behind a rollback. Never a rebuild.
  4. Verify in the field. Confirm the gain at the 75th percentile over the 28-day window, not on a single lab pass.

On a content-heavy site I worked on, the failing metric was mobile LCP at about 6.0 seconds. Coverage analysis found one render-blocking theme CSS file that was roughly 88 percent unused on the rendered page. Everyone had blamed the page builder and was being told to rebuild. We shipped critical CSS, Cloudflare cache rules, Early Hints, and image compression, each behind a rollback. Mobile LCP came down from about 6.0 seconds (poor) to about 3.7 seconds (needs improvement), a roughly 38 percent cut from fixing the one dominant cause, with no rebuild. Closing the last gap to the 2.5 second good threshold was then a smaller, separate decision, which is the point of the method: fix the one thing that matters first, then decide if a second pass is worth it.

Mobile LCP, before and after (no rebuild) good ≤ 2.5s Before 6.0s After 3.7s root cause: one render-blocking theme CSS file, ~88% unused. removed, not rebuilt.
Before and after request waterfall showing mobile LCP dropping from 6.0s to 3.7s after removing a render-blocking CSS file
The One-Cause Method 1 Isolate Field data first. Find the one failing metric and the one resource driving it. 2 Quantify the waste Prove how much of that resource is dead weight. Name the culprit with a number. 3 Fix reversibly Smallest targeted change, each behind a rollback. Never a rebuild. 4 Verify in the field Confirm at the 75th percentile over 28 days. A lab win is not a field win.
The One-Cause Method: isolate, quantify, fix reversibly, verify in the field

Work with me

I find the one cause failing your Core Web Vitals, fix it behind a rollback, and prove it on your real users. Recent example: on a content site, mobile LCP went from about 6.0 seconds (poor) to about 3.7 seconds (needs improvement) by removing one render-blocking file, with no rebuild. Full breakdown in the case study below.

My promise: reversible, no rebuild, no lock-in. Every change sits behind a rollback. I confirm each fix in the lab and your real-user monitoring immediately, then in field data over the next 28 days. If the targeted metric has not improved at the 75th percentile after a full field window, I rework or roll it back at no extra fee. What I will not do is promise a ranking jump, because Google does not sell one.

EngagementWhat it isStarts at
Single-page diagnosticThe One-Cause Method on one failing template, named cause plus fix plan$285
Full-site CWV sprintDiagnosis plus implemented, reversible fixes, budgets, field monitoring$690
Retained monitoringOngoing field watch, budgets enforced, ad-hoc fixes$270 / mo

Launch pricing, roughly 40 percent under the going rate for comparable work, while I publish more named results. No lock-in. For context, enterprise Core Web Vitals sprints commonly start near $15,000; this is the same rigor at a fixed, published scope.

Find your one cause, free →

Prefer to do it yourself? The complete, current fix guide for LCP, INP, and CLS, per technology, is below.


Before you change anything: back up and make it reversible

This section is first on purpose. The fastest way to turn a performance project into an outage is to change five things at once on production with no way back. Do this before any fix below.

Why this matters: Google judges the page your real users get. A change that looks great in your lab can regress the field. Reversibility is what lets you move fast without betting the site.


How to measure and track: lab versus field (and which one decides)

This is the single biggest source of confusion, so get it straight before fixing anything. Lab data is one simulated load on one machine. Field data is real users over 28 days. Field data is what Google uses and what passes or fails you.

ToolLab or FieldUse it for
CrUX (API, History API, BigQuery, Dashboard)FieldThe source of truth, at the 75th percentile. The API and Search Console use a trailing 28-day window; BigQuery and the Dashboard are monthly snapshots.
Search Console, Core Web Vitals reportFieldYour real verdict, grouped by similar URLs. Start here.
PageSpeed InsightsBothField (from CrUX) and lab (Lighthouse) in one view.
Lighthouse (in DevTools / PSI / npm)LabDiagnosis. Note it reports TBT as the lab proxy; there is no field INP in the lab.
Chrome DevTools, Performance panelLabDeep diagnosis, including Long Animation Frame traces for INP.
Web Vitals Chrome extensionBothQuick local read against the CrUX field badge.
web-vitals JavaScript libraryField (RUM)Build your own real-user monitoring. Use the attribution build for root-cause data.
WebPageTestLab (synthetic)Multi-location, throttled runs, filmstrips.

Disclaimer: A high Lighthouse score with a failing field assessment is normal and both can be correct. Do not chase the lab number. Optimize the field metric that is actually failing.

Lab vs field: which one decides LAB One device, one run Lighthouse / PageSpeed score. Great for diagnosis. → diagnosis FIELD Real users, p75, 28 days CrUX / Search Console. What Google actually uses. → the verdict
Why a 90+ PageSpeed lab score can still fail the field-data Core Web Vitals assessment

The three Core Web Vitals (2026)

INP replaced FID as a Core Web Vital on March 12, 2024 (Google's announcement on web.dev). If any guide or "consultant" still optimizes FID, it is over two years stale.

MetricMeasuresGood (p75)Needs improvementPoor
LCP Largest Contentful PaintLoading2.5s or less2.5s to 4.0sover 4.0s
INP Interaction to Next PaintResponsiveness200ms or less200ms to 500msover 500ms
CLS Cumulative Layout ShiftVisual stability0.1 or less0.1 to 0.25over 0.25

A page passes only when all three are in the good band at the 75th percentile of field data (thresholds and methodology: Google Search Central and web.dev).

Core Web Vitals thresholds (2026) LCP Largest Contentful Paint good needs work poor 2.5s 4.0s INP Interaction to Next Paint good needs work poor 200ms 500ms CLS Cumulative Layout Shift good needs work poor 0.1 0.25
Core Web Vitals 2026 thresholds: LCP 2.5s, INP 200ms, CLS 0.1 good ranges

How to fix LCP (Largest Contentful Paint)

The one moveOpen PageSpeed Insights, find your actual LCP element, and see which of its four sub-parts is largest. Fix only that one. It is usually TTFB or a render-blocking file, not the image itself.

LCP is when the largest content element, usually your hero image or headline, finishes rendering. Before fixing, break LCP into its four sub-parts, because optimizing the wrong one just shifts time around:

  1. Time to First Byte (TTFB): navigation start to first byte of HTML. Often the dominant part. web.dev suggests budgeting it around 40 percent of LCP as a rough guide.
  2. Resource load delay: TTFB to when the LCP resource starts loading. Drive toward zero.
  3. Resource load duration: how long the LCP resource takes to download.
  4. Element render delay: resource finished to element painted.

What to check first: open PageSpeed Insights or the DevTools Performance panel, identify the actual LCP element, and see which sub-part is largest. Fix that one.

The fixes (each with what to check and the risk)

By technology


How to fix INP (Interaction to Next Paint)

The one moveProfile the slow interaction in the DevTools Performance panel or the LoAF API, then break up the long JavaScript task behind it and yield to the main thread. INP is main-thread work, so it needs code changes, not a plugin.

INP is the lag between a user interaction (tap, click, key press) and the next visual update. It is the hardest of the three because it is driven by JavaScript on the main thread. INP has three sub-parts: input delay (interaction to when callbacks begin), processing duration (your event callbacks running), and presentation delay (painting the next frame).

What to check first: use the DevTools Performance panel or the Long Animation Frames (LoAF) API to find which scripts run during the slow interaction. LoAF (shipped Chrome 123) is a diagnostic, not a fix; the web-vitals attribution build surfaces it in the field.

The fixes (each with what to check and the risk)

By technology


How to fix CLS (Cumulative Layout Shift)

The one moveRecord a load in the DevTools Performance panel and read the Layout Shift entries, each of which names the element that moved. Then dimension every image, reserve space for anything injected late, and fix font swap. Those three cover almost all CLS.

CLS measures how much the layout jumps while loading. The causes are almost always: media without dimensions, late-injected content (ads, embeds, banners), and web fonts swapping.

What to check first: in the DevTools Performance panel, record a load and look for "Layout Shift" entries; each one names the element that moved.

The fixes (each with what to check and the risk)

By technology


How to verify the fix actually worked

A green Lighthouse run is not proof. Here is how to confirm a real win, in order:

  1. Confirm in the lab that the specific sub-part you targeted improved (DevTools or PSI). This tells you the change did what you intended.
  2. Watch the field data settle. CrUX and Search Console move on a roughly 28-day rolling window, so a real fix can take several weeks to fully show as "good." This lag is why people wrongly think a fix failed.
  3. Judge at the 75th percentile, segmented by mobile and desktop. Passing means at least 75 percent of real page views are in the good band.
  4. Keep RUM running (the web-vitals library or a vendor) so you catch regressions from a future plugin, deploy, or third-party tag before Search Console does.

Disclaimer: If you revert a change, the field data will also take up to 28 days to reflect it. Use lab and RUM for fast confirmation, and treat Search Console as the slow, authoritative scoreboard.


Do Core Web Vitals actually affect rankings? The honest answer

Core Web Vitals are a real but secondary signal, not a ranking guarantee. Google's wording is that "there is no single signal," that core systems "reward content that provides a good page experience," and that good scores "doesn't guarantee that your pages will rank at the top" (Google Search Central, Understanding page experience). Relevance and quality come first. Among comparably helpful pages, page experience can be the differentiator, never a substitute for relevance and quality.

Fix them for the business case, which is well evidenced:


Where Core Web Vitals fit in Google's page experience guidance

Core Web Vitals are one input into "page experience," and Google evaluates this on a page-specific basis, not site-wide. Google's own framing is that it "always seeks to show the most relevant content, even if the page experience is sub-par," so a fast page does not outrank a more relevant one. Google's recommended self-assessment is six questions, and Core Web Vitals are only the first:

  1. Do your pages have good Core Web Vitals?
  2. Are your pages served in a secure fashion (HTTPS)?
  3. Does your content display well on mobile devices?
  4. Does your content avoid using an excessive amount of ads that distract from or interfere with the main content?
  5. Do your pages avoid using intrusive interstitials?
  6. Is your page designed so visitors can easily distinguish the main content from other content on your page?

A consultant who only talks about LCP, INP, and CLS is answering one of those six. I look at page experience as a whole, not just the three metrics, because Google does.


What you get when I do it (and what you keep)

As promised up top: every change is reversible, no rebuild, and I rework or roll back any fix that does not move your field data at the 75th percentile, at no extra fee. The one thing I will not promise is a ranking jump, because Google does not sell one.


Do you even need a consultant? An honest guide

If anyone guarantees a ranking jump from Core Web Vitals, walk away. That is not an honest promise.


Your screen recording goes here
A live Core Web Vitals teardown (the One-Cause Method on a real site).

Case study: 6.0s to 3.7s on mobile, no rebuild

The site: a content-heavy publisher (anonymized). The problem: mobile LCP around 6.0 seconds, failing the assessment, the page builder getting blamed.

The diagnosis: field data pointed at mobile LCP on article templates. Coverage analysis found one render-blocking theme CSS file about 88 percent unused on the rendered page.

The fix, each behind a rollback: critical CSS inlined for the fold, Cloudflare cache rules, Early Hints, image compression. No rebuild.

The result: mobile LCP went from about 6.0 seconds (poor) to about 3.7 seconds (needs improvement) in the field, a roughly 38 percent reduction from the dominant cause alone, no rebuild, every step reversible, and the team kept ownership. To be clear, 3.7 seconds is not yet "good" (that is 2.5 seconds or less). The point of leading with the one cause is that it does the heavy lifting first; the remaining gap to good was a smaller, separate call.

Your real screenshot goes here
PageSpeed Insights field data before and after: mobile LCP 6.0s to 3.7s
A genuine PageSpeed / Search Console export. I will not fabricate this.

[Second case placeholder: add a Shopify or INP case with real before/after numbers and a screenshot when available. Anonymize. Do not invent figures.]


What I found auditing the Core Web Vitals consultant pages on Google

I read the Core Web Vitals consultant and "optimization service" pages ranking on Google. The most common finding was uncomfortable: many still sell "First Input Delay" (FID), a metric Google retired on March 12, 2024. If a page is optimizing a metric that has not existed for over two years, ask what else on it is out of date.

Across the consultant and "optimization service" pages I reviewed, a large share still presented FID as a current metric rather than noting it was deprecated. If a page is optimizing a metric that has not existed for over two years, treat every other claim on it with the same suspicion.

The other pattern: almost none show a real before-and-after screenshot, almost none publish a price, and almost none promise the work is reversible. That is the whole reason this page does all three.


Frequently asked questions

What does a Core Web Vitals consultant do?

A Core Web Vitals consultant diagnoses why your site fails LCP, INP, or CLS in real-user field data, then implements the fixes and verifies the result. The good ones work from field data at the 75th percentile, name the specific cause, and ship reversible changes rather than handing you a generic checklist.

Why does my site fail Core Web Vitals when my PageSpeed score is 90 or higher?

Because the 0 to 100 PageSpeed score is lab data from one simulated load, while the pass or fail assessment is field data from real users over 28 days. A high lab score with a failing field assessment usually means real users on slower devices and networks have a worse experience than your test. The field data decides the verdict.

How do I fix a high INP score?

Find the slow interaction with the DevTools Performance panel or the Long Animation Frames API, then break up the long JavaScript task behind it and yield to the main thread. Reduce and defer JavaScript, avoid an oversized DOM, and use scheduler.yield with a fallback. INP is main-thread work, so it usually needs code changes, not a plugin.

How do I find what is causing my CLS?

Record a load in the Chrome DevTools Performance panel and look for "Layout Shift" entries, which name the element that moved. The usual causes are images or iframes without width and height, content injected above existing content, and web fonts swapping. Set dimensions, reserve space, and fix the font strategy.

How much does a Core Web Vitals consultant cost?

It ranges widely, from sub-100 dollar gigs to enterprise sprints starting around 15,000 dollars, which is why the market is confusing. A fair mid-market engagement is a fixed-scope diagnostic and sprint with a clear number up front, not an open-ended hourly bill or a vague "contact us."

Do Core Web Vitals affect Google rankings?

They are a real but secondary page-experience signal, not a guaranteed ranking lever. Google states there is no single signal and that good scores do not guarantee top rankings. The stronger reason to fix them is conversion and revenue, where the data is clear.

How long after I fix Core Web Vitals will Search Console update?

Field data in Search Console and CrUX moves on a roughly 28-day rolling window, so a real fix can take several weeks to fully show as "good," even though the change shipped immediately. This lag is why people think a fix did not work when it actually did.

Can you guarantee I will pass the Core Web Vitals test?

No honest consultant guarantees a pass on a site they have not diagnosed, and nobody can guarantee a ranking change from it. What I can do is name the cause, fix it reversibly, and show you the field-data result. If your site cannot realistically pass, I will tell you that before you spend money.


Sources

Every fact on this page is from Google's own documentation, not opinion:


Find your one cause. Book a free data review.

Send me your URL. Before we talk, I will pull your real field data and find the single cause most likely failing your Core Web Vitals. The call is the verdict, not discovery. You leave knowing the one thing to fix, even if you never hire me.

Book a free data review →


Find your one cause, free →