404 Web Page: Causes and Fixes
What the 404 status really means, how crawlers handle it, and how to fix soft 404s and dead URLs.

A 404 web page is the response a server returns when a requested URL does not exist on the web. It is a normal, expected part of how the web works, but left unmanaged it drains crawl budget and frustrates visitors. This guide takes the technical angle: what the 404 status really means, how crawlers treat it, and the concrete steps to diagnose and fix the ones that matter.
The short version
- 404 is a client-error HTTP status meaning the server cannot find the requested resource.
- 404 signals only that a resource is missing, not whether the absence is temporary or permanent, use 410 Gone for permanent removal.
- Crawlers stop processing repeated 404s and reduce how often they revisit them, so clean 404s are fine but soft 404s are not.
- Fix by correcting links, adding 301 redirects where a replacement exists, and letting genuinely dead URLs return a real 404.
What the 404 status code means
Every request to a web server returns a status code that tells the client what happened. 404 belongs to the client-error family (the 4xx codes). MDN defines the 404 Not Found status code as a client error response indicating that the server cannot find the requested resource, and notes that it signals only that the resource is missing without saying whether the situation is temporary or permanent.
That last point matters for SEO. Because 404 is ambiguous about permanence, MDN adds that servers should send 410 Gone when a resource has been permanently removed. Both codes eventually drop the URL from search results, but 410 states your intent more clearly.
404 in the family of HTTP status codes

Understanding the neighbors helps you diagnose faster:
- 200 OK: the page exists and loaded. A missing page must never return this, doing so creates a soft 404.
- 301 Moved Permanently: the resource has a new permanent URL. MDN describes it as indicating the requested resource has been permanently moved to the URL in the Location header.
- 302 Found: a temporary redirect. The original URL is expected to return.
- 404 Not Found: the resource is missing, permanence unknown.
- 410 Gone: the resource is intentionally and permanently removed.
- 500 and 503: server-side errors, a different problem from a missing page.
Choosing the right code is the whole game. A dead URL that had value and a replacement should be a 301, a dead URL with no replacement should be a 404 or 410, and a page that exists should be a 200. Our companion guide on the website 404 page covers the visitor-facing design side that sits on top of these codes.
Why 404 web pages appear
404s are generated by ordinary site activity:
- Deleted content that was not redirected.
- Renamed URLs after a migration, CMS change, or slug edit.
- Typos in links, in your own markup or in a link built to you by another site.
- Case and trailing-slash mismatches, since URLs can be case sensitive on some servers.
- Moved assets like images and downloads whose references were not updated.
- Protocol or subdomain changes (http to https, www to non-www) applied only partway.
Some of these are external and unavoidable. The internal ones are fully fixable, and a broken link search is how you surface them systematically.
How crawlers treat a 404

Search engines expect 404s and handle them gracefully. Google explains in its documentation on HTTP and network errors that newly encountered 404 pages are not processed and their crawling frequency gradually decreases. For URLs that were previously indexed, the indexing system removes them over time. Google also notes that all 4xx errors except 429 are treated the same way, as a signal that the content does not exist.
The practical takeaways:
- A genuine 404 is not a penalty. You do not need to eliminate every one.
- Crawlers reduce attention to persistent 404s, which is the desired behavior for pages you meant to remove.
- The exception is the soft 404, which keeps a dead URL in circulation because the server wrongly reports success.
The soft 404 trap
A soft 404 is the most damaging 404 mistake because it hides the error from crawlers. Google notes that Search Console shows a soft 404 when a server responds with a 2xx success code but the content itself indicates an error, such as an empty page or an error message.
Common ways sites create soft 404s:
- A custom error page that returns 200 instead of 404.
- An empty category, search, or filter page rendered with a success code.
- A JavaScript app that shows a not-found message client-side while the server still returns 200.
- Thin placeholder pages with almost no content.
Fix these by making the server return a true 404 (or 410) for missing content. You can confirm the response with a URL checker or your browser developer tools.
Tip: verify the header, not the visible page. A page can look like a proper error while still returning 200. Load a nonexistent URL, open the Network tab in your browser, and read the status of the main document request. It should say 404. If it says 200, you have a soft 404 to fix.
How to diagnose 404s across your site
Use complementary sources so nothing slips through:
- Google Search Console: the Pages report lists URLs excluded as Not found (404) and flags Soft 404 separately. This is Google reporting what it actually encountered. See our Google Search Console for SEO guide for a walkthrough.
- A site crawler: tools like the free tier of Screaming Frog SEO Spider follow your links and list every 4xx and 5xx response.
- Server logs: raw logs show every 404 request, including ones from bots and external referrers that a crawl might miss.
- Backlink tools: reveal external links pointing at dead URLs on your domain, the highest-value 404s to redirect.
How to fix 404 web pages
Triage by value, then apply the correct action:
- Wrong link, page exists: fix the href. No redirect needed.
- Page moved: add a 301 to the new URL and update internal links. Google states in its redirects documentation that a permanent redirect signals the target as canonical, so a 301 preserves ranking on the new page.
- Page deleted, relevant replacement exists: 301 to that page, not the homepage.
- Page deleted, no replacement: return a clean 404 or a 410 Gone.
- Soft 404 detected: correct the server so it returns the proper status.
When a redirect is the answer, verify it resolves in a single hop with a redirect checker. Our guide to checking URL redirection shows how to spot chains and loops.
Warning: watch redirect chains and loops. Redirecting an old URL to another URL that also redirects builds a chain that slows users and dilutes signals. A URL that redirects back to itself creates a loop that fails entirely. Always redirect straight to the final live destination.
Keep 404s managed over time
404s regenerate as your site evolves, so treat management as routine, not a one-off:
- Review the Search Console Not found and Soft 404 reports regularly.
- Re-crawl periodically to catch new internal dead links.
- Add redirects the moment you retire a URL.
- Re-check status codes after every migration.
Continuous monitoring tools, 404Pulse among them, can scan on a schedule and alert you when a new 404 appears, turning a future backlog into a steady stream of small fixes.
Frequently asked questions
What does a 404 web page mean?
It means the server received a valid request but could not find the resource at that URL. 404 is a client-error status code that signals the page is missing. It does not indicate whether the absence is temporary or permanent, which is why 410 Gone exists for permanent removals.
Are 404 errors bad for SEO?
Genuine 404s are not bad for SEO. Google treats them as a normal part of the web, stops processing repeated 404s, and gradually crawls them less. The real problems are soft 404s that return a 200 status and valuable pages that 404 without a redirect, losing their earned link value.
What is the difference between a 404 and a soft 404?
A true 404 returns the 404 status code, telling crawlers the page is missing. A soft 404 shows an error message to users but returns a 200 success status, so search engines think the page is real content and keep crawling it. Soft 404s should be fixed to return the correct status.
Should I redirect a 404 or leave it?
Redirect a 404 with a 301 only when the URL had value and a relevant live page exists to replace it. If the page is genuinely gone with no equivalent, let it return a clean 404 or a 410 Gone. Redirecting everything to the homepage can be treated as a soft 404.
How do I find all the 404s on my website?
Combine the Not found report in Google Search Console, a site crawler such as Screaming Frog filtered for 4xx responses, and your raw server logs. Add a backlink tool to spot external links pointing at dead URLs, since those are the highest-value 404s to redirect.
More on 404 Errors & Broken Links
Have a question or a topic to suggest?
We read every message. Tell us what you would like to see next.
Get in touch