Speed test
Website Speed Test
Core Web Vitals for mobile and desktop, from Google Lighthouse and real Chrome users, plus server response time measured separately — the number Google does not report.
What This Tool Does
This test combines two sources that answer different questions, and keeps them visibly separate because conflating them is how speed tools mislead people.
Google’s PageSpeed Insights API supplies the Core Web Vitals. That includes Lighthouse lab data — one simulated load on a throttled connection — and Chrome User Experience Report field data, which is the 75th percentile across real Chrome users over the previous 28 days. These are Google’s own numbers, unmodified. There would be no credibility in substituting our own estimate of a metric Google defines and measures.
Our own probes supply server response time, measured independently of Google. This is the number that maps most directly to hosting quality, because it is time spent before any page content is involved.
Probes run from several regions at once, which is the piece PageSpeed Insights does not provide: it reports one server-response figure from one location, and that cannot separate a slow server from a distant one. Seeing the spread between regions makes the distinction visible.
Both halves are reported independently. If Google’s API is unavailable, the server timing is still shown and the Core Web Vitals section says it was not measured — it is never filled in with an estimate.
How to Read Your Results
Server response time
How long the server takes to send the first byte. Everything else on the page waits behind this, which is why it matters out of proportion to its size.
Lighthouse flags anything above 600 ms; Google’s threshold for real users is 800 ms. Both are shown so you can see which standard a figure is being judged against.
The spread between regions is as informative as the median. Uniformly high means the server or application is slow for everyone. A large gap between the nearest and furthest region means requests are travelling to a single origin, and a CDN would close most of it. Where the median passes but one region does not, the result is flagged as a warning rather than a pass — a median can hide a region where a quarter of your visitors are waiting.
Largest Contentful Paint
When the largest element in the viewport — usually a hero image or headline — finishes rendering. Google’s threshold is 2.5 seconds, and above 4 seconds is poor.
This is the metric users experience as “the page is slow”. The usual causes are a large unoptimised image, a slow server response delaying everything behind it, or render-blocking CSS and fonts.
Cumulative Layout Shift
How much content moves around while loading, as a unitless score. 0.1 or below is good, above 0.25 is poor.
High CLS is what makes someone tap the wrong thing because a button moved. It is almost always images or ad slots without reserved dimensions, or a web font swapping in and re-flowing the text.
Total Blocking Time and Interaction to Next Paint
Two views of the same problem: JavaScript occupying the main thread so the page cannot respond. TBT is the lab measure — 200 ms or less is good. INP is the field measure and the actual Core Web Vital, with a 200 ms threshold.
During blocked time the page looks ready but ignores taps, which users read as broken rather than slow. Third-party scripts are usually the largest contributor.
Lab data versus field data
The most important distinction on this page. Lab is one simulated load on a throttled connection — reproducible, available for any URL, and useful for diagnosis because it is repeatable. Field is what real Chrome users actually experienced over 28 days.
Google ranks on field data. When the two disagree, the field data is the one that counts, and disagreement is normal rather than an error: a simulation on a mid-range phone is not a description of your actual audience, who may be on faster devices, slower networks, or a different continent.
Field data is missing for most sites, because Google only reports it where there is enough traffic to anonymise. That is stated plainly when it happens rather than quietly filled in with the lab numbers.
Common Problems and Fixes
Server response time is over 600 ms
Work through the cheap fixes before considering hosting. Enable a page cache so repeat requests are not regenerated. Check for slow database queries — on a content management system this is usually a plugin doing work on every request. Put a CDN in front of the origin, which fixes the distance component entirely.
Hosting is the answer when responses are slow even when cached and static, or when every region is uniformly slow with no distance pattern.
LCP is above 2.5 seconds
Identify the element first — Lighthouse names it. If it is an image, serve it in a modern format, size it for the viewport it appears in, and preload it so discovery is not delayed. If it is text, the culprit is usually a web font blocking render; font-display: swap and preloading the font file address it.
If server response time is also high, fix that first. LCP cannot be faster than the time it takes to get the first byte.
CLS is above 0.1
Set explicit width and height on every image and video so the browser reserves the space before the file arrives. Reserve space for ad slots and embeds. Avoid inserting banners or notices above existing content after load.
Total Blocking Time is high
Audit third-party scripts, which are usually the majority. Load analytics, chat widgets and tag managers with async or defer. Remove anything nobody looks at — abandoned tracking scripts accumulate quietly and cost real time on every load.
Lab and field data disagree
Expected, not a fault. Field data is the 75th percentile of real visits over 28 days; lab data is a single simulated run right now. A recent improvement will appear in the lab immediately and take weeks to move the field figures.
Trust the field data for judging where you stand, and the lab data for diagnosing what to change.
What This Tool Cannot Tell You
- It tests one URL, not your site. Core Web Vitals are per page. A fast homepage says nothing about a heavy product page.
- Lab numbers vary between runs. A single run is a sample. Do not read a few points of score movement as a change.
- Field data is unavailable for most sites, and where present may describe the whole origin rather than the specific URL. The transcript says which.
- It cannot see logged-in or interactive experiences. Only what a public, unauthenticated visitor gets is measured.
- Sites blocking automated requests will block this. Our probes identify themselves honestly rather than impersonating a browser, so some servers will refuse them.
Frequently Asked Questions
Why does this show different numbers each time I run it?
Lighthouse simulates one page load on a throttled connection, and any single run is affected by what the server was doing at that moment, network conditions, and third-party scripts that vary between loads. Variation of a few points in the score is normal and does not mean anything changed.
This is why the real-user field data matters more. It is the 75th percentile across 28 days of actual visits, so it does not move on a single unlucky run. If lab and field disagree, trust the field data.
How is this different from running PageSpeed Insights directly?
The Lighthouse and Chrome User Experience Report numbers are identical — they come from Google's API, and there would be no point in us producing our own version of them.
What Google does not give you is server response time from more than one place. PSI reports one figure from one location, which cannot distinguish a server that is genuinely slow from one that is simply far away from wherever Google measured. That is the measurement this tool adds, and it is the one that maps directly to hosting quality.
What is a good score?
90 or above is good, 50 to 89 needs improvement, below 50 is poor. But the score is a weighted blend of the underlying metrics, and chasing it directly is a mistake.
The metrics are the actionable numbers. A site with a mediocre score but passing Core Web Vitals in the field is in better shape than one with a good lab score and failing field data, because the field data is what Google actually uses for ranking.
My site says no real-user data is available. Is something wrong?
No. Google's Chrome User Experience Report only reports on pages with enough real Chrome traffic to anonymise the data, which is roughly a few thousand visits a month. Most sites have none, and that is the normal state rather than a fault.
The lab measurements are still valid. They are a simulation rather than a record of what visitors experienced, which is worth remembering when interpreting them.
Does server response time mean I need better hosting?
Not necessarily, and it is worth ruling out the free fixes first. High response time is usually the application rather than the hardware: uncached database queries, a heavy content management system with no page cache, or a plugin doing work on every request.
A caching layer or a CDN in front of the origin resolves most cases without changing host. Hosting is the answer when the server is slow even for cached and static responses, or when response times are uniformly high across every region.
Why is mobile so much slower than desktop?
The mobile test deliberately simulates a mid-range phone on a throttled connection, because that is what a large share of real visitors use. Desktop simulates a faster machine on a better connection.
Google uses the mobile data for mobile search ranking, which is most search traffic. If you only look at one, look at mobile.
Does a faster site actually improve search ranking?
Core Web Vitals are a confirmed ranking signal, but a small one relative to relevance and content quality. Making a slow site fast will not outrank a better-matching result.
The stronger argument is behavioural rather than algorithmic. Slow pages lose visitors before they see anything, and that shows up in conversions long before it shows up in rankings.
Are results cached?
Yes, for six hours, and the transcript states the age of what you are looking at. A Lighthouse run is expensive for Google to perform and slow for you to wait through, so repeating an identical test within that window returns the stored result.
Mobile and desktop are cached separately, because they are genuinely different measurements.