HTTP status codes fall into five families: 1xx (informational, rare), 2xx (success), 3xx (redirects), 4xx (client errors — broken from the client's request), and 5xx (server errors). For link auditing, the codes that actually matter are a small subset of those — the ones below.
2xx — Success
200
OK — the standard success response
The request succeeded and the response contains the requested content. What you want every link to return.
Watch out for
HTTP 200 returned with empty or "not found" content — see soft 404s. Status code says fine; content says broken.
204
No Content — success but empty body
Used by some APIs after PUT or DELETE. Rare for ordinary web pages; if a content URL returns 204, the server is misconfigured.
3xx — Redirects
301
Moved Permanently — the SEO-safe redirect
The URL has permanently moved to a new location. Search engines update their index and transfer link equity to the new URL.
When to use
Page renames, URL restructures, domain migrations, HTTPS upgrades, canonical-host enforcement. See 301 vs 302.
302
Found — temporary redirect
The URL is temporarily pointing elsewhere. Search engines keep the original URL in the index. Do not transfer link equity.
When to use
Maintenance pages, A/B tests, geo-routing, login flows. Misuse for permanent moves is a major SEO mistake.
307
Temporary Redirect — strict-method version of 302
Behaves like 302 except the request method is preserved (POST stays POST). Used in API contexts more than web.
308
Permanent Redirect — strict-method version of 301
Same SEO meaning as 301; preserves the request method strictly. Increasingly seen in modern frameworks.
4xx — Client Errors (Broken Links)
400
Bad Request
The server couldn't parse the request — usually malformed URL, oversized headers, or invalid content. For link audits, treat as broken; the URL needs fixing.
401
Unauthorised — authentication required
The URL requires authentication. Public-facing pages should never return 401; if a link to one returns this, something is wrong.
If on your site
Check whether the page should be public. If yes, fix the auth requirement. If no, the link shouldn't be in public content.
403
Forbidden — server understood but refuses
The server explicitly refuses to serve the URL. Common when a directory has no index file but directory listing is disabled, or when file permissions are wrong.
If on your site
Check file permissions and directory configuration. 403s on content URLs always indicate misconfiguration.
404
Not Found — the classic broken link
The URL doesn't exist on this server. Search engines will eventually drop the URL from their index after repeated 404s.
Fix options
301 to a relevant replacement; 410 if permanently gone with no replacement; restore the content; or remove the broken link.
410
Gone — permanently removed
Stronger than 404. Tells search engines the URL is gone for good and won't return. Indexes drop the URL faster than for 404.
When to use
Pages you've explicitly retired (e.g. discontinued products, deleted accounts, expired campaigns) and definitely won't bring back. Better than 404 for known-permanent removals.
429
Too Many Requests — rate limited
The server is throttling your client. For link audits this usually means the destination has anti-scraping protection. Try again with a polite delay.
451
Unavailable For Legal Reasons
The URL is blocked due to a legal requirement (court order, DMCA takedown, censorship). Treat as permanently broken from your audit's perspective.
5xx — Server Errors
500
Internal Server Error — generic server failure
The server crashed or hit an unhandled exception. The URL exists; it's just broken right now. Recheck after server is fixed.
If on your site
Check server logs for the underlying error. 500s on production URLs are emergencies — Googlebot will reduce crawl rate if it sees them too often.
502
Bad Gateway — upstream server failed
The proxy/CDN couldn't reach the origin server. Common cause: origin is down, slow, or returning malformed responses to the proxy.
503
Service Unavailable — temporarily down
The server is temporarily unavailable, often due to maintenance or overload. Should include a Retry-After header. Search engines treat brief 503s as transient and will re-crawl later.
When to use
Brief planned maintenance windows. For longer-than-a-day outages, search engines may treat as permanent.
504
Gateway Timeout — proxy timed out waiting for origin
The origin took too long to respond. Same effect as 502 from the visitor's perspective; the underlying problem is performance, not reachability.
Connection-Level Failures (Not HTTP)
DNS
DNS lookup failed
The domain doesn't resolve. Either the domain has expired, the DNS provider is failing, or the link contains a typo.
CONN
Connection refused / timeout
Domain resolves but the server doesn't accept connections. Server may be down, port may be firewalled, or the URL specifies a port nothing's listening on.
SSL
SSL/TLS handshake failed
Certificate expired, hostname mismatch, untrusted issuer, or protocol mismatch. Browsers refuse to load the page. Check at SSL Checker.
The Audit Cheatsheet
For a link audit, the codes you actually need to act on are:
- 200 with empty content — soft 404, fix per our guide.
- 301 — fine, but check it's not part of a redirect chain.
- 302 used for permanent moves — change to 301.
- 404, 410 — broken; fix the link or restore the destination.
- 5xx — server problem; investigate and fix.
- DNS / connection failures — destination is gone or unreachable; treat as broken.
- SSL errors — cert problem on destination; verify with SSL Checker.
Run any URL through Broken Link Finder for an instant report covering all of the above.