SEO 404 Page Best Practices
Stop treating your 404 page as a design project. The status code is the only thing that matters for SEO, and a blanket redirect to the homepage is worse than a dead end.
Start here
- Ensure your 404 page returns a real HTTP 404 status code, not a 200, or Google will treat it as a soft 404.
- Set up a 301 redirect to a relevant page only when a URL has a clear replacement; never redirect all 404s to the homepage.
- Monitor 'Not Found' errors in Google Search Console weekly and fix or redirect those that have traffic or backlinks.
- Add a search box and links to your main categories on the 404 page to help users find what they need.
- Consider using a 410 Gone status for content that is permanently removed with no equivalent replacement.
Plain-English take
If your 404 page returns a 200 status code, you are wasting Google's crawl budget and confusing your visitors. I have seen sites where a "Page Not Found" message shows up in search results because the server told Google the page existed. That is worse than a dead end — it is a lie. A real 404 tells the browser and the search engine: this URL is gone. That is the first thing to get right. Beyond that, a useful 404 page can fix the user's frustration. I put a search box and links to my top categories on every 404 page. That way someone who lands on a missing page can still find what they need. But the status code comes first. Without it, everything else is cosmetic.
When it actually matters
This matters most when you have a site with hundreds or thousands of URLs. A small blog with ten posts can leave a 404 as a blank page and nobody will care. But if you run an e-commerce site with 10,000 products, every broken link that returns 200 is a crawl budget leak. I check Google Search Console every week for 'Not Found' errors. When I see a 404 that has a clear replacement, I set up a [301 redirect](/301-redirect/) to the most relevant page. If the content is gone for good, I leave it as a real 404 or, if I want to be explicit, a 410 Gone. The mistake I see most often is redirecting every 404 to the homepage. Google has said that is not a good practice: it sends confused users to a page that has nothing to do with their intent. Instead, I create a [website structure](/website-structure/) that documents what each URL should point to. During a site migration, I map every old URL to a new one. If there is no match, I let it 404. Monitoring broken links and fixing them is part of a regular [SEO audit](/seo-audit/).
What I got wrong
I used to think a custom 404 page was a nice-to-have. I would spend hours designing a funny illustration and a search box, then forget to check the status code. The first time I ran a crawl on a client's site, I found 1,200 URLs that returned 200 but showed 'Page not found'. Google had indexed them all. The client had thousands of visitors hitting those pages and bouncing. That was when I learned that the server response matters more than the design. I also believed that redirecting every 404 to the homepage was a safe fallback. It is not. I saw a drop in conversions because users who were looking for a specific product ended up on the homepage and left. Now I only redirect when there is a clear, relevant replacement. And I use [canonical URL](/canonical-url/) tags to consolidate duplicate pages that might cause 404s. Another thing I got wrong: I did not monitor 404s at all. I thought they were harmless. But they accumulate. Old backlinks, broken internal links, and typos in URLs all create 404s. I now check Search Console weekly and fix or redirect the ones that matter. I also generate a [sitemap](/sitemap/) that includes only live, indexable pages to reduce the chance of Google crawling dead ends.
Next step
Quick answers
Should I redirect all 404s to the homepage?
No. Google advises against it because it confuses users and sends them to an irrelevant page. Only redirect to a relevant replacement page if one exists. Otherwise, leave the 404 as is.
What is the difference between a 404 and a 410 status code?
A 404 means the page is temporarily not found, while a 410 indicates it is permanently gone. Google treats both similarly, but a 410 may speed up removal from the index. Use 410 when you know the content will never return.
How often should I check for 404 errors?
I check Google Search Console weekly. For large sites, you may want to set up automated monitoring using server logs or crawling tools. Frequent checks help catch broken links before they cause significant crawl waste.
Sources
Primary documentation is linked directly. Anything commercial is marked nofollow.
- Google Search Central — Authoritative guidance on status codes, redirects, and handling missing pages.
- Moz Learn SEO — Reinforces the importance of correct status codes and temporary vs permanent handling.
- Google Search Console Help — Practical advice for monitoring 404 errors and diagnosing crawl issues.
Notes from Callum Bennett.