What is a 404 error?
A 404 error is the status code a web server sends when it has nothing at the address you asked for: 404 Not Found. It doesn't say whether the page is gone for good or just never existed. On its own, a 404 is not an SEO problem: Google says a 404 on some URLs doesn't count against the rest of your site. The 404s worth fixing are the ones your own pages link to, and the "soft 404": a missing page that answers with 200 OK instead. I asked 4 sites I run for pages that don't exist, 12 requests in all, and every one answered with a real 404.
What the code means
HTTP status codes are three-digit answers a server gives with every response. The ones that start with 4 mean the request couldn't be served as asked. 404 is the most common. The HTTP standard, RFC 9110, says it means the server did not find anything for that address, and that it does not indicate whether this is temporary or permanent.
Its close relative is 410 Gone, which says the page is gone and that this is likely permanent. You don't need it: the standard says it isn't necessary to mark every removed page as gone, and Google says it treats all 4xx codes the same way, apart from 429.
Do 404s hurt SEO?
Not by themselves. Google's documentation says a 4xx code has no effect on how fast it crawls your site, and that a URL that returns 404 is removed from the index if it was indexed. Google's own post on the question says that 404s on some pages don't hurt the rest of your site. The web is full of dead addresses, and a search engine expects to meet them.
They do cost you in three cases:
- Your own pages link to them. A visitor clicks and hits a dead end, and the link goes nowhere useful. Fix the link, or redirect the old address to the page that replaced it.
- The page moved. If the content lives at a new address, a 301 redirect to it keeps visitors and the links other sites gave you. Use a 404 when there's no replacement, and a 301 when there is.
- It's a soft 404. That one gets its own section.
The soft 404: a missing page that says 200
A soft 404 is a page that tells the reader "not found" but tells the browser and the crawler "200 OK". Google then treats it as a real page, keeps crawling it, and its documentation says soft 404s waste your crawl budget. The two common causes:
- A site that serves its "page not found" design with a 200 status. Some page builders and single-page apps do this by default.
- Sending every missing URL to the home page with a redirect. Google says not to redirect many old URLs to one irrelevant page such as the home page, because it can treat that as a soft 404.
The test takes a minute: ask your site for an address that can't exist, and look at the status code it sends back, not just the page it shows.
What four real sites returned
On 9 November 2026 I asked 4 sites I run for 3 made-up paths each: a missing folder, a missing guide and an old-style .html page.
| Result | |
|---|---|
| Requests | 12 |
| Answered with a real 404 | 12 |
| Answered 200 (a soft 404) | 0 |
| Not-found pages marked noindex | 3 of 4 sites |
| Links back into the site on the not-found page | from 2 to 48 |
All of them got the status code right. Where they differed was what a lost visitor could do next. The best not-found page offered 48 links back into the site. The weakest offered 2. A 404 page is still a page someone is looking at: give them the main sections, a search box and a way to the thing they most likely wanted.
How to handle a 404, by situation
| Situation | What to return |
|---|---|
| The page never existed, or someone mistyped | 404, with a helpful not-found page |
| The page was removed and nothing replaces it | 404 or 410 |
| The page moved, or a better page replaces it | A 301 redirect to that page |
| A misspelled address that people keep using | A 301 redirect to the right page |
| A page shows "not found" but returns 200 | Fix the server so it returns 404 |
What Check Engine checks
Check Engine asks your site for a made-up address on every audit and reports when it answers 200 instead of 404, which is the site-wide soft 404 test above. It also reports pages that show an error message but return 200, missing pages that your own pages link to, links to your own subdomains that are broken, and outbound links that are broken. A 404 that nothing links to is left alone, because that one is fine.
Sources
- RFC 9110, 404 Not Found
- RFC 9110, 410 Gone
- MDN, 404
- Google, HTTP status codes and crawling
- Google, crawl budget
- Google Search blog, do 404s hurt my site
- Google, site moves (redirects to the home page)
- Google, 301 redirects
$59once
For Macs with Apple silicon or Intel, macOS 12 or later, and 64-bit Windows
Priced in US dollars. Checkout shows your currency and any local tax.
On a Mac? Get the Mac version.
On your phone?
Launch price: $29.50 once, through 30 November. From 1 December: $59. Buy applies the code FOUNDINGDOCKET for you; if the checkout shows $59, enter it under ‘Have a discount code?’.
Screaming Frog is $279 a year. Ahrefs plans with Site Audit run $129–$449 a month. Check Engine is $59 once. Screaming Frog’s price read 4 November 2026, Ahrefs’ 9 November 2026.
30 days, no conditions, no questions asked. Refund policy
Common questions
Do 404 errors hurt SEO?
Not on their own. Google says 404s on some URLs don't count against the rest of your site, and it removes those URLs from its index. They matter when your own pages link to them, when the content moved and needed a redirect, or when a missing page returns 200 instead.
What's the difference between 404 and 410?
404 means nothing was found, without saying whether that's permanent. 410 Gone says it is likely permanent. Google says it treats all 4xx codes the same, apart from 429, so either works for a removed page.
Should I redirect every 404 to my home page?
No. Google warns that sending many old URLs to one irrelevant page, such as the home page, can be treated as a soft 404. Redirect a URL only to a page that really replaces it, and let the rest return 404.
What is a soft 404?
A page that says "not found" to the reader but returns 200 OK to the browser. Search engines then treat it as a real page and keep crawling it. The fix is to make the server return 404 for addresses that don't exist.