Technical SEO • Page Experience
Core Web Vitals Optimization Guide
Core Web Vitals measure how real users experience loading, interaction and visual stability. To improve them, first find which metric is failing in field data, then diagnose the page in lab tools. Improve LCP by getting the main content visible sooner, improve INP by reducing main-thread work around interactions, and fix CLS by reserving space before images, embeds, banners and other late-loading elements appear.
What Core Web Vitals measure
Core Web Vitals are three user-experience metrics that cover different parts of a page visit. They are not three versions of the same speed score.
| Metric | What it measures | Good | Needs improvement | Poor |
|---|---|---|---|---|
| LCP | How quickly the main visible content appears. | ≤ 2.5s | > 2.5s to 4.0s | > 4.0s |
| INP | How quickly the page responds visually to clicks, taps and keyboard interactions. | ≤ 200ms | > 200ms to 500ms | > 500ms |
| CLS | How much unexpected layout movement happens while the page is being used. | ≤ 0.1 | > 0.1 to 0.25 | > 0.25 |
The thresholds are assessed at the 75th percentile, separately for mobile and desktop. In plain English, at least three quarters of measured visits should meet the “good” threshold for each metric.
Core Web Vitals are used by Google's ranking systems, but they do not guarantee rankings. Google also looks at relevance, content quality and many other signals. Treat the metrics as a way to improve real user experience, not as a shortcut to position one.
Field data and lab data are not the same
This distinction prevents a lot of wasted work. Field data comes from real users. Lab data comes from a controlled test.
Field data
Search Console's Core Web Vitals report and the Chrome UX Report use real-world usage data. Search Console groups similar URLs and labels each group Good, Needs improvement or Poor. The group status is driven by its worst-performing Core Web Vital.
Field data is the better source for answering, “What are real users actually experiencing?” It also reflects real devices, networks, page states, third-party scripts and behavior that a single lab run may not reproduce.
Lab data
PageSpeed Insights and Chrome DevTools can run controlled tests that help you find causes. Lab tools are useful for waterfalls, long tasks, render-blocking resources, image requests, layout shifts and interaction traces.
A lab test can look healthy while field data remains poor. The reverse can happen too. Use field data to decide what needs attention; use lab tools to understand why.
A practical Core Web Vitals optimization workflow
- Open Search Console's Core Web Vitals report and separate mobile from desktop.
- Start with Poor URL groups, especially important templates and pages.
- Open an example URL and test representative pages in PageSpeed Insights.
- Identify whether LCP, INP, CLS or more than one metric is failing.
- Use DevTools or Lighthouse to reproduce the cause.
- Fix the template-level bottleneck when several similar pages share it.
- Test again in the lab before deployment.
- Monitor field data after the change has had time to collect new visits.
If you need the wider crawl, indexing, architecture and site-health review around performance work, use our technical SEO checklist. This article stays focused on Core Web Vitals so the two guides do not compete for the same intent.
How to improve LCP
Largest Contentful Paint is the time it takes for the largest visible image, text block or other eligible content element in the initial viewport to render. On many business websites, the LCP element is the hero image or a large heading area.
Do not begin by compressing random images across the site. First identify the actual LCP element on the slow template.
Break LCP into four parts
A useful diagnosis separates LCP into four stages:
- Time to First Byte: how long the browser waits for the first byte of the HTML response.
- Resource load delay: how long the browser waits before it starts requesting the LCP resource.
- Resource load duration: how long the LCP resource itself takes to download.
- Element render delay: how long the browser waits after the resource arrives before it can paint the element.
Reduce slow server response
If TTFB is high, investigate hosting, backend processing, database work, full-page caching, edge caching and unnecessary redirects. Every delay before the HTML arrives reduces the remaining LCP budget.
Start the LCP request earlier
A common problem is not a huge image but a late image request. Make the hero image discoverable directly from the initial HTML where possible. Avoid loading the main above-the-fold image through delayed JavaScript or a CSS dependency chain.
Do not lazy-load an above-the-fold LCP image. The browser should be able to request it early. Where appropriate, prioritization or preload can help, but only use it for truly important resources.
Deliver an appropriately sized image
Serve modern formats such as WebP or AVIF where they work for your stack, compress sensibly, and use responsive image markup so a mobile phone does not download an unnecessarily large desktop source.
The goal is not the smallest possible file at any visual cost. Keep the image sharp enough for the design while reducing bytes and avoiding dimensions far larger than the displayed size.
Reduce render-blocking work
Large CSS bundles, fonts, synchronous scripts and heavy client-side rendering can delay the final paint even when the LCP image has already downloaded. Remove unused work, load critical resources in the right order and avoid making above-the-fold content depend on non-critical JavaScript.
How to improve INP
Interaction to Next Paint measures responsiveness across the user's visit. It observes clicks, taps and keyboard interactions and looks at how long the browser takes to show the next visual result.
A page can load quickly and still have poor INP. That often happens when JavaScript keeps the main thread busy while a user is trying to open a menu, use a filter, add a product to a cart or submit a form.
Understand the three parts of an interaction
- Input delay: the browser is busy before it can start the event handler.
- Processing duration: the event callback itself takes too long.
- Presentation delay: the browser spends too long calculating and painting the visual update.
Break up long main-thread tasks
Long JavaScript tasks can block interactions. Reduce unnecessary work, split large tasks into smaller chunks and yield back to the browser so urgent user input can be handled sooner.
Reduce JavaScript that is not earning its cost
Audit sliders, chat widgets, heatmaps, tag managers, ad scripts, social embeds, popup tools and page-builder modules. A third-party script can affect INP even when your own code is efficient.
Do not remove useful functionality blindly. Measure which scripts run during slow interactions and remove, defer or replace the expensive ones where the business value does not justify the performance cost.
Keep event handlers focused
Update the visible interface quickly, then defer non-urgent work when possible. For example, a button click should not force analytics work, complex calculations and multiple unrelated DOM updates to finish before the user sees feedback.
Watch DOM size and rendering work
Very large DOM trees can make style calculation, layout and painting more expensive. Long product pages, visual builders and hidden mega-menu markup can increase presentation delay after an interaction.
How to fix CLS issues
Cumulative Layout Shift measures unexpected movement. A classic example is a user trying to tap a button when an image loads above it and pushes the button down.
Give images and videos dimensions
Include real width and height attributes or otherwise reserve the correct aspect ratio. The browser can then allocate space before the media arrives.
This article uses explicit 900×500 attributes on every generated image for the same reason.
Reserve space for embeds and dynamic blocks
Video embeds, maps, ads, social widgets, consent notices and dynamic banners can shift the page if their space is unknown. Use a fixed or minimum reserved area where appropriate.
Avoid inserting content above what the user is reading
Cookie notices, promotional bars and validation messages should not unexpectedly push existing content around. Prefer overlays when appropriate or reserve the space in advance.
Test font loading
Web fonts can change line wrapping and element size after the fallback font has already rendered. Keep the font stack simple, preload only critical fonts when justified and use compatible fallback metrics where possible.
Core Web Vitals on WordPress
WordPress can be fast, but its performance depends on the theme, page builder, plugins, hosting and third-party code. Installing another “speed plugin” is not a diagnosis.
| Problem | Metric commonly affected | What to check |
|---|---|---|
| Slow uncached HTML | LCP | Hosting, database work, page cache, redirects and backend plugins |
| Huge hero image | LCP | Source dimensions, format, compression, preload/priority and lazy-load settings |
| Heavy builder or plugin JavaScript | INP | Long tasks, widgets, animation modules and third-party scripts |
| Popup/chat/filter interaction lag | INP | Event handlers, network callbacks, DOM updates and script conflicts |
| Images without dimensions | CLS | Media markup, responsive image ratios and late-injected blocks |
| Late banner or font movement | CLS | Reserved space, notice bars and font-loading behavior |
If the problem is specifically a WordPress performance project—hosting, caching, database work, WooCommerce, plugins and theme optimization—keep that implementation intent with our WordPress speed optimization service. The current page stays focused on the Core Web Vitals metrics themselves.
Practical example for a Bangladesh ecommerce site
Imagine an ecommerce homepage that looks fast on the developer's desktop but has poor mobile LCP and INP in field data.
The hero image is the LCP element. It is loaded through a slider script after several CSS and JavaScript files, so the browser discovers it late. The same page also loads a chat widget, product slider, analytics scripts and a large filter bundle. On lower-powered phones, those scripts create long main-thread tasks just as customers begin tapping the page.
The useful fix is not “install a cache plugin and hope.” A better sequence is:
- serve the first hero as a normal, correctly sized responsive image;
- make its request discoverable early and avoid lazy-loading it;
- reduce server delay with appropriate caching;
- remove or defer unnecessary startup scripts;
- load the chat or non-critical widgets later;
- test the menu, search, filter and add-to-cart interactions for long tasks;
- reserve image and promotional-banner space to protect CLS;
- retest on representative mobile hardware and monitor field data.
How to measure before and after a fix
Search Console
Use the Core Web Vitals report to see real-user problems at the URL-group level. Fix Poor groups first. Remember that only URLs with enough field data appear, so a missing URL does not automatically mean good performance.
PageSpeed Insights
Use its field section when real-user data is available, then use the lab diagnostics to investigate the current page. Look at the failing Core Web Vital first rather than trying to turn every audit item green.
Chrome DevTools
Use the Performance panel when you need to see network waterfalls, main-thread activity, interactions and layout shifts. It is especially useful when INP problems happen during a specific button, menu, form or filter action.
Real-device testing
Test on devices and network conditions that reflect your actual customers. A developer laptop on fast office broadband can hide problems that appear on a normal phone during a busy page load.
Common Core Web Vitals optimization mistakes
- Optimizing only the Lighthouse score: field data and lab data answer different questions.
- Lazy-loading the hero/LCP image: this can delay the resource that needs to arrive first.
- Compressing images but ignoring discovery delay: LCP can remain poor when the browser starts the request too late.
- Calling every performance problem “server speed”: LCP also includes resource discovery, download and render delay.
- Using Total Blocking Time as if it were INP: TBT is a useful lab diagnostic, but INP is a field responsiveness metric.
- Removing JavaScript without tracing the slow interaction: find the work that actually blocks users.
- Fixing CLS with fixed heights everywhere: reserve the correct space without breaking responsive design.
- Expecting Search Console to update immediately: field reports depend on newly collected real-user data.
- Chasing 100/100 for rankings: a perfect lab score is not a ranking guarantee.
A simple optimization priority plan
| Priority | Work | Goal |
|---|---|---|
| 1 | Fix Poor Core Web Vitals on high-value templates and pages. | Remove the worst real-user experience problems first. |
| 2 | Fix shared causes such as hero loading, long JavaScript tasks or template layout shifts. | Improve many related URLs with one implementation. |
| 3 | Move Needs improvement groups toward Good. | Increase the share of real visits meeting recommended thresholds. |
| 4 | Monitor releases, plugins, third-party tags and design changes. | Stop performance regressions from returning. |
If your performance problems are part of a broader technical SEO issue involving crawlability, indexing, rendering or architecture, the parent commercial service is our technical SEO optimization service.
Frequently asked questions
What are the three Core Web Vitals in 2026?
The current Core Web Vitals are Largest Contentful Paint (LCP), Interaction to Next Paint (INP) and Cumulative Layout Shift (CLS). They cover loading, responsiveness and visual stability.
What are good Core Web Vitals scores?
At the 75th percentile, good thresholds are LCP of 2.5 seconds or less, INP of 200 milliseconds or less, and CLS of 0.1 or less.
Do Core Web Vitals affect Google rankings?
Google says Core Web Vitals are used by its ranking systems, but good scores do not guarantee top rankings. Relevance and content quality remain critical, and page experience includes more than these three metrics.
Why is PageSpeed Insights green but Search Console still shows a problem?
A current lab test and real-user field data are different datasets. Search Console uses aggregated field data over time and groups similar URLs, so a recent fix may not immediately change the report.
How do I improve LCP on a website?
Find the actual LCP element, reduce server delay, make the resource discoverable early, avoid lazy-loading the above-the-fold LCP image, serve the right image size and reduce render-blocking work.
How do I improve INP?
Trace slow interactions, reduce long main-thread tasks, minimize unnecessary JavaScript, keep event handlers small, reduce expensive DOM updates and delay non-critical work until after the visible response.
How do I fix CLS?
Reserve layout space before images, videos, ads, embeds and dynamic UI appear. Include image dimensions, test font loading and avoid inserting new content above what a user is already viewing.
Official sources checked for this guide
- Google Search Central — understanding page experience in Search
- Google Search Console Help — Core Web Vitals report
- web.dev — Web Vitals and current thresholds
- web.dev — optimizing Largest Contentful Paint
- web.dev — optimizing Interaction to Next Paint
- web.dev — optimizing Cumulative Layout Shift
Need help fixing poor Core Web Vitals?
If LCP, INP or CLS problems affect important templates and the cause is not obvious, SEO Agency BD can audit the field data, reproduce the bottleneck, prioritize the fixes and validate the implementation. This guide owns the informational process; the service page owns done-for-you Core Web Vitals work.