A fast website isn’t just about how quickly a page appears — it also needs to respond quickly when visitors interact with it and remain visually stable while it loads. That’s exactly what Google’s Core Web Vitals are designed to measure.
For small business owners, these metrics can seem overly technical at first, but the ideas behind them are simple:
Does your important content load quickly?
Does your website respond when someone clicks or taps? Does the page stay where it’s supposed to instead of jumping around?
In this guide, we’ll break down Largest Contentful Paint (LCP), Interaction to Next Paint (INP), and Cumulative Layout Shift (CLS) in plain English, explain how they relate to SEO and user experience, and show you practical ways to improve them without turning you into a web developer.
- What Are Core Web Vitals?
- Why Core Web Vitals Matter for Small Business Websites
- Core Web Vitals and SEO: Are They Ranking Factors?
- The Three Core Web Vitals at a Glance
- #1 Largest Contentful Paint (LCP): Loading Performance
- #2 Interaction to Next Paint (INP): Responsiveness
- #3 Cumulative Layout Shift (CLS): Visual Stability
- Field Data vs. Lab Data: Why Your Scores May Be Different
- Chrome UX Report (CrUX): Where Real-User Data Comes From
- PageSpeed Insights: How to Read the Report
- Google Search Console Core Web Vitals Report
- Lighthouse and Chrome DevTools
- Mobile vs. Desktop Core Web Vitals
- Core Web Vitals for WordPress
- Core Web Vitals for WooCommerce and E-Commerce
- Plugins, Apps, and Third-Party Scripts: The Hidden Performance Cost
- Images and Core Web Vitals
- Fonts and Core Web Vitals
- Do You Need a Perfect 100 PageSpeed Score?
- Common Core Web Vitals Mistakes
- A Simple Core Web Vitals Optimization Workflow
- Core Web Vitals Checklist
- Frequently Asked Questions
- Final Thoughts
What Are Core Web Vitals?
A website can look beautiful and contain excellent content — but still provide a frustrating experience if it loads slowly, freezes when someone tries to interact with it, or moves elements around while the page is loading.
That’s where Core Web Vitals come in.
Core Web Vitals are a set of Google metrics designed to measure important aspects of the real-world experience people have when using a webpage.
Rather than asking only:
“How fast does this page load?”
Core Web Vitals look at three different parts of the experience:
Loading: How quickly does the page’s main content become visible?
Responsiveness: How quickly does the page respond when someone interacts with it?
Visual stability: Does the page remain stable, or do elements unexpectedly move around?
Google currently measures these experiences using three Core Web Vitals:
- Largest Contentful Paint (LCP) — loading performance
- Interaction to Next Paint (INP) — responsiveness
- Cumulative Layout Shift (CLS) — visual stability
An easy way to remember them is:
LCP = Load
INP = Respond
CLS = Stay Stable
Core Web Vitals aren’t intended to tell you whether your content is useful, whether your products are good, or whether your website will convert visitors into customers.
They’re designed to help measure whether the technical experience of using your pages is reasonably fast, responsive, and stable.
For small businesses, that’s an important distinction.
You aren’t optimizing Core Web Vitals simply to make Google happy. You’re trying to remove technical friction between your visitors and whatever you want them to accomplish.
Why Core Web Vitals Matter for Small Business Websites
Small-business websites often have to do a lot with limited resources.
Your website may need to:
- Explain your services
- Display photographs or products
- Generate leads
- Process purchases
- Collect email subscribers
- Accept bookings
- Display reviews
- Run analytics
- Connect with advertising platforms
- Use third-party plugins or apps
Every additional feature has the potential to add scripts, images, fonts, requests, or processing work.
Eventually, a website that looked fast when it was first built can become considerably heavier.
Performance Problems Create Friction
Imagine someone finds your business through Google and opens your website on their phone.
The hero image takes too long to appear.
They tap the menu, but nothing happens immediately.
Just as they’re about to press a button, an image loads and moves the button somewhere else.
Those are three different performance problems.
And they correspond closely to the three Core Web Vitals:
Slow main content → LCP
Delayed interaction → INP
Unexpected movement → CLS
These aren’t abstract technical issues. They’re things customers can actually experience.
Core Web Vitals Can Reveal Problems You Don’t Notice Yourself
Your website may feel perfectly fast on your own computer.
But you’re probably visiting it under favorable circumstances.
Your browser may have cached resources. You may have a fast internet connection. You may be using a newer device.
Your customers won’t necessarily have the same experience.
Real-world performance can vary because of:
- Device capability
- Network speed
- Browser conditions
- Geographic location
- Page being visited
- Third-party services
- Cached versus uncached resources
That’s one reason Core Web Vitals are useful: they provide a framework for evaluating performance beyond simply saying, “It loads quickly for me.”
Success Brews Tip:
Test your website as a customer would experience it—not only from the computer and internet connection you use every day.
Core Web Vitals and SEO: Are They Ranking Factors?
This is where Core Web Vitals are often oversold.
You may encounter claims such as:
“Fix your Core Web Vitals and your rankings will skyrocket.”
That’s not a sensible way to think about them.
Google uses Core Web Vitals as part of its broader consideration of page experience, but search relevance and content quality remain fundamental.
A webpage with excellent performance isn’t automatically more useful than a slower page that provides a substantially better answer.
Think of Core Web Vitals as One Part of SEO
SEO involves many interconnected areas, including:
- Search intent
- Helpful content
- Crawlability
- Indexability
- Internal linking
- Website structure
- Backlinks
- Mobile usability
- Page experience
- Technical performance
Core Web Vitals fit primarily within page experience and technical performance.
They matter, but they don’t replace everything else.
Don’t Sacrifice Your Website to Chase a Score
This is particularly important for small businesses.
Don’t remove:
- Useful photographs
- Important functionality
- Helpful videos
- Product information
- Necessary forms
simply because you want a higher performance score.
Instead, ask:
Can this feature be delivered more efficiently?
For example, instead of removing a beautiful hero photograph, optimize its dimensions, compression, format, and loading behavior.
The objective is a website that is both useful and performant.
Success Brews Tip:
Don’t optimize Core Web Vitals as a shortcut to rankings. Optimize them because a fast, responsive, stable website removes friction for the people you’re trying to reach.
The Three Core Web Vitals at a Glance
Before getting technical, here’s the easiest way to understand the three metrics.
Largest Contentful Paint (LCP)
Question: How quickly does the main content appear?
LCP measures loading performance by looking at when the largest relevant content element within the viewport is rendered.
Think:
“Can I see the important part of this page yet?”
Interaction to Next Paint (INP)
Question: How responsive does the page feel?
INP evaluates how quickly the page provides visual feedback after user interactions such as clicks, taps, and keyboard input, considering interactions over the life of the page.
Think:
“I clicked it. Why isn’t anything happening?”
Cumulative Layout Shift (CLS)
Question: Does the page stay visually stable?
CLS measures unexpected layout shifts.
Think:
“I was about to click that button—and it moved.”
Together, they give us a simple performance framework:
LCP → Load
INP → Respond
CLS → Stay Stable
Each metric measures a different problem, which means each also requires different optimization techniques.
Let’s start with loading.
#1 Largest Contentful Paint (LCP): Loading Performance
Largest Contentful Paint, usually shortened to LCP, measures loading performance.
More specifically, it measures how long it takes for the largest eligible content element visible within the viewport to render.
That element might be:
- A large hero image
- A prominent product image
- A large text block
- A banner image
- Another substantial visual element
The exact LCP element depends on the page.
Why Measure the Largest Element?
Traditional ideas about website speed can be misleading.
A page might technically begin loading almost immediately while the content the visitor actually cares about remains blank for several seconds.
LCP focuses more closely on the user’s perception of loading.
Imagine a photography website.
The navigation and logo appear quickly, but the enormous portfolio image dominating the screen remains blank.
Technically, something has loaded.
From the visitor’s perspective, however, the page doesn’t feel ready.
That hero photograph could be the page’s LCP element.
Your LCP Element Can Vary
Don’t assume every page has the same LCP element.
Your homepage might have a large hero image.
A blog article might have a featured image or large heading.
A product page might have a product photograph.
That’s why performance optimization often needs to happen at the page or template level, rather than treating the entire website as one identical experience.
What Is a Good LCP Score?
Google’s Core Web Vitals guidance classifies LCP performance into three general ranges:
Good: 2.5 seconds or less
Needs Improvement: More than 2.5 seconds and up to 4 seconds
Poor: More than 4 seconds
For Core Web Vitals assessment, performance is evaluated using real-user data and typically looks at the 75th percentileof page loads.
That last part is important.
The goal isn’t:
“My website loaded quickly once.”
It’s to provide a good experience for the large majority of visitors.
Don’t Confuse LCP With Total Page Load Time
LCP doesn’t mean every single resource on your page has finished loading.
Your analytics scripts, below-the-fold images, widgets, and other resources may continue doing work.
LCP focuses on when the significant visible content is rendered.
That’s why optimizing the right resource can sometimes produce a much larger improvement than simply trying to make every file slightly smaller.
What Usually Causes Poor LCP?
When LCP is slow, the problem isn’t necessarily the LCP element itself.
Several things can delay when that element appears.
Large or Poorly Optimized Images
Hero images are frequent LCP candidates.
Problems can include:
- Excessive dimensions
- Large file sizes
- Inefficient formats
- Poor compression
- Incorrect responsive-image configuration
Uploading a 6,000-pixel photograph to display at 1,200 pixels wastes bandwidth.
Slow Server Response
Before the browser can display your page, it needs to receive the necessary information.
Slow hosting, inefficient server processing, database problems, or poorly configured caching can delay everything that follows.
Render-Blocking Resources
CSS, JavaScript, and other resources may delay rendering.
If the browser has to download and process a large amount of code before displaying the important content, LCP can suffer.
The LCP Resource Is Discovered Too Late
Sometimes the browser simply doesn’t learn about an important resource early enough.
This can happen because of how images, CSS backgrounds, scripts, or other resources are implemented.
Lazy-Loading the Wrong Image
Lazy loading is extremely useful for images farther down a page.
It can be counterproductive for an image that needs to appear immediately.
If your hero image is the LCP element, delaying its loading may make LCP worse.
Too Many Third-Party Resources
Advertising systems, analytics, chat widgets, social integrations, tracking scripts, plugins, and other third-party services can compete for browser resources.
One script may not cause a problem.
Twenty might.
How to Improve LCP
Improving LCP starts by identifying the actual bottleneck rather than applying every speed optimization you can find.
Tools such as PageSpeed Insights and Chrome DevTools can help identify the LCP element and investigate what is delaying it.
Then work on the appropriate cause.
Optimize Hero and Large Images
If your LCP element is an image, start there.
Make sure the image is:
- Appropriately sized
- Properly compressed
- Delivered efficiently
- Responsive across devices
Don’t upload an enormous original photograph and rely entirely on the browser to make it appear smaller.
Keep your high-resolution originals separately and create optimized web versions.
Use WebP or AVIF Where Appropriate
Modern formats such as WebP and AVIF can provide excellent compression.
But format isn’t everything.
A poorly sized AVIF image can still be unnecessarily heavy.
Think of image optimization as a combination of:
Dimensions + Format + Compression + Delivery
rather than searching for one magical file type.
Don’t Lazy-Load the LCP Image
Lazy loading tells the browser that a resource doesn’t necessarily need to load immediately.
That’s ideal for an image halfway down a long article.
It’s usually not what you want for a prominent above-the-fold image that becomes your LCP element.
Below-the-fold images?
Lazy loading can be helpful.
Main hero/LCP image?
Prioritize it.
This distinction is especially important for WordPress websites, where themes and optimization plugins may apply loading behavior automatically.
Prioritize Important Resources
The browser can’t prioritize something it discovers too late.
For critical resources, appropriate techniques may help the browser identify what matters earlier.
Depending on your implementation, this can include resource-priority techniques such as preloading or fetch prioritization.
Don’t preload everything.
If everything is labeled important, nothing is truly prioritized.
Focus on resources genuinely required for the initial view.
Improve Server Response
If the initial response is slow, image compression alone won’t solve the entire problem.
Possible improvements include:
- Better hosting
- Page caching
- Server-side caching
- Database optimization
- Reducing unnecessary backend processing
- Removing inefficient plugins
- Using a CDN where appropriate
For WordPress sites, plugin and theme choices can have a substantial effect on backend and frontend performance.
Reduce Render-Blocking Resources
Browsers may need to process CSS or JavaScript before they can render important content.
Possible improvements include:
- Removing unused CSS
- Reducing unnecessary JavaScript
- Loading non-critical scripts appropriately
- Delivering critical styles efficiently
- Minifying resources where useful
- Removing unnecessary third-party code
Be careful with automated “delay all JavaScript” solutions.
Aggressive optimization can break menus, forms, analytics, shopping carts, cookie systems, and other important functionality.
Always test after making changes.
Use Caching and a CDN Where Appropriate
Caching can reduce repeated work and help resources reach visitors more efficiently.
A Content Delivery Network (CDN) can distribute static resources through geographically distributed infrastructure, potentially reducing delivery delays for visitors located farther from your origin server.
Not every small website requires an elaborate CDN configuration.
But caching and efficient content delivery can become particularly valuable for sites with:
- Large images
- Geographically distributed visitors
- Significant traffic
- E-commerce
- Media-heavy pages
Success Brews Tip:
When LCP is poor, don’t immediately install five performance plugins. Identify what’s actually delaying the LCP element first, then fix the bottleneck.
#2 Interaction to Next Paint (INP): Responsiveness
A page can load quickly and still feel painfully slow.
You click a menu.
Nothing happens.
You tap Add to Cart.
Nothing appears to happen.
You begin typing into a field, but the interface feels delayed.
That’s the type of experience Interaction to Next Paint (INP) is designed to measure.
INP is a Core Web Vital focused on responsiveness.
It evaluates the latency of user interactions during a page visit and uses that information to characterize how consistently the page responds to interactions.
Interactions can include actions involving:
- Mouse clicks
- Taps on touchscreens
- Keyboard input
INP considers more than just the very first interaction.
That’s an important difference from the metric it replaced.
INP Replaced First Input Delay
Before INP, Google’s Core Web Vitals included First Input Delay (FID).
FID focused on the delay associated with a user’s first interaction.
INP provides a broader view by evaluating responsiveness across interactions during the page’s lifecycle rather than concentrating only on the first one.
Google replaced FID with INP as a Core Web Vital in March 2024.
So if you encounter an older performance guide telling you to optimize your current Core Web Vitals for:
LCP + FID + CLS
it’s outdated.
The current trio is:
LCP + INP + CLS
What Is INP Actually Measuring?
An interaction involves several stages.
A visitor interacts with the page.
The browser needs to process the event.
Relevant code may need to run.
The browser then needs to render visual feedback.
INP captures the delay associated with that interaction until the next visual update is presented.
From a visitor’s perspective, the question is much simpler:
“When I do something, does the website respond quickly?”
That’s why INP is particularly relevant to websites with significant interactivity, including:
- E-commerce stores
- Booking systems
- Interactive forms
- Navigation menus
- Filters
- Search tools
- Account dashboards
- Web applications
A website can have an excellent LCP score while still having poor INP.
Fast loading doesn’t automatically mean fast interaction.
What Is a Good INP Score?
Google’s Core Web Vitals thresholds classify INP as:
Good: 200 milliseconds or less
Needs Improvement: More than 200 milliseconds and up to 500 milliseconds
Poor: More than 500 milliseconds
As with the other Core Web Vitals, Google recommends evaluating performance around the 75th percentile of page loads or user experiences.
In practical terms, you want the large majority of visitors to experience responsive interactions.
What Does 200 Milliseconds Feel Like?
Two hundred milliseconds is two-tenths of a second.
That’s short enough that an interaction generally feels responsive.
As delays grow, the interface can begin to feel sluggish.
And when responsiveness becomes very poor, users may wonder whether their click registered at all.
That’s when they may click again.
And again.
On an e-commerce website, that can become particularly frustrating.
Don’t Optimize INP in Isolation
A good INP score doesn’t automatically mean your entire user experience is good.
A button can respond immediately and still take the customer to a confusing checkout page.
A navigation menu can open instantly and still be poorly organized.
Core Web Vitals measure aspects of technical experience.
They don’t measure whether your website is well designed, persuasive, accessible in every respect, or useful.
That’s why the broader goal remains:
Fast loading + Responsive interactions + Stable layout + Useful content + Clear user experience
Success Brews Tip:
A fast website shouldn’t just appear quickly. It should continue feeling fast after the visitor starts using it.
What Causes Poor INP?
Poor INP usually occurs when the browser is too busy to respond quickly to a visitor’s interaction.
When someone clicks a button, opens a menu, selects a product option, or types into a field, the browser has work to do before it can display the result.
If too much work is competing for attention, the response can be delayed.
Heavy JavaScript Execution
JavaScript powers much of the interactive functionality on modern websites.
It can control:
- Navigation menus
- Shopping carts
- Product filters
- Forms
- Pop-ups
- Sliders
- Analytics
- Chat tools
- Interactive calculators
- Personalization
- Advertising
JavaScript itself isn’t the problem.
The problem occurs when too much JavaScript needs to execute at once or when inefficient code occupies the browser’s main thread for too long.
Long Tasks
Browsers perform many important activities on what’s called the main thread.
If a long-running task occupies that thread, the browser may not be able to respond promptly to a user’s interaction.
Imagine a cashier processing a complicated transaction while ten customers wait in line.
The cashier isn’t necessarily doing anything wrong — the problem is that one task is preventing other work from being handled.
Breaking large tasks into smaller pieces can give the browser more opportunities to respond to users.
Too Many Third-Party Scripts
Small-business websites can accumulate third-party tools surprisingly quickly.
You might have:
- Google Analytics
- Advertising pixels
- Heatmaps
- Live chat
- Social-media widgets
- Review widgets
- Scheduling tools
- Pop-ups
- Cookie-management tools
- Embedded videos
- Affiliate tracking
- E-commerce apps
Individually, each tool may seem reasonable.
Collectively, they can create a substantial performance burden.
Inefficient Event Handlers
When someone clicks, taps, or types, event handlers tell the browser what should happen.
If those handlers perform excessive processing before the page can update visually, responsiveness can suffer.
Complex Pages
Large pages with complicated layouts, extensive scripts, numerous DOM elements, and heavy interactive functionality can require more browser processing.
This is particularly relevant for e-commerce stores, page-builder websites, and sites that have accumulated years of plugins and features.
How to Improve INP
Improving INP usually involves reducing the amount of work the browser must perform when someone interacts with your page.
Unlike optimizing an image, however, INP problems can be difficult to diagnose simply by looking at the website.
Performance tools such as Chrome DevTools and PageSpeed Insights can help identify long tasks, excessive JavaScript, and other potential bottlenecks.
Reduce Long JavaScript Tasks
Long-running JavaScript can prevent the browser from responding promptly.
Where possible, divide large tasks into smaller pieces so the browser has opportunities to process user interactions between them.
For developers, this may involve restructuring code rather than simply making files smaller.
That’s an important distinction:
Smaller JavaScript files don’t automatically mean faster interactions.
How and when the code executes matters too.
Remove Unnecessary Scripts
One of the simplest performance improvements is eliminating code you no longer need.
Ask:
Do we still use this feature?
Does this script need to load on every page?
Is an old marketing platform still installed?
Are two plugins performing essentially the same job?
It’s surprisingly common for websites to continue loading scripts from services the business stopped using months or years ago.
Removing unnecessary code can improve performance without sacrificing anything useful.
Audit Third-Party Tools
Third-party scripts deserve particular attention because you may have limited control over how efficiently they’re written.
Create an inventory of your external tools.
For each one, ask:
What does this tool do?
Do customers actually use it?
Does it need to appear on every page?
Does its business value justify its performance cost?
A live-chat widget that generates valuable leads may absolutely be worth keeping.
A social-media widget nobody uses may not be.
The objective isn’t:
Remove every third-party script.
It’s:
Make every script earn its place.
Break Up Long Tasks
When one large task occupies the main thread, user interactions may have to wait.
Developers can divide lengthy work into smaller tasks, allowing the browser to periodically return control and respond to interactions.
This is especially useful when processing:
- Large datasets
- Complex calculations
- Dynamic content
- Extensive interface updates
For small-business owners who aren’t developers, the practical takeaway is simpler:
If a performance report identifies long main-thread tasks, don’t assume another caching plugin will automatically solve them.
The underlying JavaScript may need attention.
Optimize Event Handlers
Interactive elements should perform only the work necessary when the user interacts with them.
Complex event handlers can sometimes be simplified, delayed, or reorganized so that the browser can provide visual feedback sooner.
A user doesn’t necessarily need every background calculation completed before the interface acknowledges their click.
Prioritize visible feedback.
Reduce Main-Thread Work
Improving INP often comes back to one principle:
Give the browser less unnecessary work to do.
That may involve:
- Removing unused JavaScript
- Reducing third-party scripts
- Simplifying complex components
- Breaking up long tasks
- Optimizing event handling
- Reducing unnecessary DOM complexity
- Loading functionality only where it’s needed
Success Brews Tip:
Every plugin, app, tracking script, and widget has a cost. Before adding another tool to your website, ask whether the value it provides is worth the additional complexity it introduces.
What Happened to First Input Delay (FID)?
If you’ve read older Core Web Vitals guides, you’ve probably seen a different set of three metrics:
LCP + FID + CLS
That’s no longer the current combination.
Google replaced First Input Delay (FID) with Interaction to Next Paint (INP) as a Core Web Vital in March 2024.
Why Was FID Replaced?
FID measured the delay before the browser could begin processing a user’s first interaction with a page.
That provided useful information, but it had limitations.
Most importantly, it focused only on that first interaction and primarily measured the input delay portion of the experience.
INP provides a broader view of responsiveness by considering interactions throughout the page visit and measuring the time until the browser can present the next visual update.
The distinction can be simplified like this:
FID: How delayed was the beginning of the first interaction?
INP: How responsive are interactions across the page experience?
If an SEO tool, article, plugin, or report still tells you that the three current Core Web Vitals are LCP, FID, and CLS, that information is outdated.
Today, remember:
LCP = Load
INP = Respond
CLS = Stay Stable
#3 Cumulative Layout Shift (CLS): Visual Stability
Have you ever tried to click a button on a webpage only for an advertisement or image to suddenly load above it and push everything down?
You end up clicking something completely different.
That’s the type of frustrating experience Cumulative Layout Shift (CLS) is designed to identify.
CLS measures visual stability.
It looks at unexpected movement of visible page elements while someone is using the page.
What Does a Layout Shift Look Like?
Imagine you’re reading an article.
The first paragraph appears.
You begin reading.
Then a large advertisement loads near the top of the page.
Suddenly, the paragraph moves halfway down the screen.
That’s a layout shift.
Another common example occurs with images.
The browser initially doesn’t know how much space an image requires, so it displays the surrounding content without reserving room.
When the image finally loads, everything below it gets pushed downward.
Not Every Movement Is Bad
CLS focuses on unexpected layout shifts.
If you click a button that intentionally expands a section, you expect the page to move.
That’s different from content unexpectedly jumping around while you’re trying to use it.
The goal isn’t to create a website where nothing ever moves.
It’s to make sure the interface behaves predictably.
What Is a Good CLS Score?
Unlike LCP and INP, CLS isn’t measured in seconds or milliseconds.
It’s represented as a score based on the amount and nature of unexpected layout movement.
Google’s thresholds are:
Good: 0.1 or less
Needs Improvement: More than 0.1 and up to 0.25
Poor: More than 0.25
As with the other Core Web Vitals, Google evaluates real-user performance using the 75th percentile when enough field data is available.
Lower Is Better
With CLS, you want the number to remain low.
A score close to zero means the page remains relatively stable.
As the score increases, visitors are experiencing more significant unexpected movement.
But don’t obsess over achieving an absolute zero on every page.
The goal is a consistently stable experience — not chasing mathematical perfection.
What Causes Poor CLS?
CLS problems often occur because the browser doesn’t know how much space to reserve for content before that content loads.
Several common website features can cause this.
Images Without Reserved Space
Images are one of the most common examples.
If the browser knows an image’s dimensions or aspect ratio, it can reserve the appropriate space before the image arrives.
Without that information, surrounding content may move when the image appears.
Ads and Embeds
Advertisements, social posts, videos, maps, review widgets, and other embedded content may load after the rest of the page.
If you haven’t reserved enough space for them, they can push existing content around.
Cookie and Consent Notices
Cookie-consent systems can affect layout stability when they’re inserted in ways that move existing page content.
This is especially important because many business websites use consent-management platforms alongside analytics and advertising tools.
Web Fonts
Custom fonts can change the dimensions of text when they replace fallback fonts.
If the replacement font occupies substantially different space, paragraphs, headings, buttons, and surrounding elements may shift.
Dynamically Inserted Content
Pop-ups, promotional banners, alerts, forms, recommendations, and other dynamically inserted content can cause layout movement—particularly when they’re added above content the visitor is already viewing.
How to Improve CLS
The basic strategy for improving CLS is straightforward:
Make the page’s layout predictable before everything finishes loading.
Set Image Dimensions and Aspect Ratios
When possible, provide width and height information for images and videos so the browser knows their proportions before the files load.
Modern responsive layouts can preserve that reserved space while still allowing images to resize appropriately for different screens.
This is particularly important for:
- Hero images
- Blog featured images
- Product photos
- Gallery images
- Video thumbnails
You don’t need to lock every image into one fixed pixel size.
You need to give the browser enough information to understand the space it should reserve.
Reserve Space for Ads and Embeds
If you know an advertisement, video, map, social post, or widget will appear in a particular location, reserve space for it.
Instead of:
Empty space → Content suddenly appears → Everything moves
aim for:
Reserved container → Content loads inside it
Skeleton screens and placeholders can sometimes help maintain the structure while dynamic content loads.
Handle Cookie Banners Carefully
Cookie notices and consent tools are often necessary, but their implementation matters.
Whenever possible, design them so they don’t unexpectedly push important visible content around.
For example, an overlay or appropriately reserved area may create less layout disruption than inserting a large banner above already-rendered content.
The exact implementation should still meet your legal and accessibility requirements.
Performance shouldn’t come at the expense of compliance.
Optimize Font Loading
Custom typography is an important part of many brands, but fonts can contribute to layout shifts.
Strategies can include:
- Using appropriate fallback fonts
- Preloading critical fonts where justified
- Limiting unnecessary font families and weights
- Using efficient font files
- Configuring font loading thoughtfully
The closer your fallback font’s dimensions are to your final font, the less dramatic the layout change may be when the custom typeface loads.
Don’t load six font families and fifteen weights simply because the theme allows it.
Avoid Inserting Content Above Existing Content
This is one of the simplest CLS principles.
Once a visitor is viewing content, avoid unexpectedly inserting something above it.
For example:
A visitor begins reading your article.
Three seconds later:
“FREE GUIDE! JOIN OUR NEWSLETTER!”
appears above the article and pushes everything downward.
That’s disruptive.
If you need to display dynamic content, consider locations or presentation methods that don’t unexpectedly move what the visitor is already using.
This applies to:
- Promotional bars
- Newsletter forms
- Ads
- Alerts
- Recommendations
- Personalization
- Dynamic notices
Success Brews Tip:
A stable website feels trustworthy. Visitors shouldn’t have to chase buttons, paragraphs, or forms around the screen while your page finishes loading.
Field Data vs. Lab Data: Why Your Scores May Be Different
One of the most confusing parts of Core Web Vitals is seeing different results depending on which tool you use.
You run your homepage through PageSpeed Insights and get one result.
You test it again and the score changes.
Then you open Google Search Console and see something different again.
That doesn’t necessarily mean anything is broken.
The difference often comes down to two types of performance information:
Field data and lab data.
What Is Field Data?
Field data comes from the experiences of real users visiting websites under real-world conditions.
Those visitors may have:
- Different phones and computers
- Different internet connections
- Different browsers or device capabilities
- Different geographic locations
- Cached or uncached resources
- Different patterns of interaction
Field data therefore answers:
“How have actual users experienced this website?”
For Core Web Vitals, this type of real-world data is particularly important.
What Is Lab Data?
Lab data is collected by testing a page under controlled, simulated conditions.
It answers a different question:
“How did this page perform during this particular test?”
Lab testing is extremely useful for diagnosing problems because you can repeat tests and inspect specific performance issues.
But one simulated test can’t perfectly represent every real visitor.
You Need Both
Think of the difference this way:
Field data = What’s happening to real visitors?
Lab data = What might be causing it?
Field data helps identify real-world performance problems.
Lab testing helps investigate and troubleshoot them.
Success Brews Tip:
Don’t panic when two performance tools show different numbers. First determine whether you’re comparing field data, lab data, or two different testing conditions.
Chrome UX Report (CrUX): Where Real-User Data Comes From
The Chrome User Experience Report, commonly called CrUX, provides real-user performance data based on eligible Chrome user experiences.
CrUX is an important source behind the field data you’ll encounter in Google’s Core Web Vitals tools.
Instead of running one simulated test, CrUX aggregates eligible real-world experiences over time.
That means it can capture conditions that are difficult to reproduce in your office.
For example, some visitors may be using:
- Older smartphones
- Slower connections
- Different screen sizes
- Different geographic networks
Your website might perform beautifully on your desktop computer and still struggle for a portion of your real audience.
Why Some Websites Don’t Have Enough Field Data
Small or new websites may not always have enough eligible real-user data for detailed CrUX reporting.
That doesn’t mean the website isn’t being indexed or that something is wrong.
It may simply mean there isn’t enough qualifying data available for the page or origin.
In that situation, lab testing becomes especially useful for identifying potential performance problems while you continue monitoring real-world data as it becomes available.
PageSpeed Insights: How to Read the Report
PageSpeed Insights is one of the easiest places to begin investigating website performance.
But don’t open it, look at one big number, and close the tab.
There’s much more useful information in the report.
Start With Core Web Vitals
When field data is available, first examine whether the page passes the Core Web Vitals assessment.
Look at:
LCP — loading performance
INP — responsiveness
CLS — visual stability
Remember our framework:
Load → Respond → Stay Stable
If one metric needs improvement, you’ve already narrowed down the type of problem you’re looking for.
Then Examine the Lab Test
The Lighthouse-based performance test can help diagnose possible causes.
You may see recommendations involving:
- Large images
- Unused JavaScript
- Render-blocking resources
- Main-thread work
- Server response
- Font loading
- Caching
- Third-party scripts
Don’t automatically implement every recommendation.
Some opportunities may produce substantial improvements.
Others may save very little.
Prioritize problems that meaningfully affect your users and Core Web Vitals.
Google Search Console Core Web Vitals Report
Google Search Console provides a broader view of Core Web Vitals performance across your website.
Instead of testing one URL at a time, the Core Web Vitals report can help identify groups of pages experiencing similar problems.
You’ll generally see pages categorized according to performance such as:
Good
Needs Improvement
Poor
and separated by device category where applicable.
Why Grouped URLs Matter
Websites often use templates.
Your blog posts may share one template.
Products another.
Category pages another.
If dozens of URLs have the same performance problem, you may not actually have dozens of independent problems.
You might have one template-level problem affecting dozens of pages.
For example, every blog article may use the same oversized hero-image configuration.
Fixing the template could improve many pages at once.
That’s why Search Console can be particularly useful for identifying patterns.
Lighthouse and Chrome DevTools
When you need to go deeper, Lighthouse and Chrome DevTools can help diagnose what’s happening inside a page.
Lighthouse can evaluate areas including:
- Performance
- Accessibility
- SEO
- Best practices
Its performance audit can identify potential opportunities involving images, JavaScript, network requests, rendering, and other technical issues.
Chrome DevTools goes deeper still.
Developers can use its performance tools to investigate:
- Long tasks
- Network activity
- Main-thread work
- Rendering
- JavaScript execution
- Layout shifts
- Resource loading
Small-business owners don’t necessarily need to master DevTools.
But knowing these diagnostic tools exist is useful when working with a developer.
Instead of saying:
“My website feels slow.”
you can begin with:
“Our INP is poor, and the performance trace appears to show significant main-thread work.”
That’s a much more useful conversation.
Mobile vs. Desktop Core Web Vitals
Don’t assume good desktop performance means good mobile performance.
Mobile visitors often face different conditions.
They may have:
- Less powerful processors
- Slower or less stable networks
- Smaller screens
- Different layouts
- Different interactive elements
Your desktop design may also load resources differently from your mobile layout.
Pay Particular Attention to Mobile
Open your important pages on an actual phone.
Try:
- Opening the navigation
- Scrolling
- Filling out a form
- Adding a product to the cart
- Changing product options
- Opening images
- Using search
- Completing checkout
Performance isn’t just a number.
Use the website.
A technically acceptable report doesn’t guarantee that the mobile experience is pleasant.
Core Web Vitals for WordPress
WordPress can produce fast websites.
It can also produce extremely heavy ones.
The difference often comes down to how the site is built and maintained.
Common WordPress performance issues can involve:
- Oversized images
- Heavy themes
- Page builders
- Excessive plugins
- Multiple font families
- Third-party scripts
- Poor hosting
- Inefficient database activity
- Inadequate caching
Don’t Install a Plugin for Every Performance Problem
Performance plugins can be useful.
Caching, image optimization, script management, and other tools may provide significant benefits.
But stacking multiple optimization plugins can create conflicts or duplicate functionality.
You may end up with:
Plugin A compressing images
Plugin B converting images
Plugin C lazy-loading images
Plugin D rewriting delivery
while your theme performs some of those tasks too.
More optimization software doesn’t automatically mean more optimization.
Understand what each tool is doing.
Test After Every Major Change
Performance optimization can break functionality.
After changing caching, JavaScript loading, CSS delivery, or optimization settings, test:
- Navigation
- Forms
- Search
- Analytics
- Cookie consent
- Mobile layouts
- E-commerce functionality
A faster website isn’t an improvement if customers can no longer submit your contact form.
Core Web Vitals for WooCommerce and E-Commerce
E-commerce websites present additional performance challenges because they’re naturally more complex.
A WooCommerce store may need:
- Product galleries
- Variations
- Reviews
- Recommendations
- Shopping carts
- Checkout
- Payment processing
- Analytics
- Advertising tracking
- Search
- Filters
- Inventory functionality
You shouldn’t remove essential commerce functionality simply to improve a performance score.
Instead, focus on delivering it efficiently.
Product Pages
Pay particular attention to:
- Product-image sizes
- Image galleries
- Variation scripts
- Review widgets
- Recommendation tools
- Third-party apps
Cart and Checkout
Be cautious with aggressive caching and JavaScript optimization on transactional pages.
Test the entire purchasing journey after making performance changes.
That means:
Product → Add to Cart → Cart → Checkout → Payment
Performance matters.
But a working checkout matters even more.
Plugins, Apps, and Third-Party Scripts: The Hidden Performance Cost
One of the easiest ways to slow a website is to keep adding things.
A plugin here.
A Facebook pixel there.
A chat widget.
A review service.
A scheduling tool.
A heatmap.
Another analytics platform.
A pop-up.
An embedded social feed.
Eventually, dozens of external resources may load every time someone visits.
Audit Your Website Regularly
Create an inventory of:
- WordPress plugins
- Shopify/WooCommerce apps
- Analytics scripts
- Advertising pixels
- Chat systems
- Social widgets
- Review widgets
- Embedded tools
- Marketing scripts
For each one, ask:
Do we still use this?
Does it need to load everywhere?
Does it produce measurable value?
Is there a lighter alternative?
A useful tool may absolutely justify its performance cost.
The goal isn’t to build a website with no functionality.
It’s to stop paying a performance price for functionality nobody needs.
Images and Core Web Vitals
Images can affect more than one Core Web Vital.
Images and LCP
Large hero and product images are common LCP elements.
An oversized or poorly delivered image can delay when the main content becomes visible.
Optimize:
- Dimensions
- Compression
- Format
- Responsive delivery
- Loading priority
Images and CLS
Images can also cause layout shifts if the browser doesn’t know how much space to reserve before they load.
Providing appropriate dimensions or aspect-ratio information helps maintain layout stability.
Don’t Lazy-Load Everything
Lazy loading is valuable for images farther down the page.
But automatically lazy-loading your primary above-the-fold image can hurt LCP.
Use loading strategies according to the role of the image.
For a deeper walkthrough, this is also a perfect place to internally link to your Image Optimization for Websites guide.
Fonts and Core Web Vitals
Fonts may look harmless compared with giant photographs and JavaScript bundles, but typography can affect performance too.
Websites sometimes load:
- Multiple font families
- Numerous weights
- Italics
- Icon fonts
- Third-party font resources
That adds requests and processing.
Fonts Can Affect LCP
If important text depends on a font that isn’t available quickly, its rendering may be delayed.
Fonts Can Affect CLS
When a fallback font is replaced by a custom font with different dimensions, text may reflow.
That can move surrounding content.
Keep Typography Intentional
Your brand probably doesn’t need every available weight of every font.
Load what the design actually uses.
A carefully chosen headline font plus a practical body font can create a sophisticated design without unnecessarily complicating performance.
Do You Need a Perfect 100 PageSpeed Score?
No.
This is one of the most important points in this entire guide.
A 100 PageSpeed performance score is not the same thing as having a successful website.
PageSpeed scores are useful diagnostic information, but don’t turn them into a competition.
A website exists to accomplish something.
That might mean:
- Selling products
- Showing photography
- Booking appointments
- Generating leads
- Publishing articles
- Accepting donations
- Teaching customers
Some of that functionality requires resources.
Optimize for People, Not Perfection
Suppose removing your product gallery improves your performance score from 93 to 100.
But customers need that gallery to make purchasing decisions.
That’s not an improvement.
Likewise, don’t remove valuable analytics simply because eliminating every script makes a synthetic test look prettier.
Instead ask:
Is the website fast enough to provide a strong real-world experience?
Are Core Web Vitals healthy?
Are unnecessary resources creating problems?
Does every major feature justify its cost?
Success Brews Tip:
A 100 PageSpeed score doesn’t pay your bills. A fast, functional website that helps customers accomplish what they came to do is the real goal.
Common Core Web Vitals Mistakes
Avoid these common optimization traps:
Focusing only on the PageSpeed score.
Testing only the homepage.
Testing only on desktop.
Confusing lab data with real-user field data.
Trying to optimize FID instead of the current INP metric.
Lazy-loading the LCP image.
Uploading enormous images and relying on the browser to resize them.
Installing multiple performance plugins that duplicate each other’s work.
Delaying every JavaScript file without testing functionality.
Ignoring third-party scripts.
Removing useful functionality simply to improve a score.
Ignoring layout shifts caused by ads, banners, images, and embeds.
Loading fonts and weights the website doesn’t actually use.
Making five performance changes simultaneously and then not knowing which one helped—or broke something.
Assuming a passing Core Web Vitals assessment guarantees strong SEO rankings.
The common theme is simple:
Measure → Diagnose → Change → Test
Don’t:
Guess → Install → Hope
A Simple Core Web Vitals Optimization Workflow
You don’t need to rebuild your entire website at once.
Use a systematic process.
Step 1: Identify Your Important Pages
Start with pages that matter most to the business:
- Homepage
- Important service pages
- Product pages
- Checkout
- High-traffic articles
- Major landing pages
Step 2: Check Field Data
Where sufficient real-user data exists, examine Core Web Vitals performance.
Determine whether the main problem involves:
LCP
INP
or:
CLS
Step 3: Run Lab Tests
Use PageSpeed Insights and other diagnostic tools to investigate likely causes.
Step 4: Identify the Bottleneck
Don’t optimize randomly.
If LCP is poor because of the hero image, work on the hero image.
If INP is poor because of long JavaScript tasks, compressing another photograph probably won’t solve it.
If CLS is poor because an advertisement doesn’t reserve space, fix the layout.
Step 5: Make One Logical Group of Changes
Keep changes manageable.
Document what you changed.
Step 6: Test Functionality
Check:
- Desktop
- Mobile
- Navigation
- Forms
- Search
- Analytics
- Cart
- Checkout
- Cookie consent
Step 7: Test Performance Again
Determine whether the change improved the problem.
Step 8: Monitor Real-World Results
Lab improvements can appear immediately.
Field data reflects aggregated real-user experiences and therefore won’t necessarily update instantly.
Give real-world measurement time to reflect the change.
Then repeat the process where necessary.
Core Web Vitals Checklist
Use this checklist when reviewing your website.
LCP — Loading
- ☐ Identify the LCP element
- ☐ Optimize hero images
- ☐ Resize oversized images
- ☐ Compress images appropriately
- ☐ Consider WebP or AVIF
- ☐ Don’t unnecessarily lazy-load the LCP image
- ☐ Review server response
- ☐ Review render-blocking resources
- ☐ Use caching appropriately
- ☐ Consider a CDN where useful
INP — Responsiveness
- ☐ Look for long JavaScript tasks
- ☐ Remove unnecessary scripts
- ☐ Audit third-party tools
- ☐ Reduce main-thread work
- ☐ Review complex interactive components
- ☐ Optimize event handling where necessary
- ☐ Remove unused plugins/apps
- ☐ Test menus, forms, filters, and checkout
CLS — Visual Stability
- ☐ Set image dimensions/aspect ratios
- ☐ Reserve space for videos and embeds
- ☐ Reserve space for advertisements
- ☐ Review cookie-banner behavior
- ☐ Optimize font loading
- ☐ Avoid unexpected content insertion
- ☐ Check promotional banners
- ☐ Test layout stability on mobile
Measurement
- ☐ Review field data where available
- ☐ Run PageSpeed Insights
- ☐ Check Search Console
- ☐ Compare mobile and desktop
- ☐ Test important page templates
- ☐ Document changes
- ☐ Retest after optimization
- ☐ Monitor real-world performance over time
Frequently Asked Questions
What are the three Core Web Vitals?
The current Core Web Vitals are:
Largest Contentful Paint (LCP) for loading performance.
Interaction to Next Paint (INP) for responsiveness.
Cumulative Layout Shift (CLS) for visual stability.
A simple way to remember them is:
Load → Respond → Stay Stable
What happened to FID?
First Input Delay (FID) was previously one of the Core Web Vitals.
Google replaced FID with Interaction to Next Paint (INP) in March 2024 because INP provides a broader measurement of page responsiveness across interactions.
What is a good LCP score?
An LCP of 2.5 seconds or less is considered good.
More than 2.5 seconds and up to 4 seconds falls into Needs Improvement, while more than 4 seconds is considered Poor.
What is a good INP score?
An INP of 200 milliseconds or less is considered good.
More than 200 milliseconds and up to 500 milliseconds needs improvement, while more than 500 milliseconds is considered poor.
What is a good CLS score?
A CLS score of 0.1 or less is considered good.
More than 0.1 and up to 0.25 needs improvement, while more than 0.25 is considered poor.
Do Core Web Vitals affect SEO?
Core Web Vitals are part of Google’s broader page-experience considerations.
However, excellent Core Web Vitals don’t automatically make a page rank highly. Search relevance, content usefulness, and many other factors remain important.
Treat Core Web Vitals as one component of a broader SEO and user-experience strategy.
Why is my PageSpeed score different every time?
Lab tests can vary because testing conditions aren’t perfectly identical every time.
Field data and lab data also measure different things.
Instead of reacting to one test result, look for patterns and investigate the specific performance problems identified.
Why does Search Console show something different from PageSpeed Insights?
You may be comparing different datasets, time periods, page groups, or lab and field measurements.
Search Console provides a broader view of real-user Core Web Vitals performance across groups of URLs, while PageSpeed Insights can provide both field information where available and a lab test for an individual page.
Do I need a PageSpeed score of 100?
No.
A perfect synthetic performance score isn’t the objective.
Aim for good real-world performance, healthy Core Web Vitals, and a website that remains useful and functional for customers.
Can WordPress pass Core Web Vitals?
Yes.
WordPress itself doesn’t automatically mean poor performance.
Hosting, themes, plugins, images, fonts, caching, third-party scripts, and how the site is built all influence performance.
Can plugins improve Core Web Vitals?
They can help with specific problems such as caching, image optimization, or resource delivery.
But plugins can also add code and complexity.
Use them to solve identified problems rather than installing multiple optimization plugins simply because they promise a faster website.
Final Thoughts: Build for People, Measure With Data
Core Web Vitals can look intimidating when you first encounter them.
LCP.
INP.
CLS.
Milliseconds.
Percentiles.
Field data.
Lab data.
Performance traces.
But underneath all of that technical terminology are three remarkably simple questions:
Does the important content load quickly?
Does the website respond quickly when someone uses it?
Does the page stay visually stable?
That’s what Core Web Vitals are really trying to help you understand.
Remember:
LCP = Load
INP = Respond
CLS = Stay Stable
For a small-business owner, the goal isn’t to become a performance engineer.
And it isn’t to spend hours repeatedly running PageSpeed Insights until a score finally reaches 100.
Your goal is to identify performance problems that create real friction for customers and fix the ones that matter.
Start with your most important pages.
Look at real-user data where it’s available.
Use lab tests to investigate problems.
Optimize one bottleneck at a time.
Test your website after making changes.
Then monitor what happens in the real world.
And don’t sacrifice useful content, photography, e-commerce functionality, analytics, accessibility, or customer experience simply to make a performance number look better.
The best website isn’t necessarily the one with the highest score.
It’s the one that delivers what customers need quickly, responsively, reliably, and without unnecessary friction.
Success Brews Tip:
Core Web Vitals aren’t about chasing perfect numbers. They’re about finding the technical friction your customers experience—and removing it.


