Implementing Proper 404 Error Pages
- May 14, 2026
- Crawlability and Indexation, Technical SEO

AI Summary
A proper 404 page returns a real HTTP 404 status code and serves a helpful not found template that keeps visitors on the site instead of dead ending them. The two failures to avoid are soft 404s, where a missing page returns 200 OK, and blank browser default error pages that offer no path forward.
- The status code matters more than the design: a not found URL must return 404, or 410 when removal is permanent.
- A soft 404 returns 200 OK on a missing page and wastes crawl budget while polluting the index.
- Add X-Robots-Tag noindex to error responses and never redirect every 404 to the homepage.
- Check the Search Console Pages report for the Soft 404 and Not found (404) states to find offenders.

Why the status code is the whole point
Search engines decide what to do with a URL largely from its HTTP status code, not from the words on the page. When a page no longer exists, the server must say so in the response header. A correct configuration returns 404 Not Found for a missing resource, or 410 Gone when the removal is deliberate and permanent. The design of the page a human sees is secondary. You can ship a beautiful not found template, but if the server answers 200 OK you have created a soft 404, and crawlers will keep requesting and trying to index a page that is not real.
Soft 404: the most common mistake
A soft 404 happens when a missing URL returns a success status. Typical causes include single page applications that render an error view client side while the server still sends 200, catch all CMS routes, and well meaning redirects that send every unknown URL to the homepage. Google flags these under Soft 404 in the Search Console Pages report. They waste crawl budget, keep dead URLs eligible for indexing, and hide genuinely broken links from your reports. Confirm the real status from the command line rather than trusting the browser view:
# Check the true status a URL returns
curl -I https://example.com/this-page-was-deleted
# Correct response for a missing page
HTTP/1.1 404 Not Found
Content-Type: text/html; charset=UTF-8
X-Robots-Tag: noindex
# A soft 404 looks like this and must be fixed
HTTP/1.1 200 OKStatus codes at a glance
| Situation | Correct code | Why |
|---|---|---|
| Page never existed or was deleted, may return | 404 Not Found | Standard signal, crawler retries occasionally |
| Page permanently removed, will never return | 410 Gone | Crawler drops the URL faster |
| Content moved to a new URL | 301 Moved Permanently | Passes signals to the new location |
| Missing page returns success by mistake | Soft 404 (a bug) | Fix the server to return a true 404 |
Server configuration
Return the right status at the server layer, then point it at a friendly template. Examples for the three most common stacks:
# Apache .htaccess
ErrorDocument 404 /404.html
# Nginx
error_page 404 /404.html;
location = /404.html { internal; }
# WordPress: a 404.php template in the theme already
# returns the correct 404 header via the template hierarchyFor headless and single page apps, make sure the server or edge function inspects the route and sends a real 404 status for unknown paths before the client renders its error view. Sending the status from the edge is what stops the soft 404 pattern.
What a helpful 404 page should contain
Once the status is correct, the human facing page should reduce the chance a visitor leaves. Include a clear message that the page was not found, a site search box, links to popular or related sections, and a prominent link back to the homepage. Keep your global navigation and header so the visitor is not stranded. Do not auto redirect a 404 to the homepage: that recreates the soft 404 problem and confuses both users and crawlers, who see a success page where a missing one belongs.
Monitoring and crawl impact
Broken links that produce 404s waste crawl budget, so large sites should watch the volume. Track the Not found (404) and Soft 404 states in the Search Console Pages report, and periodically crawl your own site to catch internal links pointing at removed URLs. Because error responses consume requests, sites concerned about efficiency should read the guidance on crawl budget. When you are choosing between a 404 and a redirect, apply the same logic used for redirect handling: redirect only when there is a genuinely equivalent destination, otherwise return a clean 404 or 410. The X-Robots-Tag on error responses is part of broader HTTP header optimization that keeps low value responses out of the index.
Frequently asked questions
What is the difference between a 404 and a soft 404?
A 404 correctly tells crawlers the page does not exist by returning a 404 status in the HTTP header. A soft 404 returns a 200 OK success status on a page that is actually missing, so search engines keep treating the dead URL as real. Soft 404s are a bug to fix, not a page type to keep.
Should a 404 page redirect to the homepage?
No. Redirecting every missing URL to the homepage creates a soft 404 because the server returns success for content that does not exist, and it frustrates users who expected the original page. Return a real 404 and offer navigation, search, and relevant links instead.
When should I use 410 instead of 404?
Use 410 Gone when a page has been permanently removed and will never return, because it signals a deliberate deletion and crawlers drop the URL more quickly. Use 404 when the page is missing but might come back or when you are unsure.
Do 404 errors hurt my rankings?
A normal level of 404s from deleted pages is expected and does not directly harm rankings. The problems come from soft 404s that pollute the index, from internal links pointing at dead pages, and from large volumes of errors wasting crawl budget on big sites.
Should the 404 response include a noindex tag?
Adding X-Robots-Tag noindex to error responses is good defense in depth, but the 404 status itself already keeps the page out of the index. The noindex helps in edge cases where a template might otherwise be treated as indexable.
How do I find soft 404s on my site?
Open the Search Console Pages report and look at the Soft 404 state for a list of affected URLs. You can confirm each one by requesting it with curl and checking whether the header returns 200 OK where it should return 404.
Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.
About SEO ProCheck
Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.
Work With Me
Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.







