Core Web Vitals Test
Lab LCP and CLS, plus Total Blocking Time as a lab stand-in for INP, from a real Chromium render.
Runs a real Chromium page load — usually takes 5–15 seconds.
What are Core Web Vitals?
Core Web Vitals are three Google metrics for real-user experience: Largest Contentful Paint (loading, good at 2.5 seconds or less), Interaction to Next Paint (responsiveness, good at 200 ms or less) and Cumulative Layout Shift (visual stability, good at 0.1 or less). Google measures them from Chrome users at the 75th percentile and uses them in its page experience signals.
How to use the Core Web Vitals Test
- Enter the full URL of the page you want to test, for example a product or article page rather than only your homepage.
- The tool loads the page once in a real Chromium browser and records LCP, CLS and Total Blocking Time. This takes 5 to 15 seconds.
- Compare each value with the thresholds below, then fix the worst metric first.
How to read the results
- Passed
- LCP is 2,500 ms or less, CLS is 0.1 or less, and TBT is 200 ms or less in this lab run.
- Needs attention
- LCP is 2,501–4,000 ms, CLS is 0.1–0.25, or TBT is 201–600 ms. Visitors on slower devices will notice.
- Failed
- LCP is over 4,000 ms, CLS is over 0.25, or TBT is over 600 ms.
Why does this test show Total Blocking Time instead of INP?
INP measures the delay after a real person taps, clicks or types, so it cannot be measured in a single automated page load. Total Blocking Time measures how long JavaScript blocked the main thread during load, which is the standard lab stand-in. A high TBT usually means a poor INP. For your real INP, use the Core Web Vitals report in Google Search Console or the field data section of PageSpeed Insights.
How do I fix a slow Largest Contentful Paint?
Find the LCP element (usually the hero image or the main heading). Make sure it is in the HTML the server sends, not inserted later by JavaScript. Serve images at the size they display, in WebP or AVIF, and tell the browser to load the LCP image first. Do not lazy-load it.
<img src="/hero-1200.avif" width="1200" height="600"
alt="Team reviewing an SEO report" fetchpriority="high">import Image from 'next/image';
<Image src="/hero.jpg" width={1200} height={600} alt="Team reviewing an SEO report" priority />How do I fix layout shift (CLS)?
Give every image, video, iframe and ad slot a width and height (or a CSS aspect-ratio) so the browser reserves the space before it loads. Avoid inserting banners above content that is already visible, and load web fonts with font-display: swap plus a matching fallback font.
.ad-slot { min-height: 250px; }
.video-embed { aspect-ratio: 16 / 9; width: 100%; }Frequently asked questions
Why are my results different from PageSpeed Insights or Search Console?
Search Console and the field section of PageSpeed Insights show real-user data from the Chrome UX Report, collected over 28 days. This tool shows one lab run from our server. Lab results vary with the test device, network and server load, so use them to find and debug problems and use field data to judge the outcome.
Do Core Web Vitals affect Google rankings?
They are part of the page experience signals Google uses, but Google says relevance and helpful content matter far more. Good Core Web Vitals will not make a weak page rank, and a strong page can still rank with average scores. They are worth fixing mainly because slow, jumpy pages lose visitors.
Which page should I test?
Test your most important templates: the homepage, a category or listing page, and a typical article or product page. Core Web Vitals are assessed per page and per page group, so one fast homepage does not mean the whole site passes.
Does this test mobile or desktop?
It runs a Chromium page load from our server. For the full mobile and desktop breakdown, with a filmstrip and request waterfall, run the Performance report.
Sources
What this tool checks
Largest Contentful Paint
Lab measurement of Largest Contentful Paint against the Core Web Vitals thresholds (good ≤ 2500ms, poor > 4000ms).
Why it matters: LCP marks when the main content becomes visible. Slow LCP makes the page feel unresponsive. This is a lab measurement from a single automated load — it is not real-user (field) data and will differ from Chrome UX Report values.
If it fails: Optimise the LCP element: serve a right-sized, modern-format image, remove render-blocking resources, and use a fast server/CDN.
Source: web.dev/articles/lcp
Cumulative Layout Shift
Lab measurement of Cumulative Layout Shift against the Core Web Vitals thresholds (good ≤ 0.1, poor > 0.25).
Why it matters: CLS measures unexpected layout movement. High CLS causes mis-taps and a jarring experience. This is a lab measurement from a single automated load — it is not real-user (field) data and will differ from Chrome UX Report values.
If it fails: Set width/height on images and embeds, reserve space for ads, and avoid inserting content above existing content.
Source: web.dev/articles/cls
Total Blocking Time
Lab measurement of Total Blocking Time against the web.dev thresholds (good ≤ 200ms, poor > 600ms).
Why it matters: TBT approximates how long the main thread was blocked during load. It is not a Core Web Vital: it is the usual lab stand-in for Interaction to Next Paint (INP), which needs real user input to measure. This is a lab measurement from a single automated load — it is not real-user (field) data and will differ from Chrome UX Report values.
If it fails: Reduce and defer JavaScript, break up long tasks, and remove unused third-party scripts.
Source: web.dev/articles/tbt
Related tools
Reviewed by Prabath Thalangama · Last updated