Core Web Vitals Explained
Understand LCP, INP and CLS, the three Core Web Vitals used to evaluate loading performance, responsiveness and visual stability.
Core Web Vitals are a set of user-focused metrics used to evaluate important aspects of real-world web performance. They measure how quickly the main content becomes visible, how responsive a page is to user interactions and whether the layout remains visually stable while the page loads.
The three current Core Web Vitals are Largest Contentful Paint (LCP), Interaction to Next Paint (INP) and Cumulative Layout Shift (CLS). Together they cover three different parts of the user experience: loading performance, responsiveness and visual stability.
Understanding these metrics is useful for developers, SEO specialists and website owners because a page can appear fast during development while performing poorly for real users. Core Web Vitals help identify specific performance problems and provide measurable targets for improving them.
What Are Core Web Vitals?
Core Web Vitals are standardized web performance metrics designed to represent important dimensions of the user experience. Instead of measuring only technical properties such as JavaScript size or the number of HTTP requests, they focus on what users actually experience while loading and interacting with a page.
| Metric | Measures | Primary Concern |
|---|---|---|
| LCP | Largest Contentful Paint | Loading performance |
| INP | Interaction to Next Paint | Responsiveness |
| CLS | Cumulative Layout Shift | Visual stability |
Each metric measures a different problem. LCP answers how quickly the main content becomes visible, INP measures how quickly the page responds to user interactions, and CLS measures unexpected movement of visible content.
Core Web Vitals Thresholds
Core Web Vitals use thresholds that classify a page experience as good, needing improvement or poor. These thresholds are evaluated using measurements from real page loads and interactions, rather than relying only on a single laboratory test.
| Metric | Good | Needs Improvement | Poor |
|---|---|---|---|
| LCP | ≤ 2.5 s | 2.5–4.0 s | > 4.0 s |
| INP | ≤ 200 ms | 200–500 ms | > 500 ms |
| CLS | ≤ 0.1 | 0.1–0.25 | > 0.25 |
Largest Contentful Paint (LCP)
Largest Contentful Paint measures how quickly the largest relevant piece of visible content is rendered within the viewport. In many pages, this is a large hero image, a prominent heading, a video poster or another major content element.
LCP is intended to represent when users can see the primary content of a page. A low LCP generally means that the page's main content becomes available quickly, while a high LCP can make a site feel slow even when other parts of the page have already loaded.
LCP ≤ 2.5 seconds → Good
2.5–4.0 seconds → Needs Improvement
LCP > 4.0 seconds → PoorWhat Affects LCP?
LCP can be affected by almost every stage between the initial navigation and the rendering of the largest content element. Slow server responses, render-blocking CSS, large images, delayed fonts and excessive client-side JavaScript can all contribute to a poor LCP.
- Slow server response times.
- Large or poorly optimized images.
- Render-blocking CSS.
- Render-blocking JavaScript.
- Slow font loading.
- Client-side rendering delays.
- Large amounts of unused or unnecessary code.
- Poor caching configuration.
How to Improve LCP
Improving LCP usually starts with identifying the actual LCP element and determining what prevents it from rendering quickly. Optimizing every asset indiscriminately is less effective than focusing on the resources directly involved in displaying the largest content element.
- Improve server response time.
- Optimize the LCP image when an image is the main element.
- Use appropriately sized responsive images.
- Preload critical resources when appropriate.
- Reduce render-blocking resources.
- Inline or optimize critical CSS when beneficial.
- Reduce unnecessary JavaScript before the main content is displayed.
- Use effective browser and CDN caching.
- Avoid lazy-loading the LCP image.
Interaction to Next Paint (INP)
Interaction to Next Paint measures how responsive a page is when users interact with it. It considers interactions such as clicks, taps and keyboard input and evaluates how long it takes for the browser to produce the next visual update after an interaction.
A page can load quickly and still feel slow if JavaScript blocks the main thread after the user starts interacting with it. INP is designed to capture this type of responsiveness problem.
INP ≤ 200 ms → Good
200–500 ms → Needs Improvement
INP > 500 ms → PoorWhat Causes Poor INP?
The browser's main thread is responsible for many important tasks, including running JavaScript, processing events, calculating styles and performing layout and rendering work. Long tasks can prevent the browser from responding to interactions promptly.
- Large JavaScript bundles.
- Long-running event handlers.
- Expensive calculations after user input.
- Large DOM updates.
- Excessive style recalculation.
- Third-party scripts.
- Unnecessary rendering work.
- Poorly optimized application state updates.
How to Improve INP
The main strategy for improving INP is to reduce the amount of work the browser must perform during and immediately after user interactions. Event handlers should complete quickly, expensive operations should be avoided or deferred, and large updates should be broken into smaller pieces where possible.
- Reduce unnecessary JavaScript.
- Break up long tasks.
- Keep event handlers lightweight.
- Avoid unnecessary DOM updates.
- Reduce expensive rendering operations.
- Defer non-critical work.
- Limit third-party scripts.
- Use efficient state updates in interactive applications.
Cumulative Layout Shift (CLS)
Cumulative Layout Shift measures unexpected movement of visible page content during loading and interaction. A layout shift occurs when an element changes position without the user intentionally causing that movement.
Unexpected movement can be frustrating because users may attempt to click a button or read text only for the content to move as another resource loads. CLS provides a way to quantify this visual instability.
CLS ≤ 0.1 → Good
0.1–0.25 → Needs Improvement
CLS > 0.25 → PoorCommon Causes of Layout Shifts
- Images without defined dimensions.
- Ads inserted without reserved space.
- Dynamically injected content.
- Web fonts causing text reflow.
- Late-loading UI components.
- Animations that affect layout.
- Content inserted above existing content.
How to Improve CLS
The most reliable way to prevent layout shifts is to reserve space for content before it loads. Images and videos should have known dimensions, dynamically inserted elements should have allocated space and components should avoid unexpectedly pushing existing content downward.
- Set width and height for images.
- Reserve space for advertisements.
- Avoid inserting content above existing content.
- Use stable layouts for dynamically loaded components.
- Choose appropriate font loading strategies.
- Avoid animations that change layout dimensions.
- Use transform-based animations when appropriate.
LCP vs INP vs CLS
The three Core Web Vitals describe different stages of the user experience. LCP focuses on the initial loading experience, INP focuses on responsiveness during interaction and CLS focuses on visual stability.
| Metric | Question It Answers | Typical Problems |
|---|---|---|
| LCP | How quickly does the main content appear? | Slow server, images, CSS, fonts |
| INP | How quickly does the page respond? | JavaScript, long tasks, event handlers |
| CLS | Does the page remain visually stable? | Images, ads, fonts, dynamic content |
Why All Three Metrics Matter
Optimizing only one Core Web Vital does not guarantee a good overall experience. A page might display its main content quickly but become unresponsive when users interact with it. Another page might be responsive but continuously move content while images and advertisements load.
The three metrics should therefore be treated as complementary measurements. Together they provide a broader view of loading, interaction and visual stability.
Core Web Vitals and Mobile Performance
Mobile devices are especially important when evaluating web performance because users may have slower CPUs, limited memory and less reliable network connections than desktop users. A page that performs well on a powerful development computer may behave differently on a typical mobile device.
Responsive design alone does not guarantee good Core Web Vitals. Mobile layouts still need optimized images, efficient JavaScript, stable dimensions and sensible loading strategies.
Core Web Vitals and JavaScript
JavaScript can affect all three Core Web Vitals. Large scripts can delay rendering and hurt LCP, long tasks can make interactions slow and DOM changes triggered by JavaScript can cause layout shifts.
| JavaScript Problem | Potential Impact |
|---|---|
| Large initial bundle | Can delay LCP |
| Long main-thread tasks | Can increase INP |
| Heavy DOM manipulation | Can increase INP |
| Late content injection | Can increase CLS |
| Third-party scripts | Can affect multiple metrics |
Core Web Vitals and Images
Images are frequently involved in performance problems because they can be among the largest resources requested by a page. An oversized image can delay the main content and increase LCP, while images without reserved dimensions can cause layout shifts and increase CLS.
- Serve images at appropriate dimensions.
- Use modern image formats when supported.
- Compress images without unnecessary quality loss.
- Use responsive image techniques.
- Avoid lazy-loading critical above-the-fold images.
- Reserve image dimensions to prevent layout shifts.
Core Web Vitals and CSS
CSS is another important part of the rendering process. Stylesheets required before the browser can render the page can delay visible content, while inefficient styles can increase the amount of work required for layout and rendering.
- Remove unused CSS when practical.
- Minify production CSS.
- Avoid unnecessarily large stylesheets.
- Load non-critical styles efficiently.
- Reduce expensive layout and rendering patterns.
Core Web Vitals and Fonts
Web fonts can influence both loading and visual stability. Depending on the loading strategy, users may initially see fallback text and then experience a change when the final font becomes available. Poorly managed fonts can therefore contribute to slower rendering or layout changes.
Font files should be appropriately sized and loaded according to their importance. Preloading can sometimes help critical fonts, but unnecessary preloads can compete with more important resources.
Real User Data vs Laboratory Tests
Core Web Vitals can be evaluated using both real-user measurements and laboratory testing. Laboratory tools provide a controlled environment that is useful for debugging and comparing changes, while real-user data shows how actual visitors experience the site across different devices, networks and locations.
| Approach | Main Use |
|---|---|
| Real User Data | Understand actual visitor experience |
| Laboratory Testing | Debug and reproduce performance problems |
The two approaches complement each other. Laboratory testing can help developers identify the source of a problem, while real-user data can reveal whether the improvement works for the site's actual audience.
Why Performance Scores Can Differ
Performance results can vary because page speed depends on many conditions, including device hardware, network quality, geographic location, browser behavior, server response time, cache state and the specific content displayed on the page.
This means that one test run should not be treated as a definitive representation of every user's experience. Repeated testing and real-user measurements provide a more reliable picture.
How to Diagnose Core Web Vitals Problems
A useful optimization process begins by identifying which metric is failing and then finding the resource or browser activity responsible for the problem. Randomly optimizing unrelated assets can consume significant time without improving the measured experience.
- Identify the failing Core Web Vital.
- Determine whether the problem occurs during loading or interaction.
- Find the element or task responsible.
- Measure the current behavior.
- Apply one focused optimization.
- Test again under comparable conditions.
- Verify the result with real-user data when available.
A Practical Optimization Workflow
Measure performance
↓
Identify failing metric
↓
Find the responsible resource or task
↓
Apply targeted optimization
↓
Test again
↓
Monitor real users
↓
Repeat when necessaryCommon Core Web Vitals Mistakes
Performance optimization often goes wrong when developers focus on superficial scores instead of the actual user experience. Some optimizations can also make one metric better while unintentionally making another worse.
- Optimizing only for a single Lighthouse score.
- Testing only on a powerful desktop computer.
- Lazy-loading the LCP image.
- Loading excessive JavaScript before interaction is possible.
- Failing to reserve space for images or dynamic content.
- Adding too many third-party scripts.
- Preloading too many resources.
- Optimizing assets without measuring their actual impact.
Frontend Performance Checklist
- Keep server response times low.
- Optimize critical images.
- Use responsive image sizes.
- Avoid unnecessary render-blocking resources.
- Reduce JavaScript shipped to the browser.
- Break up long JavaScript tasks.
- Keep interaction handlers lightweight.
- Reserve space for images and dynamic content.
- Optimize font loading.
- Use appropriate cache headers.
- Reduce unnecessary third-party scripts.
- Measure both laboratory and real-user performance.
Core Web Vitals and SEO
Core Web Vitals are part of Google's page experience considerations, but they are not a replacement for high-quality content, search relevance or other technical SEO fundamentals. Improving performance can support a better overall user experience, but a technically fast page does not automatically rank well for every query.
Performance should therefore be treated as one part of a broader website quality strategy. Developers should optimize Core Web Vitals while also maintaining useful content, accessible interfaces, crawlable pages and sound technical foundations.
Helpful Performance Tools
An HTML Minifier can reduce unnecessary markup size, a CSS Minifier can compress stylesheets, a JS Minifier can reduce JavaScript payload size, an SVG Optimizer can remove unnecessary SVG data, and a Responsive Image Size Calculator can help determine appropriate image dimensions for different viewport sizes.
Frequently Asked Questions
What are Core Web Vitals?
Core Web Vitals are user-focused web performance metrics that measure loading performance, responsiveness and visual stability. The current Core Web Vitals are LCP, INP and CLS.
What does LCP measure?
Largest Contentful Paint measures how quickly the largest relevant visible content element is rendered in the viewport. A good LCP is 2.5 seconds or less.
What does INP measure?
Interaction to Next Paint measures how responsive a page is to user interactions such as clicks, taps and keyboard input. A good INP is 200 milliseconds or less.
What does CLS measure?
Cumulative Layout Shift measures unexpected visual movement of page content. A CLS score of 0.1 or less is considered good.
How can I improve Core Web Vitals?
Start by identifying the failing metric and its cause. Common improvements include optimizing images, reducing JavaScript, improving server response time, minimizing render-blocking resources, reserving space for dynamic content and improving caching.
Are Core Web Vitals important for SEO?
Core Web Vitals are part of Google's page experience signals, but they are only one part of website quality and search ranking considerations. Good performance should be combined with useful content and strong technical SEO.
Can a page have good LCP but poor INP?
Yes. LCP measures loading performance while INP measures interaction responsiveness. A page can display its main content quickly but become slow when users interact with it because of heavy JavaScript or long main-thread tasks.
Why does CLS increase when images load?
If an image does not have reserved dimensions, the browser may initially allocate little or no space and then move surrounding content when the image loads. Defining image dimensions helps prevent this layout shift.
Conclusion
Core Web Vitals provide a practical way to understand three important aspects of web performance: how quickly the main content appears, how quickly the page responds to interaction and how stable the visual layout remains. LCP focuses on loading, INP focuses on responsiveness and CLS focuses on visual stability.
Improving these metrics starts with measurement rather than guesswork. By identifying the failing metric, finding its underlying cause and applying targeted optimizations to images, JavaScript, CSS, fonts, caching and layout, developers can create faster and more stable experiences for real users.
Core Web Vitals should ultimately be treated as indicators of user experience rather than isolated numbers. A fast, responsive and visually stable website is easier to use, especially on slower devices and networks, and provides a stronger technical foundation for a high-quality web experience.