Performance Auditor — fetches the audited URL five times, two seconds apart, measures how long the server takes to send the first byte of each answer and judges the average against the web.dev targets: 800 ms or less is good, more than 1800 ms is poor.
First paint
Nothing renders until the first byte arrives, so TTFB is added to every other speed metric of the page.
Standards
Follows the web.dev Time to First Byte guidance: good up to 800 ms, poor above 1800 ms.
How it works
- Sample — sends a
GETto the audited URL as 37AuditsBot five times, two seconds apart, downloading at most one byte of each body. A blocked request ends the audit with590. - Measure — records, for every sample, the time from sending the request (of the last redirect hop) until the response arrived.
- Verify — a sample that cannot be fetched (timeout, DNS or TLS failure, HTTP 4xx/5xx other than a block, an empty response, or an interruption between samples) ends the audit with
500: the measurement is incomplete, which is not a verdict on the site. - Summarize — computes the integer average, the fastest and the slowest sample; all samples are kept in the check data (
ttfbMs,minTtfbMs,maxTtfbMs,numberOfTests,allMeasurements). - Rules — an average above 1800 ms fails (
400); an average above 800 ms but not above 1800 ms warns (300). - Aggregate — FAIL wins over WARNING; an average of 800 ms or less is
SUCCESS(200).
What it audits
Every row maps to onecheckRule* method and one CheckCode, in the order the auditor runs them. CheckCode suffixes use status ranges: 200 success, 300–399 warning, 400–499 fail, 500–599 error.
Output documentation
Risks and considerations
Why TTFB matters
- The browser cannot paint anything before the first byte arrives, so every millisecond of TTFB is added to First Contentful Paint and Largest Contentful Paint, two of the metrics search engines use to rank pages.
- Visitors on slow mobile connections feel a slow server twice: once waiting for the HTML and again waiting for the assets it references.
What drives the number
- Server-side work dominates: uncached database queries, heavy templating, slow third-party calls made during rendering, or an undersized host.
- Network distance adds up: a CDN or an edge cache close to your visitors removes the round trips to the origin.
- Redirect chains count: the measurement covers the last hop only, but every earlier hop delays the visitor before it.
How the measurement is taken
- Five samples two seconds apart smooth out a single slow answer; the verdict uses the average, and the fastest and slowest samples are reported with it.
- Requests come from the 37 Audits infrastructure, so the absolute value differs from what a visitor in another region sees. Treat the trend across audits as the signal, not a single run.
- The first sample may hit a cold cache; later samples usually show the cached answer. A large gap between
minTtfbMsandmaxTtfbMspoints at caching that only works part of the time.
What this auditor does not check
- Only the audited URL is measured; other pages of the site, and the assets the page loads, may be slower.
- It does not measure how long the page takes to render in a browser; the Lighthouse Performance auditor covers the lab Core Web Vitals.