What is a 200 vs 301 vs 404 domain response in hygiene terms?
Still have a question, spotted an error, or have a better explanation or a source we should cite?
When you crawl a domain from an email list, the HTTP status code the server returns tells you whether anyone is still home. It is not a deliverability signal by itself, the mailbox could still accept mail with no website at all, but it is a fast, cheap proxy for whether the domain is being maintained.
Here is what the common codes mean in hygiene terms.
200 OK. The website loaded. That is the baseline good signal. It does not prove the mailbox works, and it does not prove the domain is what it claims to be. A 200 on a parked GoDaddy page is not the same as a 200 on a real business site, which is why you also want to glance at the page content, not just the status. But a 200 from a live site means someone is paying the hosting bill and the domain is alive.
301 Moved Permanently. A permanent redirect. The interpretation depends on where it points. If example.com 301s to www.example.com, that is normal. If a five-person dental practice domain 301s to a CBD store, the domain has almost certainly been dropped, bought at expiration, and recycled. Any addresses you still have on that domain are at best stale and at worst pointing at a new owner who never opted in to your list.
302 Found / 307 Temporary Redirect. Same logic as 301, treated a little more cautiously because the redirect is meant to be temporary. Common on login-walled sites and CDN edges. Do not over-read it.
404 Not Found. The server is up but the path you hit is missing. A 404 on the root of the domain is a strong signal the site is neglected. A 404 on a deeper path while the homepage returns 200 is not interesting and should not change your view of the domain.
410 Gone. Rare but explicit. The owner is telling you the resource is permanently removed. Treat the same as a 404 on the root.
403 Forbidden. Often a bot block, not a hygiene signal. Plenty of healthy enterprise sites 403 anything that does not pass their bot fingerprinting. Do not down-rank a domain on a 403 alone, try a different user agent first.
5xx Server Error. Transient. Recheck in 24 to 48 hours before drawing any conclusion.
Connection refused, NXDOMAIN, timeout. The domain itself is not resolving, or nothing is listening on port 80 or 443. This is the worst signal short of a hard bounce on the mailbox. Combined with no MX record on the domain, you are looking at a dead domain and the addresses are unsendable.
How this fits into the bigger picture: HTTP status is one input. You combine it with MX records, SPF and DKIM presence, blocklist history, and engagement data before you decide whether to keep, monitor, or suppress an address. Read how ISPs detect poor hygiene for the receiver-side view of what they actually watch, and what are silent hygiene issues for the slow-decay patterns that HTTP checks help you catch before they show up as bounces. For the broader frame, see how do you measure list quality.
A 200 alone does not mean the address is safe to send to. A 404 on root, a redirect to an unrelated business, or an NXDOMAIN almost always means it is not.
The canonical definitions of these codes live in RFC 9110 section 15 if you want the receiver-agnostic source.
Contributors
Who worked on this answer
Every name links to their profile. Every company links to their site. Real people, real accountability.