The server was slow to respond
What this check looks for
The home page took noticeably long to start responding. Visitors feel this as the site hanging before anything appears.
Why it matters
Time to first byte gates everything that follows — no image, stylesheet or script can start loading until it arrives. It is also a ranking signal and the metric users notice most on a slow connection.
When the check passes, your report says: “The server started responding promptly”.
What it costs your score
When this check fails it removes 5 points from your HTTP score, before the status, confidence and repeat multipliers are applied. HTTP carries a weight of 7 in the overall score.
It shares the http.reachability family ceiling of 60 points: however many findings that family produces, together they cannot remove more than that from HTTP. One underlying problem showing up in several places is still one problem.
- Severity
- low
- Default confidence
- high
- Status when triggered
- warn
- Deduction
- 5 points
- Family cap
- http.reachability · 60
- Category
- HTTP
- Module
- Http reachability
- Fix owned by
- user
- In the ruleset since
- 2026.09
How to fix it
Find where the time is going before optimising anything.
Time to first byte blocks every other resource on the page.
Split the timing:
curl -o /dev/null -s -w 'dns %{time_namelookup} connect %{time_connect} tls %{time_appconnect} ttfb %{time_starttransfer}\n' https://‹host›/.If TTFB dominates, the application or database is the cause, not the network.
Cache the home page if it is generated per request and does not need to be.
How to confirm it worked
curl -o /dev/null -s -w '%{time_starttransfer}\n' https://‹host›/ — expect under 1s
A named slot like ‹domain› — and the braces left in the configuration below — is filled in with your own values when this rule appears on a report.
Remediation by platform
curl -o /dev/null -s -w 'dns %{time_namelookup}\nconnect %{time_connect}\ntls %{time_appconnect}\nttfb %{time_starttransfer}\n' https://‹host›/Technical detail
The first byte from https://‹host›/ took ‹duration ms›ms; the threshold here is ‹threshold›ms. This is one measurement from one location and includes DNS, TCP, TLS and the server's own processing, so treat it as a signal rather than a benchmark — perf.lab measures this properly.
Standards and references
Test this on your domain
Run the check that produces this finding, on its own, against any domain.