We hold 39,660 checks, and 98.93% of them carry response code 200. We could publish that as a headline figure — and it would be untrue about the web while the data is entirely true: tools follow the redirect chain and record the final page’s code.
The monitoring data is more honest and more interesting: 22.27% of checks received no HTTP code at all, and code 307 appeared 20,583 times — all from one site. Below: why nobody can measure this statistic, and what to count instead.
We hold two sets of response codes, and they give different pictures — which is itself the answer to the question.
Tool check history: 39,660 records, of which 98.93% are code 200. It reads like a sensation: "the web works almost without errors". In fact it is an artefact of method: our tools follow the redirect chain and record the code of the final page. Every 301 and 302 along the way becomes a 200 at the end.
Monitoring checks: 1,789,058 records, and a different picture. Monitors record what they got, and the distribution becomes meaningful at once:
| What happened | Checks | Share |
|---|---|---|
| No HTTP code at all | 398,481 | 22.27% of all |
| 2xx — success | 1,326,085 | 95.36% of those answering |
| 3xx — redirect | 34,383 | 2.47% |
| 4xx — client error | 23,689 | 1.70% |
| 5xx — server error | 6,420 | 0.46% |
The first row is the most substantive. More than one check in five produced no HTTP code at all: the connection never established, the wait expired, name resolution failed. Such cases never enter "response code" statistics because there is no code — and that is the commonest form of unavailability.
Here is the main reason a "distribution of response codes on the web" cannot be measured. Look at how many distinct sites produced each code:
| Code | Occurrences | Distinct sites |
|---|---|---|
| 200 | 1,326,085 | 104 |
| 307 | 20,583 | 1 |
| 302 | 9,221 | 2 |
| 404 | 8,050 | 3 |
| 403 | 5,575 | 8 |
| 418 | 4,781 | 1 |
| 301 | 4,579 | 6 |
| 500 | 3,652 | 8 |
| 502 | 2,086 | 19 |
| 400 | 2,082 | 1 |
| 429 | 1,141 | 1 |
Code 307 appears twenty thousand times — and all twenty thousand from one site, checked every minute and answering with a redirect every minute. The same holds for 418 and 400.
Computing "the share of code 307 on the web" from this data yields 1.48% — and that would be an entirely invented quantity, reflecting one server’s configuration multiplied by how often it is polled.
The only code with genuinely distributed presence is 502, across nineteen distinct sites. That is the real signal: a gateway failure happens to many a little, rather than to one a lot.
Three mechanisms spoil it independently, and each suffices on its own.
First: following redirects. Any tool behaving like a browser consumes 3xx and shows the final code. Our own check history illustrates it: 98.93% code 200, while the redirects have gone nowhere.
Second: polling frequency. A site checked once a minute produces sixty times more rows than one checked hourly. The distribution ends up weighted by polling interval rather than by number of sites.
Third: sample composition. People monitor what matters and usually works. Abandoned domains and broken sites never enter such a sample — and they are exactly what would produce the 4xx and 5xx.
The conclusion: any publication of "the distribution of response codes on the web" measures the method of measurement rather than the web. We could have published our 98.93% as a headline figure — and it would have been untrue about the web while the data was entirely true.
Quantities that genuinely are measurable and useful on your own data:
To see the codes and chain for your own address, use the redirect checker; for a reference of the values, the response code list.
Q1 2026. Updated quarterly.
Yes, with attribution to Enterno.io.
Free plan — 10 monitors, checks every 5 min, no card required. Upgrade for 1-minute interval and multi-region monitoring.