Technical SEO
Core Web Vitals, crawlability, XML sitemaps and mobile-first indexing explained.
Read guideCore Web Vitals are Google's real-world user experience metrics and a confirmed ranking factor. This guide explains what each metric measures, what good scores look like, and exactly how to fix every common failure case.
Core Web Vitals (CWV) are a set of specific, quantifiable metrics Google uses to measure real-world user experience on web pages. They became an official ranking factor as part of the Page Experience update and Google uses real Chrome user data (the Chrome UX Report / CrUX dataset) to classify each page's performance. Pages scoring "Good" on all three Core Web Vitals have a confirmed ranking advantage in competitive SERPs where content quality is otherwise comparable. More practically, pages with poor CWV scores have higher bounce rates and lower conversion rates — fixing them improves both rankings and commercial performance simultaneously.
LCP measures how long it takes for the largest visible element on a page to fully load and render from the user's perspective. This is typically a hero image, a large heading, or a video thumbnail — whatever is the biggest element visible in the initial viewport. LCP is widely considered the most important Core Web Vital because it most directly represents perceived loading speed.
Good: Under 2.5 seconds • Needs Improvement: 2.5–4.0 seconds • Poor: Over 4.0 seconds
If your LCP element is an image (the most common case), optimise it: compress to WebP format, serve at the correct display dimensions, and add a <link rel="preload" as="image"> tag in the head to prioritise its loading. Never apply lazy loading to the LCP image — it will delay loading by definition. These combined changes often improve LCP by 1–2 seconds alone.
A slow server response time delays the entire page load. Target TTFB under 800ms. Improvements: upgrade to faster hosting (managed WordPress hosting like Kinsta or WP Engine have faster TTFB than shared hosting), implement full-page caching (WP Rocket, W3 Total Cache), use a CDN to reduce geographic latency, and optimise database queries if running a CMS. TTFB improvements cascade through all other speed metrics.
CSS and JavaScript that loads synchronously before the main content blocks the browser from rendering the LCP element. Use PageSpeed Insights' "Eliminate render-blocking resources" recommendation to identify offending files. Defer non-critical JavaScript with the async or defer attribute, inline critical CSS, and move non-essential scripts to load after the page is visible.
INP measures how responsive a page is to user interactions — clicks, taps, and keyboard inputs. Specifically, it measures the time from when a user interacts with the page to when the browser renders the next visual update in response. INP replaced FID (First Input Delay) as an official Core Web Vital in March 2024 because it captures the full interaction experience rather than just the first interaction.
Good: Under 200ms • Needs Improvement: 200–500ms • Poor: Over 500ms
Poor INP is almost always caused by excessive JavaScript execution on the main thread. The main thread is where the browser handles both JavaScript execution and rendering — when JavaScript monopolises it, user interactions must wait. Fixes: break up long tasks (>50ms) into smaller asynchronous chunks using requestIdleCallback or setTimeout, remove or defer unnecessary third-party scripts (chat widgets, analytics, ad networks are frequent offenders), reduce the total amount of JavaScript your site loads, and avoid synchronous DOM updates triggered by user interactions. In React and similar frameworks, use code splitting and lazy component loading to reduce initial JavaScript bundle sizes.
CLS measures visual stability — how much the page content shifts unexpectedly during or after loading. When elements shift, users may click the wrong thing or lose their reading position, creating a frustrating experience. The CLS score is a sum of all unexpected layout shifts throughout the page's lifespan, weighted by the fraction of the viewport affected and the distance elements moved.
Good: Under 0.1 • Needs Improvement: 0.1–0.25 • Poor: Over 0.25
<img> tag.min-height to reserve the expected space before the ad loads.font-display: optional or preload web fonts: Web fonts that load after text is displayed cause a flash of unstyled text (FOUT) and layout shift as text reflows to the new font metrics. Preloading your font files or using font-display: optional prevents this.| Tool | Data Type | Best For |
|---|---|---|
| PageSpeed Insights | Field (real user) + Lab | URL-level diagnosis with specific recommendations |
| Google Search Console CWV Report | Field (28-day real user data) | Site-wide overview, identifying worst-performing URL groups |
| Chrome DevTools Lighthouse | Lab (simulated) | Development testing, before-and-after validation of fixes |
| CrUX Dashboard (Looker Studio) | Field (monthly trend) | Tracking improvement over time with historical context |
| WebPageTest.org | Lab (detailed) | Advanced waterfall analysis for complex performance issues |
Field data (real user measurements from actual Chrome users) is what Google uses for ranking. Lab data (simulated measurements from tools) is useful for development and testing but does not directly reflect Google's view of your page. Always check field data in Google Search Console and PageSpeed Insights' "Discover what your real users are experiencing" section to understand your true CWV status for ranking purposes.
Question 1 of 5