Since Google's Page Experience update, Core Web Vitals have become a confirmed ranking factor. If your WordPress site scores poorly on LCP, FCP, CLS, or TBT, you're losing both rankings and visitors. The good news: most issues are fixable in an afternoon.

What are Core Web Vitals?

Core Web Vitals are a set of metrics defined by Google that measure real-world user experience across three dimensions: loading performance, interactivity, and visual stability.

LCP — Largest Contentful Paint

What it measures: How long it takes for the largest visible content element (usually a hero image or heading) to render on screen.

Common WordPress culprits: Unoptimized hero images, slow server response time, render-blocking CSS/JS, no CDN.

FCP — First Contentful Paint

What it measures: Time until the first piece of content (text, image, or SVG) appears on screen.

TBT — Total Blocking Time

What it measures: Total time the main thread was blocked long enough to prevent input response. The lab proxy for INP (Interaction to Next Paint).

CLS — Cumulative Layout Shift

What it measures: Visual stability — how much the page layout unexpectedly shifts during loading. Score of 0 is perfect; anything above 0.1 needs attention.

How to diagnose your WordPress site

Use WPStats to get an instant PageSpeed Insights score for your site. You can also use:

Fixing LCP in WordPress

1. Preload your LCP image

Tell the browser to download your hero image immediately by adding a preload hint in your <head>:

<link rel="preload" as="image" href="/wp-content/uploads/hero.webp" fetchpriority="high">

Many themes or page builders can add this via their settings. Alternatively, add it to your theme's functions.php.

2. Use a caching plugin

A good caching plugin dramatically reduces TTFB (server response time), which directly improves LCP. Top options for WordPress:

3. Convert images to WebP

WebP images are 25-35% smaller than JPEG at equivalent quality. WordPress 5.8+ supports WebP natively. Use a plugin like Smush, Imagify, or ShortPixel to convert existing images automatically.

4. Enable a CDN

A Content Delivery Network serves your static assets from a server geographically close to your visitor, dramatically reducing load times globally. Cloudflare (free tier), BunnyCDN, and KeyCDN are popular options that integrate easily with WordPress.

Fixing CLS in WordPress

Layout shifts usually come from images without dimensions, ads injected after load, or web fonts causing text reflow.

1. Always set image dimensions

WordPress does this automatically for images added via the media library. Check for any manually added HTML images missing width and height attributes.

2. Preload critical fonts

Font swapping causes text to reflow and increases CLS. Add font-display: swap and preload your main font:

<link rel="preload" href="/fonts/inter.woff2" as="font" type="font/woff2" crossorigin>

3. Reserve space for ads

If you show ads, always define a fixed container size so the layout doesn't jump when the ad loads.

Fixing TBT in WordPress

High TBT almost always comes from JavaScript. The fix is to defer or remove unnecessary scripts.

Pro tip: The built-in WordPress emoji script makes an extra DNS lookup. Disable it in your caching plugin settings or add this to functions.php: remove_action('wp_head', 'print_emoji_detection_script', 7);

Target scores

Aim for these PageSpeed Insights scores as a baseline:

Check your WordPress Core Web Vitals now

WPStats fetches real PageSpeed Insights data for mobile and desktop instantly.

Analyze your site free