# What is a 404 error, and how do you fix one?

> A 404 error means the server was reached but has no page at that address. What visitors can do, why your site returns 404s and how to fix the ones that matter.

Updated 2026-09-26 · Technical SEO · HTML version: https://getreport.app/guides/404-error

A 404 error, or "404 Not Found", means your browser reached the website but the server has no page at the address you asked for. The site is up; that one page is not there, because it was deleted, moved without a redirect, or the link has a typo. This guide covers what to try as a visitor, and then, for site owners, how to find the 404s on your site and fix the ones that cost you visitors and rankings. It is part of the wider guide on [finding and fixing broken links](https://getreport.app/guides/find-and-fix-broken-links).

## Quick answer

- **Visitor:** check the address for typos, reload once, go up a level to the section page, or search the site for what you wanted.
- **Site owner:** a 404 is the correct answer for a page that never existed or is gone for good. Fix only the 404s that have links, traffic or backlinks.
- **Page moved:** add a 301 redirect from the old address to the new one, then update your own links.
- **Page deleted:** 301 to the closest equivalent if there is one; otherwise let it answer 404 or 410.
- **Link wrong:** fix the link in the menu, template or post that holds it.
- **Missing pages** should get a helpful 404 page that still returns HTTP status 404, not 200.
- Find them with the [broken link checker](https://getreport.app/tools/broken-link-checker), the [bulk URL checker](https://getreport.app/tools/bulk-url-checker) and Search Console's "Not found (404)" list.

## What does a 404 error mean?

Every answer a web server sends starts with a three-digit [HTTP status code](https://getreport.app/guides/http-status-codes). Codes starting with 4 mean the request could not be served as asked, and 404 is the specific code for "Not Found": the server understood the request and is working, but has nothing at that path. RFC 9110, the HTTP standard, adds that a 404 does not say whether the absence is temporary or permanent. For "removed on purpose and not coming back", there is a separate code, 410 Gone.

What you see depends on the site. Most sites send their own "Page not found" page with the menu and a search box. If the server sends no page of its own, the browser shows a plain one; Chrome, for example, shows "This page can't be found" with "HTTP ERROR 404". Some sites word it as "Error 404", "404 Page Not Found" or "The requested URL was not found on this server"; they all mean the same thing.

A 404 is not a server failure. When the server itself breaks while building a page, the answer is a 5xx code such as a [500 Internal Server Error](https://getreport.app/guides/500-internal-server-error), which is a different problem with a different fix.

## If you're a visitor: what you can try

The page is missing on the website's side, so nothing on your device is broken. A few things often get you to the content anyway:

1. **Check the address.** Look for a typo, a missing letter or stray characters at the end, such as a full stop that came with a copied link.
2. **Reload once.** Rarely, a site answers 404 for a moment during an update.
3. **Go up a level.** Remove the last part of the path: `example.com/blog/2023/old-post/` becomes `example.com/blog/`. Section pages often list what you were looking for.
4. **Search the site,** or search the web for the page title plus the site name. The page may simply have moved.
5. **Try an archived copy.** The Wayback Machine at web.archive.org often has old versions of pages that have been removed.
6. **Tell the site.** If a link on the site itself led you there, the owner wants to know.

Clearing the browser cache rarely helps with a 404, because the server really has no page at that address.

## If you own the site: why your pages return 404

A 404 on your site has one of three causes, and each has its own fix:

| Cause | Typical example | Fix |
| --- | --- | --- |
| **The page moved** | A renamed post, a new URL structure, a migration | 301-redirect the old address to the new one |
| **The page was deleted** | A discontinued product, a removed campaign page | 301 to a close equivalent, or let it answer 404 or 410 |
| **The link was always wrong** | A typo, a link to a draft or a staging URL | Fix the link |

Some 404s need no fix at all. Bots probe for addresses like `/wp-login.php` on sites that do not run WordPress, other sites mistype your URLs, and old campaign links expire. Google's documentation on [HTTP status codes and Google Search](https://developers.google.com/search/docs/crawling-indexing/http-network-errors) says 4xx pages are simply not indexed; a 404 for an address that never mattered does not harm the rest of your site. The ones worth your time are 404s on addresses that have backlinks, get visits, appear in your sitemap or are linked from your own pages.

### Whole-site 404s after a change

If every page except the home page suddenly answers 404, the cause is almost never the content. On WordPress it is usually the rewrite rules: go to Settings → Permalinks and click Save Changes without changing anything, which rebuilds them. On Apache, check that `mod_rewrite` is on and that `.htaccess` is allowed with `AllowOverride All`; on nginx, the location block needs `try_files $uri $uri/ /index.php?$args;`. The [WordPress permalinks guide](https://getreport.app/guides/wordpress-permalinks) covers the settings.

## How to find the 404s on your site

No single source shows every 404, so combine three.

**The links on a page.** The broken link checker requests every link on the page you enter, up to 100 on your own host and 50 to other sites, and lists each one with its status, anchor text and redirect target. A 404 in your menu or footer is a 404 on every page, so start with the home page and your main templates.

> **Free tool:** [Broken link checker: find dead links on a page](https://getreport.app/tools/broken-link-checker): Free broken link checker: test up to 150 links on a page, internal and external, with status code, redirect target and response time. Find dead links fast.

> **Check: Broken links.** A link to a 404 page is a dead end for visitors and a wasted crawl for search engines. Old campaign or product pages are the usual cause.
>
> 1. Update or remove each link listed in the technical detail; redirect the missing pages if they still get visits.
> 2. In WordPress, a plugin such as Broken Link Checker finds these site-wide.

**A list of addresses.** Paste up to 1,000 URLs into the bulk URL checker: your sitemap, the old addresses from before a redesign, or the pages with the most backlinks from Search Console's Links report. Every row is labelled, so filter to "not found" and you have your list, with a CSV to work from.

> **Free tool:** [Bulk redirect checker: status of 1,000 URLs](https://getreport.app/tools/bulk-url-checker): Free bulk redirect checker. Paste up to 1,000 URLs and get each status code, final URL, redirect hops, noindex and canonical in one table, with CSV export.

**What Google and visitors hit.** In Search Console, Indexing → Pages lists the URLs Google found under "Not found (404)", with example URLs and, in URL Inspection, the pages that link to them. Your server's access log shows every 404 real visitors and bots request, and the [log analyser](https://getreport.app/tools/log-analyser) sums up which 404s each bot keeps hitting, in your browser, without uploading the file.

getReport's full report also checks that your sitemap lists only live pages:

> **Check: Sitemap URL status.** A sitemap should list only pages that answer 200. Redirects, 404s and noindex pages in it waste crawl budget and make Google trust the file less.
>
> 1. Remove deleted pages from the sitemap and list the final URL of redirected pages.
> 2. Most CMS plugins do this automatically; if you generate the file yourself, rebuild it from the live URL list before publishing.

## How to fix a 404 error

Work through the list in order of value: addresses with backlinks and traffic first, internal links next, everything else last.

### 1. Redirect pages that moved

If the content lives on at a new address, a 301 redirect from the old one sends visitors, links and search signals to the new page in one step. On nginx:

```nginx
location = /summer-sale-2025/ {
    return 301 /sale/;
}
```

On Apache, in `.htaccess` at the site root:

```apache
Redirect 301 /summer-sale-2025/ /sale/
```

In WordPress, a redirect plugin or the redirect manager in your SEO plugin does the same from the admin. The [301 redirects guide](https://getreport.app/guides/301-redirects) explains when a redirect is right and how to keep it to one hop.

### 2. Decide what deleted pages should answer

A deleted page with a close equivalent, such as a product with a successor or a post merged into another, gets a 301 to that page. A deleted page with no equivalent should keep answering 404, or 410 if you want to say the removal is deliberate. Do not redirect it to the home page: Google treats redirects to unrelated pages as [soft 404s](https://getreport.app/guides/soft-404s-what-they-are-and-how-to-fix-them), and visitors land somewhere they did not ask for. [404 vs 410 vs redirect](https://getreport.app/guides/404-vs-410-vs-redirect-what-to-do-with-removed-pages) has the decision rules per URL and the server snippets.

### 3. Fix the links at the source

A redirect catches everyone else's links; your own links should point straight at the live page. Search your CMS or source files for the old path and update menus, footers, templates and posts. Links that already redirect are listed by the broken link checker too:

> **Check: No link on the page goes through a redirect.** Every redirected link costs visitors an extra round trip, and a chain can break when one hop changes. Linking to the final URL is free.
>
> 1. Update each link listed in the technical detail to its final URL.
> 2. Search your templates and content for the old URLs after a domain, https or trailing-slash change.

### 4. Make the 404 page useful

Visitors will reach missing pages whatever you do. Your 404 page should keep the site's header and navigation, say plainly that the page is missing, and offer search and a few useful links, while the server still answers with status 404.

> **Check: Missing pages get a proper 404 page.** A visitor on a broken link should see your own "page not found" with a menu and search, and search engines should get HTTP 404 so they drop the URL. A server default page or a 200 answer does neither.
>
> 1. Return HTTP 404 (not 200 or 302) for unknown URLs; a "soft 404" keeps dead pages in Google.
> 2. Design the 404 page with your header, a short apology, search and links to the main sections; most CMSs have a 404 template.

getReport tests this by requesting a random address on your site and checking the status and content of the answer. [Custom 404 pages that help](https://getreport.app/guides/custom-404-pages-that-help) covers what to put on the page and how to set it up on each platform.

## How to verify the fix

- Run each old address through the bulk URL checker: moved pages show one 301 and then 200, deleted pages show 404 or 410.
- Re-run the broken link checker on the pages you edited; reports are cached for 12 hours, so use the "Re-run" link.
- In Search Console, open the "Not found (404)" group and click Validate Fix. The count falls as Google recrawls the old addresses, which can take weeks.

## Common mistakes

- **Answering 200 on the "not found" page.** People see a missing page while crawlers see a live one, which creates soft 404s and keeps dead addresses in the index.
- **Redirecting every 404 to the home page.** It hides the problem from you and does not help the visitor or your rankings.
- **Chasing every 404 in Search Console.** URLs that never existed or never had links can stay 404 forever.
- **Pointing the error handler at a full URL.** `ErrorDocument 404 https://example.com/404/` on Apache makes the answer a 302 redirect, not a 404; use a local path such as `/404.html`.
- **Deleting redirects in a clean-up.** Old links and bookmarks start returning 404 again the day the rule goes.

## Questions people ask

### What does a 404 error mean?

A 404 error means the server was reached but has no page at the address requested. The website is working; that one URL does not exist, usually because the page was deleted, moved without a redirect, or the link contains a typo. It is a client error in HTTP terms, which says nothing about whether the page will come back.

### How do I fix a 404 error on my website?

First find out why the address is missing. If the page moved, add a 301 redirect from the old address to the new one. If it was deleted, redirect it to a close equivalent or let it answer 404 or 410. If the link is wrong, correct the link. Then update your own links to the live address and re-check them with a link checker.

### Is a 404 error something wrong with my computer?

No, a 404 comes from the website, not from your device, browser or connection. Your browser reached the server and the server replied that it has no page at that address. Check the address for typos, go up a level to the section page or search the site. If a link on the site led you there, let the owner know.

### Why does my WordPress site show 404 on every page except the home page?

Almost always because the rewrite rules that turn pretty permalinks into WordPress requests are missing or broken. Go to Settings → Permalinks and click Save Changes, which rebuilds them. If that does not help, check that Apache has mod_rewrite on and allows .htaccess, or that the nginx config sends unknown paths to index.php with try_files.

### Why does Search Console report 404s for pages I never created?

Because Google finds URLs from everywhere: mistyped links on other sites, old sitemaps, spam links and addresses guessed from JavaScript. Those 404s are the correct answer and do no harm to the rest of your site. Only fix the ones that were real pages, have backlinks or appear in your own links or sitemap; leave the rest.
