BugMojoBugMojoBugMojo
FeaturesPricingBlogHelpAbout
Add to ChromeLog inGet started
BugMojoBugMojo

Bug reports that actually help fix bugs — capture, replay, share.

A product of Softech Infra.

Product

  • Features
  • Pricing
  • Browser extension
  • Get started
  • Log in

Resources

  • Help & guides
  • Blog
  • Compare
  • Glossary

Company

  • About
  • Contact
  • Security
  • Privacy
  • Terms
  • Sitemap
© 2026 BugMojo. All rights reserved.
AllGuidesEngineeringPlaybooksCompareGlossaryAlternativesBy roleBug tracking by framework
  1. Home
  2. Blog
  3. Glossary
  4. What Are Core Web Vitals? LCP, INP and CLS Explained Simply
Glossary

What Are Core Web Vitals? LCP, INP and CLS Explained Simply

Core Web Vitals are three field metrics Google uses to score loading (LCP), responsiveness (INP), and visual stability (CLS). Here is what each measures, the current 2024 thresholds, and why a janky page is really a reproducible bug.

ManviManvi·Jun 26, 2026·7 min read
Glossary
Isometric line-art of a browser window mid-layout-shift with a frozen cursor click and a stopwatch, plus three gauge dials for LCP, INP and CLS in lime on dark
TL;DR
  • Core Web Vitals are three field metrics Google uses to grade real-user experience: LCP (loading), INP (responsiveness), and CLS (visual stability).
  • Good thresholds: LCP ≤ 2.5 s, INP ≤ 200 ms, CLS ≤ 0.1. Poor is LCP > 4.0 s, INP > 500 ms, CLS > 0.25.
  • INP replaced FID on March 12, 2024, and it is stricter: it measures the whole interaction, not just the first input delay.
  • Google scores each at the 75th percentile of real loads. A bad vital is not just a number; in a session replay it is a reproducible bug you can watch and fix.

Definition

Core Web Vitals are three Google metrics that score real-user experience: Largest Contentful Paint measures loading, Interaction to Next Paint measures responsiveness, and Cumulative Layout Shift measures visual stability. Each is judged at the 75th percentile of field data, split across mobile and desktop, so a page passes only when most visits hit the good threshold.

Core Web Vitals are the subset of web performance metrics Google considers essential for every page. The full list of Web Vitals is large, but only three carry the ‘core’ label and feed Google's ranking signals. Each maps to a distinct part of how a page feels: LCP answers ‘did the main content load fast?’, INP answers ‘did the page respond quickly when I tapped?’, and CLS answers ‘did the layout stay put while I read?’. They are deliberately user-centric: they describe perception, not server internals.

Why it matters

Two things make Core Web Vitals worth understanding precisely. First, they are field metrics, not lab scores. Google assesses each one at the 75th percentile of real-user page loads, segmented across mobile and desktop, which means a page passes only when 75% of actual visits meet the good threshold. A fast result in Lighthouse on your laptop proves nothing if a quarter of real visitors on mid-tier phones are having a bad time. Second, they are hard to pass at scale. In the Web Almanac 2024, only 43% of mobile origins and 54% of desktop origins passed all three vitals, with mobile LCP the bottleneck at just 59% ‘good’ versus 74% for INP and 79% for CLS.

The ranking effect is real but modest. Core Web Vitals feed Google's page-experience signals, which behave like a tiebreaker between pages of comparable relevance rather than a dominant factor. Excellent content still ranks with middling vitals, and flawless vitals will not save thin pages. The larger, more reliable payoff is user behavior: a slow LCP, a laggy INP, or a jumpy CLS measurably raises bounce and abandonment regardless of where you rank. That is the honest reason to care — the metrics are a proxy for whether the page is frustrating to use.

Three gauge dials showing Core Web Vitals good and poor zones: LCP good at 2.5 seconds, INP good at 200 milliseconds, and CLS good at 0.1, with poor zones beyond 4.0 seconds, 500 milliseconds, and 0.25
The three Core Web Vitals and their 2024 good/needs-improvement/poor bands. Google grades each at the 75th percentile of real-user loads.

LCP: Largest Contentful Paint (loading)

LCP measures loading speed — specifically the render time of the largest image or text block visible in the viewport. Per the LCP documentation, good is 2.5 seconds or less, needs-improvement is 2.5 to 4.0 seconds, and poor is above 4.0 seconds. The ‘largest contentful’ element is usually a hero image, a video poster frame, or a big heading. Common causes of a slow LCP are an oversized unoptimized image, a slow server response, render-blocking CSS or JavaScript, and lazy-loading the very element that should appear first. LCP is the metric most sites fail on mobile, because phones combine slower networks with smaller CPUs.

INP: Interaction to Next Paint (responsiveness)

INP replaced First Input Delay (FID) as the responsiveness vital on March 12, 2024, after being experimental since May 2022 and pending since May 2023. The change matters because INP is stricter. FID only measured the delay before the browser started processing your first interaction; INP measures the full latency of every click, tap, and keypress all the way through to the next painted frame, then reports a representative worst case. Per the INP docs, good is 200 ms or less, needs-improvement is above 200 up to 500 ms, and poor is above 500 ms. INP only counts clicks, taps, and keyboard input — it ignores hover, scroll, and zoom. Many sites that quietly passed FID now fail INP because a long task or heavy event handler blocks the main thread after the click registers.

CLS: Cumulative Layout Shift (visual stability)

CLS measures visual stability — how much the page jumps around while it loads and while you interact with it. Unlike the others, it is a unitless score, not a time. Per the CLS documentation, good is 0.1 or less and poor is above 0.25. Each individual layout shift score is impact fraction × distance fraction, using the largest dimension of the viewport as the denominator. In plain terms: how much of the screen moved, multiplied by how far it moved. Typical culprits are images and ads without reserved width and height, web fonts that swap and reflow text, and content injected above what the user is already reading. CLS is the vital most people feel as a bug — you go to tap a button and an ad shoves it out from under your finger.

Lab data vs field data

Lab data (Lighthouse, synthetic tests) runs in a controlled environment and is great for debugging before release. Field data (real user monitoring, the Chrome User Experience Report) comes from actual visitors and is what Google uses for ranking. INP and CLS especially depend on real interaction patterns, so they often look perfect in the lab and fail in the field. Always confirm fixes against field data over the rolling 28-day window.

How this shows up in a real BugMojo bug report

Here is the gap nobody else closes. Field tools tell you that a page is slow or janky; they almost never tell you why or where. A CrUX percentile is an aggregate — ‘your INP is 480 ms at p75’ — with no path back to the click that froze, the handler that blocked, or the element that shifted. You are left guessing in the lab and hoping the field number moves 28 days later. That round-trip is the real cost of treating a vital as a score instead of a defect.

A session replay turns the abstract number into a concrete repro. Because BugMojo's browser extension records the actual DOM (via rrweb) rather than pixels, you can watch a card slide down 80 pixels at the exact moment a user taps — that is your CLS, made visible. You can see the UI freeze for half a second after a click while a long task runs — that is your INP, made visible. The replay is timestamped against the same console logs and network requests captured in that one session, so a slow LCP traces straight to the 3.2 MB hero image or the API call that blocked first paint.

The wedge is what happens next. BugMojo bundles that replay, the console output, the network timeline, and a screenshot into a single structured bug report, then exposes it to an AI coding agent through an MCP server. An agent like Claude Code or Cursor can read the report, see that a 540 ms INP coincides with a specific long task in a specific handler, and propose a fix — debounce the handler, defer the work, reserve the image dimensions. The CrUX percentile becomes an actionable ticket with full reproduction context. No competitor connects a failing field vital to a single reproducible replay that an AI agent can triage over MCP; the rest stop at metric dashboards and lab advice.

FeatureCapabilityBugMojoField/lab CWV tools (CrUX, PageSpeed, Lighthouse)
Reports LCP / INP / CLS numbers—Per captured session✓
DOM session replay of the jank or freeze—✓—
Replay bundled with console + network in one report—✓—
Report handed to an AI agent over MCP—✓—
Continuous 75th-percentile field monitoring (CrUX)——✓
Synthetic lab audits with optimization scores——✓
Two-sided: BugMojo turns a vital into a reproducible bug for an agent, but it is not a field-monitoring or lab-auditing tool.
Key takeaway

Remember the shape: three vitals, three thresholds — LCP ≤ 2.5 s, INP ≤ 200 ms (it replaced FID in 2024), CLS ≤ 0.1 — all graded at the 75th percentile of real users. A failing vital is not just a number on a dashboard; captured in a session replay alongside console and network data, it becomes a reproducible bug an AI agent can read over MCP and help fix.

Turn a failing Core Web Vital into a fixable bug, not a dashboard number

Capture the exact session where INP froze or the layout shifted, with console and network attached, and hand it to your AI agent.

Install the extension

Frequently asked questions

Frequently asked questions

Sources

  1. Web Vitals overview: LCP/INP/CLS thresholds and the 75th-percentile method — web.dev (Google) (2024)
  2. INP officially replaces FID as a Core Web Vital on March 12, 2024 — web.dev (Google) (2024-03-12)
  3. Interaction to Next Paint (INP): definition and thresholds (good 200 ms, poor >500 ms) — web.dev (Google) (2024)
  4. Cumulative Layout Shift (CLS): definition, formula, and causes — web.dev (Google) (2024)
  5. Largest Contentful Paint (LCP): definition and thresholds (good 2.5 s, poor >4.0 s) — web.dev (Google) (2024)
  6. Web Almanac 2024 Performance chapter: Core Web Vitals pass rates — HTTP Archive Web Almanac (2024)
  7. How the Core Web Vitals thresholds were defined — web.dev (Google) (2024)
Share:
Manvi
Manvi· QA Tester

Manvi is a Quality Assurance Tester with three years of experience. For her, quality is not just about finding bugs — it is about ensuring the best possible experience for every user.

On this page

  • Definition
  • Why it matters
  • LCP: Largest Contentful Paint (loading)
  • INP: Interaction to Next Paint (responsiveness)
  • CLS: Cumulative Layout Shift (visual stability)
  • How this shows up in a real BugMojo bug report

Get bug-tracking insights, weekly.

Engineering deep-dives, QA playbooks, and honest tool comparisons. No spam — unsubscribe in one click.