Performance Monitoring

Core Web Vitals Monitoring: LCP, INP, CLS Guide for 2026

Monitor Core Web Vitals (LCP, INP, CLS) in 2026. Learn thresholds, measurement tools, and how to improve scores that directly affect Google search rankings.

AzMonitor TeamJanuary 20, 20258 min read · 985 wordsUpdated February 1, 2026
core web vitalsLCPINPCLSperformance monitoring

Core Web Vitals are Google's set of specific metrics that measure the user experience quality of a web page. Since Google's Page Experience update made these metrics ranking signals, they've become essential for both SEO and genuine user experience improvement. In 2026, with INP fully replacing FID as the interaction metric, the complete CWV set is LCP, INP, and CLS.

The Three Core Web Vitals in 2026

LCP (Largest Contentful Paint)

What it measures: How long it takes for the largest visible content element (image, video thumbnail, or text block) to render within the viewport.

Why it matters: LCP correlates strongly with perceived page load speed. Users judge a page as "loaded" when the main content appears, not when the HTML document is fully parsed.

Thresholds: | Rating | LCP Value | |--------|-----------| | Good | ≤ 2.5 seconds | | Needs Improvement | 2.5 – 4.0 seconds | | Poor | > 4.0 seconds |

INP (Interaction to Next Paint)

What it measures: The latency of all user interactions (clicks, taps, keyboard inputs) with a page throughout its entire lifecycle. INP reports the worst-case interaction latency.

Why it matters: INP replaced FID (First Input Delay) in March 2024 because FID only measured the first interaction. INP measures whether your entire page is responsive throughout a user session — much more representative of real experience.

Thresholds: | Rating | INP Value | |--------|-----------| | Good | ≤ 200 milliseconds | | Needs Improvement | 200 – 500 milliseconds | | Poor | > 500 milliseconds |

CLS (Cumulative Layout Shift)

What it measures: The sum of unexpected layout shift scores throughout a page's lifetime. Layout shifts occur when visible elements move unexpectedly — ads loading, images loading without dimensions, dynamic content injected above existing content.

Why it matters: Layout shifts are frustrating and cause mis-clicks. Reading an article and having the text jump down when an ad loads above it is a poor experience.

Thresholds: | Rating | CLS Value | |--------|-----------| | Good | ≤ 0.1 | | Needs Improvement | 0.1 – 0.25 | | Poor | > 0.25 |

How to Measure Core Web Vitals

Lab Data (Synthetic Measurement)

Lab data is collected in a controlled environment using tools like Lighthouse, WebPageTest, or Chrome DevTools. Lab data:

  • Is reproducible and consistent
  • Can be tested before launch
  • Doesn't reflect real network and device conditions
  • Is not used directly by Google for ranking (field data is)

Tools for lab measurement:

  • Chrome DevTools Performance tab
  • Lighthouse (in DevTools or PageSpeed Insights)
  • WebPageTest.org
  • AzMonitor synthetic performance checks

Field Data (Real User Measurement)

Field data comes from real users in real conditions. This is the data Google uses for ranking:

Sources of field data:

  • Chrome User Experience Report (CrUX) — aggregate data from Chrome users
  • Your own RUM implementation (see RUM guide)
  • Google Search Console (Core Web Vitals report)
  • PageSpeed Insights (shows both lab and field data)

The gap between lab and field: Lab data often shows better CWVs than field data. Real users have slower devices, worse network conditions, and more browser extensions. Monitor both, but optimize for field data.

Setting Up Core Web Vitals Monitoring

Continuous Lab Monitoring

Configure AzMonitor's performance monitoring to run Lighthouse checks on your critical pages daily:

monitors:
  - type: performance
    url: https://yoursite.com
    checks: [lcp, cls, inp, fcp, ttfb]
    alert_thresholds:
      lcp: 2500ms  # Alert if LCP degrades beyond "Good" threshold
      cls: 0.1
      inp: 200ms
    schedule: daily
    run_from: [us-east, eu-west]

This catches performance regressions introduced by deployments before they affect your CrUX data (which takes weeks to update).

Field Data Monitoring with Web Vitals JS

Add Google's web-vitals library to your site for real user measurement:

import {onLCP, onINP, onCLS, onFCP, onTTFB} from 'web-vitals';

function sendToAnalytics({name, value, id}) {
  // Send to your analytics endpoint
  fetch('/api/vitals', {
    method: 'POST',
    body: JSON.stringify({ name, value, id, url: window.location.href }),
    headers: { 'Content-Type': 'application/json' }
  });
}

onLCP(sendToAnalytics);
onINP(sendToAnalytics);
onCLS(sendToAnalytics);
onFCP(sendToAnalytics);
onTTFB(sendToAnalytics);

This gives you real user CWV data per page, per device type, per geography.

Improving Core Web Vitals

Improving LCP

The LCP element is usually your hero image, above-the-fold text, or a featured video. Common improvements:

Image optimization:

  • Use modern formats (WebP, AVIF)
  • Add fetchpriority="high" to your LCP image
  • Remove loading="lazy" from above-the-fold images
  • Use appropriately sized images (don't serve 3000px images for 800px containers)

Resource loading:

  • Preload the LCP resource: <link rel="preload" href="hero.webp" as="image">
  • Eliminate render-blocking resources
  • Use a CDN for faster initial server response

Server response time:

Improving INP

INP requires reducing JavaScript execution time during interactions:

  • Break up long tasks (> 50ms) with scheduler.yield() or setTimeout
  • Defer non-critical JavaScript
  • Reduce JavaScript bundle size
  • Use web workers for heavy computation
  • Optimize React re-renders (avoid unnecessary component updates)

Improving CLS

Layout shift prevention is primarily a CSS and HTML problem:

  • Always specify width and height on images and videos
  • Reserve space for ad slots with explicit dimensions
  • Avoid inserting content above existing content (use transforms instead)
  • Use font-display: optional or preload web fonts to prevent font-swap shifts
  • Be careful with dynamically injected content

Monitoring CWV Regressions

The most valuable CWV monitoring catches regressions before they impact your CrUX data. Since CrUX data updates over a 28-day rolling window, a performance regression today won't fully appear in your search ranking signal for weeks.

Continuous lab monitoring with AzMonitor provides immediate feedback. When a deployment worsens LCP from 1.8s to 3.2s, you know within hours — not weeks.

Set up performance monitoring alerts for Core Web Vitals alongside your availability monitoring. Try AzMonitor and measure your current CWV baseline today.

Tags:core web vitalsLCPINPCLSperformance monitoring
Back to blog
A
AzMonitor Team
The AzMonitor team writes guides based on experience monitoring millions of endpoints daily across 10,000+ customer environments. Our expertise covers uptime monitoring, SRE practices, and reliability engineering.
Try AzMonitor free

3 monitors free forever · No credit card needed · Set up in 2 minutes

Start monitoring free →