Speed
Every scan times the pages it checks and each request those pages make. The Speed page shows how that changes from scan to scan, and Regress tells you when part of your site gets slower.
What Regress times
Each page a scan checks is loaded in Regress's browser at desktop size with the cache off, the same way every time. For each checked page Regress keeps:
- Server answers in: How long your server takes to start sending the page.
- First content: When the first text or image appears.
- Main content shows: When the largest text block or image appears.
- Layout shift: How much the page jumps around while it loads.
- Blocking time: How long scripts keep the page from responding.
- Download size: How much the page and everything it loads downloads.
It also keeps each request the page made: when it started, how long it took, how long your server took to answer where the browser can tell, its size and its status. Requests are grouped so the same file or API route counts once, even when its name or id changes, such as main.a1b2c3.js and main.d4e5f6.js, or /api/products/12 and /api/products/13. Stored request addresses keep only the names in their query string, never the values.
Your tests are timed too. Pages they visit don't get a score, but each request your site's own API answers during a test, such as adding to the cart, counts towards that request's trend like the requests of checked pages. Requests that get no answer, including ones Regress stops so it doesn't change anything on your site, aren't counted.
The speed score
Each page gets a score from 0 to 100, built from Lighthouse's desktop scoring curves for first content, main content, blocking time and layout shift. Regress doesn't slow its browser down to imitate a phone and doesn't measure Speed Index, so the score is usually higher than PageSpeed Insights gives the same page. Use it to see change over time, not to compare with other tools.
When Regress says something got slower
Regress watches four things and opens a slowdown when one of them is slower than usual:
- Server time of a kind of page: 1.5 times its usual value and at least 250 ms more
- Main content of a kind of page: 1.5 times its usual value and at least 1 second more
- Download size of a kind of page: 1.25 times its usual size and at least 250 KB more
- One of your site's API requests: 1.5 times its usual time and at least 200 ms more
Usual means the middle of up to ten earlier measurements, taken before the slow stretch (at least five are needed). The new value also has to be clearly outside the normal ups and downs of those measurements, and it has to stay slow on three measurements in a row, or four when a single page or request backs the number. If, across other services' files such as fonts and analytics, the typical one was at least 1.5 times slower than its usual time in the same scan, Regress takes that as a slow moment on its own side and opens nothing.
A slowdown is a warning, not a break. It never fails a test or a GitHub check. It goes into your alerts once, on the scan where it opens, as something that can wait: by default in the daily summary, or straight away if one of your alert rules says so. The Speed page lists it first with a chart that shades the scans since it started. It closes on its own once two measurements in a row are back near the usual value.
Why your visitors see different numbers
Regress's browser runs in a data centre with a fast connection, an empty cache and no browser extensions. Your visitors use phones, slower networks and cached files, so their numbers differ. What carries over best is the change: if your server takes twice as long to answer Regress, your visitors are likely waiting longer too, though caches and their location can soften it.
How long it is kept
Each scan's pages and requests are kept as long as the scan stays in your plan's history. The trend lines on the Speed page cover the last 240 scans.