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.
Multi-region probing is not currently enabled, so these measurements come from a single location. That is still a real measurement and it is labelled as one vantage point in every result — but it cannot yet distinguish a slow server from a distant one, which is what the multi-region version is for. Results say plainly which kind of measurement produced them.
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.
This figure is measured from one location, so it reflects the distance between our server and yours as well as the server’s own speed. A visitor on another continent will see a slower number.
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.
- Server timing comes from one location. Multi-region probing is built but not currently switched on, so the figure includes the distance from our server to yours and cannot separate a slow origin from a distant one.
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.