Loadzen

← All articles

Core Web Vitals7 min read

How to Fix 'Core Web Vitals Assessment: Failed' in Google Search Console

Seeing a 'Core Web Vitals assessment: Failed' status in Google Search Console? Here is what it means, which metrics are causing it, and how to fix them.

What does "Core Web Vitals assessment: Failed" mean?

In Google Search Console, the Core Web Vitals report shows a status for each group of URLs on your site. The statuses are:

  • Good — all three Core Web Vitals (LCP, INP, CLS) pass for the majority of real visits
  • Needs Improvement — one or more metrics are in the amber range
  • Failed — one or more metrics are in the poor range for a significant number of real visits
  • "Failed" does not mean your site is penalised. It means Google has collected enough real-user data (field data) to determine that visitors are experiencing poor performance on those URLs. Google uses this assessment as a ranking signal, so a Failed status can suppress your organic rankings.


    Which metric is causing the failure?

    The first step is identifying which metric is failing. In Search Console:

    1. Go to Experience > Core Web Vitals

    2. Click Open Report under Desktop or Mobile (check both)

    3. Click on any URL group labelled "Failed"

    4. Look at which metric is highlighted as Poor

    You will see one of three culprits:

    |--------|-----------------|----------------|

    Fix the failing metric first. There is no benefit to improving a Good metric while a Poor one is dragging down the assessment.


    How to fix a failing LCP

    LCP (Largest Contentful Paint) fails most often because of:

    Slow server response (TTFB). If your server takes more than 600ms to respond, everything downstream is delayed. Fix: enable server-side caching, add a CDN, or upgrade hosting.

    Unoptimised hero image. A large JPEG or PNG hero image loaded without priority signals is the most common LCP failure cause. Fix: convert to WebP, add fetchpriority="high" to the hero , and remove loading="lazy" from above-the-fold images.

    Render-blocking scripts. JavaScript that loads before the browser can discover the LCP image delays it even if the image itself is small. Fix: defer non-critical scripts, inline critical CSS, and remove unused plugins.


    How to fix a failing INP

    INP (Interaction to Next Paint) replaced FID in March 2024. It measures how quickly the page responds to clicks, taps, and key presses.

    INP failures are almost always caused by heavy JavaScript running on the main thread:

    Too much JavaScript executing during interactions. Analytics, chat widgets, and tracking scripts often fire on click events, blocking the response. Fix: audit event listeners with Chrome DevTools' Performance panel, defer non-essential scripts, and lazy-load third-party widgets.

    Long tasks blocking the main thread. Tasks over 50ms on the main thread delay any interaction response. Fix: break up long JavaScript tasks, use web workers for expensive calculations, and avoid synchronous XHR calls.


    How to fix a failing CLS

    CLS (Cumulative Layout Shift) fails when elements move around as the page loads — images without dimensions, fonts swapping in, or banners injecting above existing content.

    Images without width and height attributes. The browser cannot reserve space for an image if it does not know the dimensions. Fix: always set width and height on every element.

    Web fonts causing text to shift. Custom fonts that load after the fallback font is displayed cause a layout shift when they swap in. Fix: use font-display: swap with size-adjust CSS to match the fallback font dimensions.

    Dynamically injected content above existing content. Cookie banners, promotional bars, and ad slots that load after the page renders push everything below them down. Fix: reserve space for these elements with a fixed-height container before they load.


    Why is Search Console showing "Failed" when PageSpeed Insights shows a good score?

    This is the most common point of confusion.

    Search Console uses field data — real measurements from actual visitors collected by the Chrome User Experience Report (CrUX). PageSpeed Insights uses both field data (when available) and lab data — a simulated test run from a single location.

    If your lab score is good but field data shows Failed, it means:

  • Real visitors are on slower connections or devices than the lab simulation assumes
  • A specific page type (product pages, checkout) is slow even if the homepage scores well
  • A third-party script loads differently in the real world than in a controlled test
  • Fix: focus on field data. Run CrUX queries on your specific URLs, use Search Console's URL inspection tool, and test on real mobile devices rather than relying solely on PageSpeed Insights.


    How long does it take for Search Console to update after a fix?

    Search Console's Core Web Vitals report updates on a 28-day rolling window of field data. After deploying a fix, you need to wait 28 days for the new data to fully replace the old data.

    You can track progress earlier by:

  • Checking PageSpeed Insights for the lab score (updates immediately)
  • Using the CrUX History API to see weekly field data trends
  • Running Loadzen to get a real-time audit of the affected pages
  • A status will not change from Failed to Needs Improvement or Good until the majority of measured visits in the 28-day window meet the threshold — not just the most recent visits.

    Related guide

    Core Web Vitals Fix Guide

    Check your own site

    Run a free speed check with Loadzen and get a prioritized fix plan for your specific platform.

    Run free speed check