HelloSEOTools

Page Speed and Core Web Vitals Checker

Enter a URL to see how fast it loads for real Chrome users and in a Lighthouse lab test. You get the Core Web Vitals with a plain Good, Needs improvement, or Poor rating, and the fixes that would save the most time.

Test as

The URL is sent to Google PageSpeed Insights, which loads the page from Google's servers; we do not fetch your page ourselves. Public hostnames only. The lab test takes 20 to 40 seconds. Results are cached for 10 minutes, and each visitor can run 20 tests per hour.

Field data vs lab data

Field data ("Real-user data" above) comes from the Chrome UX Report: real visitors on real phones and computers over the last 28 days. Each number is the 75th percentile, so three out of four visits were at least that fast. This is the data Google uses to judge Core Web Vitals.

Lab data ("Lab test" above) comes from one Lighthouse run on Google's servers using a simulated device and network. It can test any public page, even one with no visitors, and it explains why a page is slow. It does not measure INP, because that needs a real person clicking or typing; Total Blocking Time is the closest lab signal.

When the two disagree, trust field data for how visitors experience the page, and use lab data to find what to fix.

What the thresholds mean

Google rates each Core Web Vital at the 75th percentile of page loads:

MetricGood / Needs improvement / Poor
Largest Contentful Paint (LCP): when the main content appears2.5 s or less / up to 4 s / over 4 s
Interaction to Next Paint (INP): how quickly the page responds to taps, clicks, and typing200 ms or less / up to 500 ms / over 500 ms
Cumulative Layout Shift (CLS): how much the layout jumps while loading0.1 or less / up to 0.25 / over 0.25

First Contentful Paint (FCP) and Time to First Byte (TTFB) are shown as supporting metrics. They help explain a slow LCP but are not Core Web Vitals themselves. The Lighthouse performance score is a weighted mix of lab metrics: 90 to 100 is good, 50 to 89 needs improvement, under 50 is poor.

Sources: Google Search Central: Core Web Vitals and web.dev: Web Vitals.

Limitations

Frequently asked questions

What is the difference between field data and lab data?
Field data comes from real visitors using Chrome over the last 28 days, collected in the Chrome UX Report. It reflects real devices and networks and is what Google uses for Core Web Vitals. Lab data comes from one Lighthouse test that loads the page on a simulated device and network. Lab data is useful for finding causes and testing fixes, but it is one sample, not your visitors' experience.
Why does my page have no real-user data?
The Chrome UX Report only publishes data for pages and sites with enough Chrome visitors who share usage statistics. New pages and low-traffic sites often do not qualify. When the page itself has too little data but the whole site has enough, Google shows site-wide (origin) data instead, and this tool labels it that way. No field data is not a failing grade; use the lab test to work on speed.
Why do my scores change every time I run the test?
Each lab test is a single page load. Server response time, ads, third-party scripts, and network conditions on Google's test machines vary between runs, so the score and timings move a few points. Run the test more than once and look at the trend. Field data changes slowly because it covers 28 days of visits.
Does page speed affect Google rankings?
Google says Core Web Vitals are used by its ranking systems as part of page experience, but that relevant, helpful content matters more. A faster page will not outrank a much more relevant one. Speed still affects whether visitors stay, so it is worth fixing the largest problems first.

API

The same result is available as JSON, free, no key required, cached for 10 minutes (add &fresh=1 to bypass the cache), limited to 20 tests per hour per IP:

GET https://helloseotools.com/api/pagespeed?url=https://example.com/&strategy=mobile

Response: { ok, input, strategy, finalUrl, fetchTime, lighthouseVersion, field: { overall_category, originFallback, metrics: { LCP, INP, CLS, FCP, TTFB } } | null, lab: { performanceScore, metrics: { LCP, CLS, TBT, SI, FCP, TTI } } | null, opportunities[], diagnostics[] }. Field categories are GOOD, NEEDS_IMPROVEMENT, or POOR. Errors return { ok: false, error }.

Related tools