A 404 not found error means the server can’t find the page at that URL, often because the link is wrong or the page moved.
You click a link and hit a dead end. No post, no product, no signup page. Just a blunt message and a small spike in frustration.
A 404 can look like a full-site meltdown, but it’s usually narrow. One URL fails while the rest of the site works. That’s why the right fix starts with the URL itself, then works backward to routing, redirects, and caching.
This page walks you through the fastest checks first, then the deeper fixes that stop repeat 404s from showing up in search results, emails, and old bookmarks.
404 Not Found Error In Plain English
A 404 status code is the server’s way of saying it received your request, understood it, and still can’t locate a page at that path. It’s not a timeout. It’s not a login problem. It’s a “nothing lives here” response.
It helps to separate two things: the browser message you see, and the HTTP status code under it. Many themes dress the page up with custom text, but the status code stays the same.
Common Places 404s Come From
- Mistyped URL — A missing dash, wrong folder, or extra character sends the request to a page that never existed.
- Moved page — The content still exists, but the old link points to the previous path and no redirect is in place.
- Deleted page — The URL used to work, then the page was removed without a replacement.
- Bad internal link — A menu item, button, or in-content link points to the wrong slug.
- Rewrite or routing issue — The page exists in your CMS, yet the server rules don’t map clean URLs to it.
What A 404 Is Not
- Server down — That’s closer to a 5xx response, where the server fails to fulfill the request.
- Access denied — That’s usually a 401 or 403, where the server blocks you from a page that does exist.
- DNS failure — That happens before your request reaches the website’s server at all.
Why You Get A 404 Page Not Found Message
Most 404s are self-inflicted in boring ways. A link gets pasted with a missing character. A page slug changes during a redesign. A category path gets removed. The site works, yet one doorway doesn’t.
If you want a fast read on what you’re dealing with, match the situation to a quick check in the table below.
| Cause | What You’ll Notice | Fast Check |
|---|---|---|
| Wrong slug | Only one link fails | Compare the link to the real page URL |
| Missing redirect | Old links from Google or social fail | Search your site for the page title and copy the new URL |
| Trailing slash mismatch | Works with / but not without it | Try both forms and note which one loads |
| Rewrite rules off | Many pages fail at once | Test a plain URL like /?p=123 if using WordPress |
| Cached routing | Fails for some people, not others | Open in a private window and test again |
Small URL Details That Cause Big Headaches
- Case changes — Some servers treat /Page and /page as different paths.
- Extra tracking bits — A malformed query string can break routing on strict setups.
- Double slashes — /blog//post can fail on certain rulesets.
- File extensions — Linking to /page.html when the site uses clean slugs can trigger a miss.
Quick Checks Before You Change Anything
Before you edit settings or install plugins, confirm what’s broken and where the request goes. Five minutes here can save an hour of random toggles.
Confirm The URL And The Scope
- Reload in a private window — This reduces browser cache and extension interference.
- Try the homepage — If the homepage loads, you’re likely dealing with a path-level issue.
- Test a second page — If multiple pages fail, you may be in rewrite-rule territory.
- Remove the end of the path — Step back folder by folder to see where it starts failing.
Check If The Page Exists Under A New Address
- Use your site search — Search the title or a unique phrase from the page.
- Check your CMS pages list — Confirm it’s published and not set to draft or private.
- Scan recent changes — If you changed slugs, categories, or permalinks, that’s a strong lead.
Identify Where The Bad Link Lives
- Inspect the clickable element — Menus, buttons, and banners often hold stale links after a redesign.
- Search your content — Use your editor search to find the old URL across posts.
- Check your email templates — Welcome emails and promos can keep old links alive for months.
Fixing 404 Not Found Errors On WordPress And CMS Sites
If you’re running WordPress or another CMS, a lot of 404s come from permalinks, rewrite rules, and cached routing. The page exists in the admin area, but visitors can’t reach it by its clean URL.
Reset WordPress Permalinks The Safe Way
- Open Permalinks — Go to Settings, then Permalinks in your WordPress dashboard.
- Save without changes — Click Save Changes even if you keep the same structure.
- Retest the failing URL — If it starts working, the rewrite rules were out of sync.
Set Up Redirects When A Page Moved
When a page moved, the clean fix is a redirect from the old URL to the new URL. That protects bookmarks, old shares, and search listings.
- Find the new page URL — Open the page that replaced the old one and copy its address.
- Create a 301 redirect — Map old path to new path in your redirect tool or server config.
- Test both paths — The old URL should land on the new page in one hop.
Fix Internal Links At The Source
Redirects are handy, yet a site with lots of internal redirects feels sluggish and messy over time. When the broken link is inside your own content, fix it where it lives.
- Edit the menu item — Update the URL in your navigation builder and save.
- Update in-content links — Replace the old slug inside posts and pages.
- Clean up buttons and footers — Reusable blocks and footer widgets often hide stale links.
Handle Media And Attachment URL 404s
- Check the file path — Confirm the image or PDF still exists in your uploads folder.
- Reupload if missing — Upload the file again and update the link to the new path.
- Avoid hotlink breaks — If you linked to a file on another site, it can vanish without notice.
Server And DNS Fixes For Persistent 404s
If a lot of pages return 404 at the same time, or if permalinks resets don’t change anything, shift your attention to the server layer. This is where rewrite rules, document roots, and proxies can trip you up.
Check The Document Root And Site Folder
- Confirm the domain points to the right folder — A mispointed root can serve the wrong site or an empty directory.
- Verify index files — The homepage might load from a cached layer while deeper paths fail.
- Review recent host changes — Moving hosts, changing control panels, or swapping stacks can reset defaults.
Review Rewrite Rules And Routing
- Check .htaccess on Apache — A missing or blocked rewrite section can break clean URLs.
- Check nginx location rules — A wrong try_files line can route every request to a 404 handler.
- Retest a plain parameter URL — On WordPress, a URL like /?p=123 can help narrow the problem.
Watch For CDN And Cache Side Effects
A cache or CDN can keep serving an older routing state. That’s why a URL can work for you and fail for a visitor in another region.
- Purge CDN cache — Clear cached pages after redirects, permalink changes, or migrations.
- Bypass cache for testing — Use a private window and add a harmless query like ?test=1 if your setup allows it.
- Check origin response — Test the site without the CDN layer when possible to see the raw server result.
Confirm DNS And Host Records When A Domain Moved
- Verify A and CNAME records — A domain pointing at the wrong server can show 404 on every path.
- Check the www and non-www match — If one points elsewhere, users get split behavior.
- Wait for DNS propagation — After changes, some networks may still reach the old target for a while.
Prevent Repeat 404s With Clean Links
Once you’ve fixed the current break, put guardrails in place so you don’t keep playing whack-a-mole. The goal is fewer broken links, fewer redirect chains, and fewer surprises after edits.
Use A Simple URL Policy For New Pages
- Pick one slug style — Stick to lowercase words with hyphens and keep it steady across the site.
- Avoid date-based slugs unless needed — Dates can make later updates awkward when content stays useful.
- Keep folders consistent — If you use /blog/ for posts, don’t mix in random paths for similar content.
Set Redirect Habits For Changes And Deletes
- Redirect on every slug change — When you rename a URL, add the 301 at the same time.
- Redirect deleted pages with links — If a page has inbound traffic or backlinks, point it to the closest match.
- Return 410 for true removals — If you want a page gone with no replacement, a 410 can signal removal more clearly than a generic 404.
Audit Internal Links On A Schedule
Broken internal links are the easiest to fix, since you control them. A quick routine keeps your site tidy and stops a small issue from spreading into menus, footers, and templates.
- Crawl your site — Run a link check tool and export the 404 list.
- Fix the source link — Update menus, content, and templates so they point to the final URL.
- Trim redirect chains — If old URL goes to URL A then URL B, redirect old URL straight to URL B.
Make Your 404 Page Useful Without Hiding The Problem
A friendly 404 page helps visitors recover. It should still return a true 404 status code, not a sneaky 200, so tools and crawlers can spot real misses.
- Add a clear search box — Let people search the site without backtracking.
- Link to top sections — Offer a short list of popular categories or the main blog page.
- Show a clean message — Say the page isn’t found and invite them to try another link.
If you’re seeing a 404 not found error on one page, start with the URL and internal links. If you’re seeing a 404 not found error across many pages, reset routing and check rewrites, caching, and domain targets. Either way, you’ll get faster wins by testing in a tight order and changing one thing at a time.
