← Back to blog

Core Web Vitals: How to Pass Google’s Performance Test (2025 Guide)

Core Web Vitals: How to Pass Google’s Performance Test (2025 Guide)

Core Web Vitals became a confirmed Google ranking signal in 2021. Three years later, the majority of sites I audit are still failing at least one of the three metrics, and in most cases, the same metric: LCP. Largest Contentful Paint measures how quickly the largest visible element loads, and on most WordPress sites, that element is an unoptimised hero image that nobody thought to compress or preload.

The ranking impact of Core Web Vitals is real but contextual. Google uses them as a tiebreaker, when two pages have comparable content quality and authority, the one with better page experience signals ranks higher. For competitive queries where margins are tight, fixing CWV can make a genuine difference. For queries where you have a significant authority advantage or disadvantage over competitors, CWV will not overcome that gap. It is a hygiene factor with genuine ranking consequences at the margin.

The three metrics and what they actually measure

Largest Contentful Paint (LCP) measures the time from page load start to when the largest above-the-fold content element is visible to the user. Good is under 2.5 seconds. Needs improvement is 2.5-4 seconds. Poor is above 4 seconds. On most sites, this is the hero image or the largest heading block. The fix is almost always image-related: compress the image, serve it in WebP format, add a preload link tag in the document head, and ensure it is not lazy-loaded (lazy loading the hero image is one of the most common CWV mistakes I see).

Like this stuff? Get it weekly.

The Wednesday Roundup. SEO and AI search news, tactics and what is changing this week. No fluff.

Subscribe →

Cumulative Layout Shift (CLS) measures visual instability, how much page elements move around after initial load. A button that jumps when a font loads, an image that shifts the page when its dimensions are not specified, an ad that pushes content down. Good is under 0.1. The most common causes: images without explicit width and height attributes, web fonts that cause text to reflow when they load, and embeds (videos, social widgets) that do not have reserved space. Setting explicit dimensions on images and using font-display: swap or optional are the typical fixes.

WORK WITH JAMES

Get a straight answer on your SEO.

No account managers. No generic reports. Direct access to someone who has been doing this for 25 years.

Interaction to Next Paint (INP) replaced First Input Delay in March 2024. It measures responsiveness, specifically how long the browser takes to respond to user interactions (clicks, taps, keyboard input) across the entire page session. Good is under 200ms. The main culprits are heavy JavaScript execution on the main thread, third-party scripts, and complex event handlers. This is the most technically involved metric to fix and often requires a developer.

Field data versus lab data

There are two types of CWV data and they measure different things. Field data (also called CrUX data) comes from real Chrome users visiting your site and is what Google uses for ranking. Lab data comes from tools like PageSpeed Insights simulating a load under controlled conditions.

Field data lives in Google Search Console under the Core Web Vitals report. It shows your actual performance status, Good, Needs Improvement, or Poor, based on the 75th percentile of real user sessions. This is the number that affects your rankings. Lab data from PageSpeed Insights is useful for diagnosing specific issues and testing fixes, but a good lab score does not guarantee a good field score if your real users are on slower connections or lower-powered devices.

One important caveat: field data requires sufficient traffic to generate. New sites or pages with low traffic will show “Insufficient data” in GSC and will not have a CWV status applied to them. In these cases, focus on lab data as a proxy and aim for scores above 90 on PageSpeed Insights for both mobile and desktop.

How to fix LCP, the most common failure

Start by identifying your LCP element. PageSpeed Insights and Chrome DevTools both show you which element is being measured. On most WordPress sites it is the featured image in the hero area. Once you know what it is, the fix follows the same pattern.

Compress the image to the minimum file size that maintains acceptable visual quality. Convert to WebP, this format is supported by all modern browsers and typically delivers 25-35% smaller file sizes at equivalent quality. Add a preload link tag in the document head pointing at the LCP image, this tells the browser to start fetching it before it encounters the image tag in the HTML. And critically, remove any lazy-load attribute from the LCP image itself. Lazy loading is appropriate for below-the-fold images; applying it to the LCP element is a common mistake that directly causes poor LCP scores.

On WordPress with a caching plugin, a CDN, or a performance optimisation plugin, check that these are not automatically adding lazy loading to your hero image. WP Rocket, Imagify, and similar tools have settings that exclude specific images from lazy loading, use them.

CWV and mobile versus desktop

GSC reports CWV separately for mobile and desktop. Google’s ranking systems use mobile-first indexing, which means the mobile CWV score is the one that primarily affects rankings for most sites. Mobile scores are almost always worse than desktop scores, slower connections, lower processing power, and touch-based interfaces all affect the metrics differently.

Fixing CWV on mobile requires testing on actual mobile conditions, not just resizing a browser window. Chrome DevTools’ device emulation mode with throttled network conditions gives a more realistic picture of mobile performance than a desktop PageSpeed test. The most impactful mobile-specific fixes: reduce total page weight significantly (mobile connections are slower), minimise render-blocking scripts, and ensure tap targets are large enough that they do not cause accidental interactions that inflate CLS.


Frequently asked questions

Core Web Vitals are three performance metrics Google uses as a page experience signal: Largest Contentful Paint (how fast the main content loads), Cumulative Layout Shift (how much the page moves around during loading), and Interaction to Next Paint (how quickly the page responds to interaction). They became a ranking factor in 2021 and continue to carry weight as part of the broader page experience assessment.

Google considers LCP of 2.5 seconds or under to be good. Between 2.5 and 4 seconds needs improvement. Above 4 seconds is poor. LCP measures how long it takes for the largest visible element on the page to load, which is usually a hero image or a large heading.

Google Search Console shows your Core Web Vitals data in the Experience section under Core Web Vitals. This uses real-user data (CrUX data) rather than lab data. PageSpeed Insights at developers.google.com gives both lab and field data for individual pages. For the most accurate read, use Search Console data rather than a one-off PageSpeed test.

Yes, but as a tiebreaker rather than a primary signal. For two pages of similar quality and relevance, the one with better page experience signals will tend to rank higher. Very poor Core Web Vitals scores can suppress rankings more meaningfully. Very good scores will not outweigh poor content or weak authority.

The most common causes of slow LCP are large unoptimised images, render-blocking resources, slow server response times, and third-party scripts loading before page content. Start by optimising your largest above-the-fold image: compress it, serve it in WebP format, and use a preload link tag so the browser discovers it earlier.