QA Ultimate Stack
Measure page speed and Core Web Vitals for the pages that matter
Measure LCP, CLS, FCP, TTFB and load time on saved pages, wait for the page to genuinely settle, repeat runs for a reliable median, and read lab numbers for what they are.
What the Performance Test measures
The Performance Test opens a saved page like a visitor and records Core Web Vitals and overall load time. It is read-only: it never fills or clicks anything.
| Metric | What it tells you | How much to trust it here |
|---|---|---|
| LCP · Largest Contentful Paint | When the main content appeared | Solid lab measurement |
| CLS · Cumulative Layout Shift | How much the layout jumped | Solid lab measurement |
| FCP · First Contentful Paint | When anything first appeared | Solid lab measurement |
| TTFB · Time to First Byte | How fast the server responded | Solid lab measurement |
| FID / INP | How fast the page reacted to input | Rough only: needs a real user |
A grid of LCP, CLS, FCP, TTFB and FID or INP with what each measures and how far to trust it.
Measured until the page actually settles
LCP can keep changing after the browser's load event, when a hero image arrives late. Rather than waiting a fixed time, the test watches LCP until it stops changing and reports the real settle time. A fast page costs under a second of overhead. Max wait (30 seconds by default) is a safety ceiling for pages that never settle, such as those with rotating ads, not a delay every run pays.
Two bar charts of LCP during load: one settling quickly and one with a late change.
Repeat runs and read the median
A single page load is noisy: one slow network moment can double an LCP. Set Runs on a page config to load it several times; the report includes the median for each page. For release comparisons, use the same number of runs every time.
A bar chart of five LCP runs with one noisy run and a median line.
Set up a page
- URL: the page to measure.
- Runs: how many loads (1 by default).
- Max wait: the settle ceiling.
- Interact (optional): one synthetic click after the page settles so INP has something to measure. Treat that number as a sanity check only.
- Check Google tags (optional): also time every Google tag request. See Time every Google tag.
Free keeps one saved page and runs it on its own; Premium runs many pages and brands together and exports the results.
A page config form with URL, five runs, a 30-second max wait, interact off and check Google tags on.
Read results as a comparison, not a verdict
Compare a page with itself: before and after a release, or before and after a new tag. Comparing brands with different designs and hosting tells you little. And remember this is lab data from one controlled load. Real visitors' field data, from devices and networks you don't control, will differ and is slower to react to a change.
A results table of LCP, CLS, TTFB and load time for three pages, one highlighted as slow.
Two panels comparing controlled lab measurements with real-user field data.
Debug a slow number
- High TTFB: the server, hosting, CDN or a redirect chain. Tags don't affect it, because they load after the first byte.
- Late LCP: usually a large hero image, web fonts, or render-blocking scripts in the page head. The settle time shows how late it really was.
- High CLS: a consent banner pushing content down, late ads or embeds, or images without set dimensions.
- Slow after a tagging change: turn on Check Google tags and see how many tag requests fire early in the load.
Change one thing at a time, re-measure with the same number of runs, and compare the medians.
A grid mapping high TTFB, late LCP, high CLS and heavy early tagging to their usual causes.
ODDVX for Windows
From the page to the hit, proved.
Start free with one saved form, one page and one parity check. Premium adds batch runs, exports and scheduled QA.