Skip to content
Meridian Digital

Fix Core Web Vitals: Step-by-Step Guide for Beginners

Learn how to fix Core Web Vitals across your site. Diagnose LCP, CLS, and INP issues in Google Search Console and apply clear code fixes step by step.

  • core web vitals
  • technical seo
  • pagespeed insights
  • google search console
The three Core Web Vitals benchmarks evaluated by Google at the 75th percentile of real visits.
The three Core Web Vitals benchmarks evaluated by Google at the 75th percentile of real visits.

To fix Core Web Vitals, find failing pages in Google Search Console. Test those templates in PageSpeed Insights, and patch the metric hurting your score. Preload hero images to drop Largest Contentful Paint under 2.5 seconds. Add width and height tags to images to stop Cumulative Layout Shift. Cut heavy JavaScript so Interaction to Next Paint stays under 200 milliseconds.

Google tests these real-user signals at the 75th percentile of visits over a rolling 28-day window. You do not need to hire an agency. Fixing one shared template will patch dozens of pages at once.

What Are Core Web Vitals and How Does Google Measure Them?

Core Web Vitals track three things: how fast a page loads, how stable it looks, and how fast it answers a click. Google uses these signals to judge page experience.

The three metrics cover distinct user pain points:

  • Largest Contentful Paint (LCP): Measures load speed. It clocks when the largest content block—usually a hero image, video still, or large header—shows up on screen. Aim for 2.5 seconds or less.
  • Cumulative Layout Shift (CLS): Measures visual stability. It tallies sudden page jumps while assets load. Aim for 0.1 or lower.
  • Interaction to Next Paint (INP): Measures page reaction speed. It tracks lag after taps, clicks, and key presses across the whole visit. On March 12, 2024, INP officially replaced First Input Delay (FID). Aim for 200 milliseconds or less.

Google gathers this data through the Chrome User Experience Report (CrUX). CrUX does not test your site on fast office Wi-Fi. It logs real people on slow phones and spotty networks. A page passes only when 75 percent of visits clear the target bar over a rolling 28-day window. When you open PageSpeed Insights, check the real-world field data card at the top first. Lab tests at the bottom are just estimates.

Where to Run a Core Web Vitals Audit in Google Search Console

Google Search Console gives you the fastest core web vitals audit for your full site. One-off tests show single pages, but Search Console groups broken URLs by template so you can fix hundreds of pages in one go.

Follow these steps to pull your failing pages:

  1. Open Google Search Console and pick your property.
  2. Find Experience in the left sidebar and click Core Web Vitals.
  3. Click the Mobile report. Google uses mobile-first indexing, and phone users have weaker chips and slower connections.
  4. Review the status bars: "Poor", "Need improvement", or "Good". Scroll down to the Why URLs aren't considered good table.
  5. Click an error row, like "LCP issue: longer than 2.5s (mobile)" or "CLS issue: more than 0.1 (mobile)".
  6. Check the sample URLs. Search Console groups pages that share a layout. Fixing the main template fixes every page in that bucket.
  7. Copy one URL from the list and paste it into PageSpeed Insights. That shows the exact code blocks causing trouble.

If you run an online shop or blog with hundreds of pages, run Screaming Frog SEO Spider's free tier (up to 500 URLs) with Search Console. It crawls server response times and flags heavy image assets right away.

Screenshot of the Google Search Console Core Web Vitals mobile dashboard highlighting URL status groupings and example issues.
Search Console groups failing URLs by shared template issues across your site.

How to Improve Largest Contentful Paint (LCP) Under 2.5 Seconds

Largest Contentful Paint clocks when the main piece of content appears on screen. On a blog post, this is usually the top photo or the main H1 title. On a product page, it is the hero photo. Slow server response times (Time to First Byte / TTFB), render-blocking CSS, and giant images cause most LCP failures.

### The One-Hour Quick Win: Stop Lazy Loading the Hero Image Many themes and page builders stick loading="lazy" on every image automatically. That is a mistake for top banners. When you lazy-load an image at the top of the screen, the browser waits until it finishes building the whole page layout before asking for the file. That adds one to two seconds to your LCP score.

Right-click your hero image, hit Inspect, and check the code. If the tag says loading="lazy", delete that attribute.

### Concrete Before-and-After Code Fix Tell the browser to load your top image early:

Before (Poor LCP): ``html <!-- Buried deep in HTML body, delayed download --> <img src="/images/hero-banner.jpg" loading="lazy" alt="Main workshop"> ``

After (Fast LCP): Add a preload tag inside <head>, and place fetchpriority="high" on the image itself: ``html <head> <link rel="preload" as="image" href="/images/hero-banner.webp" fetchpriority="high"> </head> <body> <img src="/images/hero-banner.webp" fetchpriority="high" width="1200" height="630" alt="Main workshop"> </body> ``

Convert old PNG and JPEG banners to WebP or AVIF files. That cuts file size by 60 to 80 percent without hurting image quality. That step alone helps your LCP beat the 2.5-second mark on mobile phones.

How to Fix Cumulative Layout Shift (CLS) Layout Jumps

Cumulative Layout Shift tracks page jumps. A shift happens when an element suddenly moves because another piece of content loaded late above it. Readers hate this because it makes text jump while they read and causes misclicks on buttons.

Three things cause almost all layout shifts:

  • Images and embeds without set dimensions
  • Banners and pop-ups injected after load
  • Custom web fonts popping in late and shifting text width

### Concrete Before-and-After Code Fix: Image Dimensions When a browser sees an image tag without width and height attributes, it gives the box zero pixels of height. Once the file finishes downloading, the image expands instantly, shoving the rest of the text down the screen.

Before (Causes Layout Shifts): ``html <img src="/uploads/review-author.jpg" alt="Customer review"> ``

After (Zero Layout Shift): ``html <img src="/uploads/review-author.jpg" width="400" height="300" alt="Customer review"> ``

Browsers use the HTML width and height values to reserve the right space before the image downloads. That holds an empty box on screen so text never jumps when the graphic appears.

For responsive ads or dynamic newsletter blocks, wrap the embed in a CSS container that sets a minimum height:

``css .banner-ad-container { min-height: 250px; width: 100%; } ``

If custom fonts cause words to jump when they load, add font-display: swap; inside your CSS @font-face rule. That matches system fallback fonts closely while the custom file downloads.

Before and after diagram showing an image loading without dimensions pushing text down compared to an image with reserved dimensions loading cleanly.
Adding explicit width and height dimensions reserves layout space and prevents unexpected content shifts.

How to Fix INP Bottlenecks on Real User Clicks

Interaction to Next Paint tracks click delay. While LCP measures load speed, INP clocks the gap between a visitor tapping a screen and the browser showing the visual result. Any pause past 200 milliseconds feels broken and laggy.

Heavy JavaScript causes almost all INP failures. When third-party tracking scripts, chat widgets, and complex themes hog the browser's main thread, the browser cannot run your visitor's tap right away.

You can fix INP without rebuilding your site from scratch:

  1. Cut Third-Party Code: Open PageSpeed Insights and check "Reduce the impact of third-party code". Delete old analytics tags, duplicate pixels, and chat widgets from pages where readers never use them.
  2. Defer JavaScript: Add the defer tag to scripts that do not control your initial page layout. That forces them to wait until the browser parses the HTML.
  3. Break Up Long Tasks: A long task is any script that freezes the main thread for over 50 milliseconds. Split big tasks using setTimeout() so the browser can slip user clicks between background jobs.

```javascript // Before: A continuous loop that blocks clicks function processLargeData(items) { items.forEach(item => doHeavyWork(item)); }

// After: Yielding to the browser main thread async function processLargeData(items) { for (const item of items) { doHeavyWork(item); await new Promise(resolve => setTimeout(resolve, 0)); } } ```

Stripping unused plugins and trackers is the fastest way to drop your INP below the 200-millisecond limit.

Which Speed and Ranking Myths Can You Safely Disregard?

Page speed advice is full of bad tips that waste hours of dev time.

Myth 1: You need a 100/100 score in PageSpeed Insights to rank. Google does not demand a perfect lab score. Ranking systems look at field data from real Chrome users at the 75th percentile. If your field data passes LCP, CLS, and INP, you pass Core Web Vitals. It does not matter if a throttled lab run reports 78/100. Myth 2: Passing Core Web Vitals guarantees top rankings. Page speed works as a tiebreaker between similar pages. Google Search Central guidance makes it clear: relevance, depth, and user intent drive rankings. A fast page with thin copy will not rank. Myth 3: The keywords meta tag helps speed or rankings. Google Search documentation confirmed on December 10, 2025, that Google ignores <meta name="keywords"> completely. Do not waste time adding or editing this tag. Myth 4: Long content hurts page speed. Word count does not hurt speed, nor is it a ranking factor. Text HTML downloads in tiny fractions of a second. Oversized images, video players, and third-party trackers slow down sites, not words.

What Does Your Core Web Vitals Fix Checklist Look Like?

Use this table to check and fix your site templates:

Focus AreaWhat to CheckWhat to FixTarget
Search Console AuditFind broken URL groupsOpen Mobile tab in GSC; find shared layoutsZero "Poor" URLs
LCP (Speed)Hero image and TTFBPreload hero banner; set fetchpriority="high"; use WebP≤ 2.5 seconds
CLS (Stability)Layout shiftsAdd width and height to all <img> tags; set container min-height≤ 0.1 score
INP (Response)JavaScript delaysDefer scripts; remove dead plugins and tracking tags≤ 200 milliseconds
Check ResultsField data updateClick "Validate Fix" in Search Console; watch CrUX data over 28 days75% of visits pass

Test your fixed pages in PageSpeed Insights right away to check lab metrics. Then click Validate Fix in Search Console so Google starts its 28-day tracking run.

Frequently asked questions

How does Interaction to Next Paint (INP) differ from First Input Delay (FID)?

First Input Delay only timed the very first tap or click when a user landed on a page. Interaction to Next Paint tracks all taps, clicks, and key presses across the full visit. It then reports the worst delay.

What is the simplest way for a non-coder to fix failing Core Web Vitals?

Shrink your images with a compression tool and save them as WebP files. Make sure every image has width and height values set. Then, turn off extra plugins that load slow scripts across your site.

How long does it take for Google to reflect changes after updating a page?

Search Console needs up to 28 days to show your new scores. Google relies on real user data gathered in CrUX over a rolling four-week window. The report updates slowly as fresh visit data replaces old records.

Why do my PageSpeed Insights scores differ from Google Search Console?

Search Console shows 28-day field data from real phone and desktop visits. PageSpeed Insights shows that same field data at the top, but it also runs a single lab test at the bottom. Lab scores change with server load and simulated network speeds.

Focus on Real Visitors Instead of Score Chasing

Fixing Core Web Vitals is not about chasing perfect lab scores. It is about removing lag and page jumps for real people. Start with your main templates in Google Search Console. Set image sizes, preload your top banner, and cut slow tracking scripts. Once 75 percent of visits pass these real-world tests, Google and your readers will see your site as fast and smooth.

Sources

Fix Core Web Vitals: Step-by-Step Guide for Beginners · Meridian Digital