Custom 404 Error Page Test
What is it?
Every site accumulates dead URLs over time: pages that are deleted, restructured, or simply mistyped in inbound links. Each one represents a visitor who arrived expecting something and got nothing, and the response served at that moment determines whether they bounce back to search results or keep exploring. A branded custom 404 with navigation, search, and suggested links keeps users engaged, while the correct HTTP 404 status keeps search engines from confusing missing pages with real content. This test verifies that your site serves a custom 404 page with the right status code.
Why a custom 404 page still matters
Every site accumulates dead URLs over time: pages that are deleted, restructured, or simply mistyped in inbound links. Each one represents a user who arrived expecting something and got nothing, and the response your site provides at that moment determines whether they bounce back to the search results or stay on your site. A blank browser error invites them to leave; a branded page with helpful navigation invites them to keep exploring.
The 404 page also matters for SEO crawl signals. Search engines use the HTTP 404 status code to learn that a URL is gone and should be removed from indexes. A common mistake is to redirect missing URLs to the homepage or to return a 200 status on the 404 page, both of which create "soft 404s" that confuse search engines and waste crawl budget on what looks like duplicated content.
What a good custom 404 page includes
- Site chrome preserved: header, navigation, footer all visible so users do not feel lost.
- Clear "page not found" message in plain language, with the missing URL acknowledged.
- Search and navigation: a search box, popular links, or category navigation help users get back on track.
- Correct HTTP 404 status: the response code must be 404, not 200, so search engines treat the URL correctly.
- Tracking for missing URLs in analytics, so patterns of broken inbound links surface and can be redirected.
This test verifies that your site serves a custom 404 page with the correct status code. The fix guide below covers configuring custom 404 templates in the major web servers, content management systems, and headless frameworks.
Pass rate:
-
Top 100 websites: 80%This value indicates the percent of top 100 most visited websites in the US that pass this test (in the past 12 months).
-
All websites: 62%This value indicates the percent of all websites analyzed in SEO Site Checkup (500,000+) in the past 12 months.
| 2021 | 75% |
|---|---|
| 2022 | 78% |
| 2023 | 67% |
| 2024 | 80% |
100
75
50
25
0
How do I fix it?
This test fails when the site does not serve a branded, helpful page for missing URLs. A custom 404 keeps users on the site by offering navigation, search, and suggested links rather than dropping them at the browser's generic error screen. Fixing this issue means designing a 404 template, ensuring it returns the correct HTTP 404 status, and pointing your server at it.
Where to make the change
- Server configuration: point your web server at a custom 404 page. In Nginx, use
error_page 404 /404.html;. In Apache, useErrorDocument 404 /404.html. - WordPress: create a
404.phptemplate in your theme. WordPress invokes it automatically for missing URLs. - Shopify: edit the
404.liquidtemplate in the theme code editor. - Wix or Squarespace: use the platform's built-in 404 page editor in site settings.
- Headless or framework sites: Next.js uses
not-found.js, Astro uses404.astro, and similar frameworks all have a convention for the missing-route page.
Common causes and how to resolve them
- No custom 404 at all: create one. The minimum is the site header, navigation, a clear "page not found" message, and links to popular sections.
- 404 page returns HTTP 200: a "soft 404" confuses search engines. Verify the response status with DevTools or curl, and configure the server to return 404 for missing routes.
- 404 page redirects to homepage: redirecting users to the homepage hides broken URLs from analytics and search engines. Show a real 404 instead.
- Generic browser error visible: the server is not invoking the custom template. Check the configuration directive.
Best practices
- Keep the site chrome: show the header, footer, and navigation so users do not feel lost.
- Offer next steps: a search box, popular links, or category navigation help users get back on track.
- Track 404s: log missing-URL hits in analytics so you can spot broken inbound links worth fixing or redirecting.
- Be clear about the error: "Sorry, that page does not exist" is better than vague messaging that confuses users.