The HTTP Status Codes panel breaks down your traffic by response status family (2xx, 3xx, 4xx, 5xx). It's one of the fastest ways to spot problems on your site.
What each family means
| Family | Meaning | Color | Should be |
|---|---|---|---|
| 2xx | Success — request worked | Green | Most of your traffic |
| 3xx | Redirect — visitor was sent to another URL | Blue | Small slice (canonical redirects) |
| 4xx | Client error — usually 404 Not Found | Amber | Small slice |
| 5xx | Server error — your site crashed | Red | Should be 0 or very near 0 |
A healthy distribution
For a typical website:
- 2xx: 90-99% of traffic
- 3xx: 1-5% (canonical redirects from
http://tohttps://, www to non-www) - 4xx: 1-10% (broken links, scanners, missing favicons)
- 5xx: 0-0.1% (occasional server hiccups, rare PHP fatal errors)
If any of these are way out of range, that's a red flag.
Reading the numbers
High 4xx (above 10%)
Common causes:
- Broken internal links — pages on your site link to URLs that no longer exist. Use the Top Pages table to find your most popular 404s and fix them.
- External links — other sites link to URLs that no longer exist on your site. Add 301 redirects to the new locations.
- Bot probes — security scanners hitting
/wp-admin/,/admin/,/.env, etc. These are normal and harmless. - Missing favicon or robots.txt — every page load triggers a request for
/favicon.icoand search engines hit/robots.txt. If those don't exist, you get a 404 for each.
Any 5xx at all
5xx means your server failed to fulfill a request. This is always worth investigating because it means real users saw an error page. Check the Live Logs for the corresponding error.log entries — they'll tell you exactly what crashed.
Common 5xx causes:
- 502 Bad Gateway: PHP-FPM crashed or is overloaded
- 503 Service Unavailable: rate limiter triggered, or PHP-FPM out of workers
- 504 Gateway Timeout: PHP script took longer than
fastcgi_read_timeoutto respond - 500 Internal Server Error: PHP fatal error (uncaught exception, syntax error in deployed code, etc.)
High 3xx (above 10%)
Usually means you have an over-aggressive redirect rule. Common patterns:
- Trailing slash redirects (
/about→/about/) - HTTPS upgrade (
http://→https://) - WWW to non-WWW (or vice-versa)
If a single visitor follows three redirects to load one page, that's three 3xx responses logged. So a noisy 3xx count is usually 2-3 redirect rules layered on top of each other. Worth simplifying.
Status code colours
The dashboard colours each status family for instant visual scanning:
- 2xx: green background, green number
- 3xx: blue background, blue number
- 4xx: amber background, amber number
- 5xx: red background, red number
If you glance at the dashboard and see any red, that's a sign to investigate immediately.
Why grouped instead of exact codes?
The agent stores grouped status codes (2xx, 3xx, etc.) instead of exact codes (200, 301, 404, ...) because:
- The 5 families cover 99% of what hosting customers care about
- Storing grouped counts is much smaller than per-code counts
- The dashboard fits in a clean 5-column grid
If you need exact code counts, query the raw access logs:
awk '{print $9}' /home/user/example.com/logs/access.log | sort | uniq -c | sort -rn
That gives you a count per exact status code.