404 pages are a missed opportunity on most blogs. Default WordPress 404 pages say “Oops! That page can’t be found” and offer a search bar. The visitor, who arrived from a broken link or a typo, sees a dead end and leaves.

Every 404 visit is a real reader who tried to land on your site and didn’t. A good 404 page recovers a meaningful percentage of them. This post explains how.

Comparison of a default 404 page and a designed 404 page with recovery options

Why visitors hit your 404

Before designing the page, understand who’s seeing it. 404 traffic comes from three main sources:

  • Old links. A post you deleted or moved. Someone has the old URL bookmarked or linked to it.
  • Typos. A reader typed the URL wrong, or clicked a malformed link in an email or social share.
  • Broken internal links. A post on your own blog links to a URL that no longer exists.

All three are real readers. They came to your site on purpose. The 404 page is your last chance to keep them.

What the default page does wrong

The standard “page not found” page fails in several specific ways:

  • It feels like a system error, not a page on the blog, often missing the header, footer, or branding entirely.
  • It offers nothing specific. “Try searching” is too generic. The reader doesn’t know what to search for.
  • It doesn’t suggest where they might have meant to go.
  • It doesn’t acknowledge that this is a fixable situation.

What a good 404 page does

1. Acknowledges the error in human terms

“Looks like that page isn’t here anymore.” Or “We can’t find that one.” Avoid the cheesy “Oops!” Don’t make readers feel stupid for hitting a broken link.

2. Keeps the site’s normal structure

Header, footer, and navigation should all stay visible. The page should feel like part of your blog, not a system page. This alone tells visitors this is a real site, not a dead end.

3. Offers immediate alternatives

Three or four useful options:

  • A link to the homepage. The bare minimum.
  • Links to your top categories. Let them browse by topic.
  • Links to 3 to 5 popular or featured posts. If they came looking for something, give them something to read.
  • A search bar. For readers who know what they want.

4. Optional: a touch of personality

A small illustration, a clever but not exhausting line, a personal note. The 404 is one of the few places on a blog where personality is welcome. Just don’t let it become the whole page.

Technically, a custom 404 page should still return an actual 404 HTTP status code, not a 200. Google explicitly discourages “soft 404s”, where a missing page loads with a friendly message but still tells search engines the page exists. Most WordPress themes handle this correctly by default, but it’s worth a quick check if you’ve built a fully custom 404 template.

404 page with search bar, popular posts, and category links visible

The order things should appear in

Reading top to bottom, a good 404 page looks like this:

  1. Header (normal navigation visible)
  2. Brief human message: “That page can’t be found.”
  3. One sentence acknowledging it might be a typo, an old link, or a moved post.
  4. Search bar.
  5. Links to popular posts or top categories.
  6. Footer (normal site footer).

Nothing else. No lengthy explanations. No “report a bug” forms. The reader is here by accident, so respect their time.

What about redirects?

If you’ve moved or deleted a lot of content, the better fix is to set up 301 redirects from old URLs to new ones. Visitors never see a 404 because they’re sent directly to the new destination. This matters even more if you’ve recently changed permalink structures; our guide on WordPress permalinks and the setting that affects SEO forever covers why that specific change tends to generate the most 404s.

Tools that handle redirects:

  • Redirection (free WordPress plugin). The most-installed option. Logs 404s and lets you create redirects from the admin.
  • Rank Math and Yoast SEO Premium. Both have built-in redirect managers.
  • Your host’s redirect rules. Some managed WordPress hosts let you set redirects at the server level.

For old or deleted posts that have backlinks pointing to them, set up redirects. For genuine typos and random broken links, the 404 page does the work. If you’re refreshing an old post rather than removing it, how to update old posts without losing rankings covers how to do that without triggering the same problem.

How to monitor 404s

You can’t fix what you can’t see. Three ways to track 404 hits:

  • Redirection plugin. Logs every 404. You can spot patterns and decide whether to redirect.
  • Google Search Console. Reports “Not found” errors that Google itself encountered while crawling. Worth checking monthly.
  • Your analytics tool. Most can be configured to fire an event on 404 page loads.

Once a month, look at the most-hit 404 URLs. If 50 visitors hit /old-post-name/, that’s 50 readers who deserve a redirect to wherever that content lives now.

How themes handle 404s

Most WordPress themes ship with a basic 404 template. Some give you more:

  • Customizable 404 messages.
  • The ability to pick a layout (with or without search, with or without featured posts).
  • Multiple 404 styles to choose from.

Aurora ships with five different 404 layouts for exactly this reason, along with control over which navigation menu appears on the 404 page itself. If your theme exposes similar options, use them. If not, you can usually override the 404 by creating a custom 404.php in a child theme, or by using a page builder to design one.

The “humor” question

Funny 404 pages are a genre. They work in moderation. A small touch of humor, a self-deprecating line or a clever image, humanizes the page. A 404 page that’s primarily a joke is exhausting. The reader is here because they hit a dead end. Acknowledge it briefly, offer help, get out of the way.

What this actually recovers

Every 404 visit is a real reader you almost lost. Default WordPress 404 pages don’t fight to keep them. A good 404 acknowledges the problem briefly, keeps navigation visible, offers immediate alternatives, and feels like a real page on your blog. Set up redirects for known broken URLs. Monitor 404s monthly. The recovered traffic is small per page but compounds over years.