404 Resource Not Found | Fix Fast And Stop Broken Links

A 404 Resource Not Found error means the server can’t find the URL you requested, usually because the page moved, was removed, or the link is wrong.

A 404 is part of life on the web. People mistype links. Old bookmarks linger. You rename pages during a refresh. None of that is a crisis.

What hurts is a 404 that hits pages people rely on, like a product page, a lead form, or a blog post you still share in emails. That’s when visitors bounce, and search engines start treating those URLs as dead ends.

What A 404 Resource Not Found Means

In HTTP terms, a 404 tells the client that the server can’t find a current representation of the target URL. That definition is intentionally broad, since “resource” can be a page, a file, or an API endpoint.

It also helps to know what a 404 is not. It is not a DNS failure. It is not “your site is down.” It is your server responding, then saying the specific URL requested is missing.

Status Code What It Signals When You’d Use It
404 URL not found at this time Page moved or removed, or the URL is wrong
410 Gone on purpose You removed the page and don’t want it back
301 Moved permanently You replaced the old URL with a new one
302 Moved temporarily Short-term routing, testing, or maintenance

If you’re dealing with SEO, the difference between a true 404 and a “soft 404” matters. A soft 404 is a page that looks like “not found” to users, yet it returns a 200 OK status. Google has said it may treat those as soft 404s and recommends returning a real 404 for missing pages.

404 Resource Not Found In WordPress And Beyond

This error shows up in WordPress, Shopify, custom stacks, and headless apps. The symptoms can look the same, yet the cause can differ.

On WordPress, a classic pattern is “homepage works, posts return 404.” That points to rewrite rules or permalinks. On a custom app, it might be routing, a missing file, or a proxy rule.

Common Places The Failure Starts

  • Typed Or Copied URL — A missing character, extra slash, or wrong path can trigger a 404 right away.
  • Internal Link — Menus, old blog posts, and buttons can point to URLs that no longer exist.
  • External Link — Other sites may link to an old slug you changed months ago.
  • Server Routing — A rewrite rule, proxy, or app route can fail to match the request.
  • Permissions And Rules — Some setups return a 404 when access is blocked to avoid revealing content.

If your site runs behind a CDN or caching layer, the 404 can also be cached. That can make the issue feel random, since one person sees the page while another still gets the error.

How To Confirm The Real Cause

Before you “fix,” confirm what’s actually happening at the server level. You want to know the exact URL, the status code returned, and where the response is generated.

Fast Checks That Save Time

  1. Copy The Exact URL — Paste it into a plain text editor, then reload it to rule out hidden characters.
  2. Test Another Browser — Try a private window to bypass extensions and stale cache.
  3. Check The Status Code — Use a header checker or browser dev tools to confirm you’re seeing a true 404, not a 200 page that says “not found.”
  4. Try The Origin — If you use a CDN, test the origin host directly to see where the 404 starts.

When a search engine is involved, Google Search Console can help you pinpoint which URLs are being crawled and flagged. If a URL is labeled “soft 404,” that usually means the content looks thin or missing while the server returns a success code.

Log Clues That Point To The Source

  • Request Path — Confirms the exact URL your server received, including trailing slashes.
  • Referrer — Shows where the broken link came from, which is gold for internal fixes.
  • User Agent — Helps you spot bots, scanners, or real visitors hitting old URLs.
  • Timestamp Patterns — Spikes after a deploy often point to routing or rewrite changes.

Fixing 404 Resource Not Found Errors After A Change

Most 404s follow a change: a redesign, a plugin update, a new slug, a migration, or a new routing rule. Start with the simplest fixes, then move to deeper ones.

WordPress Permalink And Rewrite Fixes

If posts or pages suddenly return 404 and WordPress admin works, rewrite rules are a prime suspect.

  1. Resave Permalinks — Go to Settings, then Permalinks, then click Save Changes without changing anything.
  2. Check The .htaccess File — Confirm the file exists and is writable, then restore the standard WordPress rules if they were altered.
  3. Disable Recent Plugins — Turn off plugins added or updated around the time the 404s began, then test again.
  4. Switch Themes Briefly — A theme can register custom routes. A quick swap can reveal a theme-level issue.

Routing And Server Rules On Custom Sites

On a custom stack, routing is the usual culprit. A request that doesn’t match any route ends in a 404, even if the content exists elsewhere.

  • Review Route Patterns — Confirm dynamic routes match real URLs, including optional segments.
  • Check Trailing Slash Rules — Make sure slash and no-slash versions don’t split traffic.
  • Verify Case Sensitivity — Linux servers treat /Page and /page as different paths.
  • Confirm Static File Paths — A moved image folder can break asset URLs at scale.

Content That Was Moved Or Deleted

Sometimes the server is right: the page is gone. In that case, pick the clean response that matches your intent.

  1. Restore The Page — If it was deleted by mistake, bring it back under the same URL.
  2. Redirect To The Best Match — If there’s a clear replacement, use a 301 to send users and bots to the new URL.
  3. Return A 410 — If the content is removed on purpose and has no replacement, a 410 can be cleaner than looping redirects.

When you write a redirect, keep it honest. Redirecting every missing URL to the homepage tends to frustrate visitors and can look like a soft 404 pattern.

Redirect Or Retire Pages Without Making A Mess

Redirects can save you, or they can create a tangle that slows your site and confuses tracking. A simple rule keeps things clean: redirect only when the new URL is a true replacement.

Redirect Patterns That Work Well

  • Old Slug To New Slug — When you renamed a post, point the old URL to the new one.
  • HTTP To HTTPS — Keep this at the server level so it is fast and consistent.
  • WWW To Non-WWW — Pick one canonical host and redirect the other.
  • Category Changes — Redirect old taxonomy paths to the new structure.

When A 404 Is The Best Answer

A 404 is not a failure when the page truly should not exist. It tells bots to stop trying over time, and it tells users that the URL is wrong. The trick is to make the dead end less painful.

  • Add A Search Box — Let visitors find what they meant to find.
  • Show Popular Paths — Link to top categories or top articles, not a random wall of links.
  • Include A Clear Message — Say the page can’t be found and invite the next step.

If you manage large sites, keep an eye on “soft 404” signals in Search Console. Google’s own guidance on how HTTP status codes affect crawling is worth reading since it spells out how 4xx and 3xx responses are handled.

Keep Broken Links From Coming Back

Fixing a burst of 404s feels good, yet prevention is what keeps your time free. Most recurring 404 problems come from the same few habits: changing slugs without redirects, moving files without updating references, and launching without a link check.

A Simple Maintenance Flow

  1. Scan Internal Links — Use a crawler tool on staging or production to find broken links before users do.
  2. Watch 404 Reports — Review server logs or analytics weekly, then fix the top referrers first.
  3. Keep A Redirect List — Track why each redirect exists so you can clean old ones later.
  4. Test After Deploys — Run a quick smoke test on critical URLs every time you ship changes.

If your site is on WordPress, keep permalinks stable and resist frequent slug edits. If you must change them, add redirects right away. A steady habit beats a big cleanup every few months.

One Scroll Checklist

  • Confirm The Status Code — Make sure the page returns a real 404 when it is missing.
  • Find The Referrer — Fix the link source when it is internal.
  • Decide The Outcome — Restore, redirect, 404, or 410 based on whether a replacement exists.
  • Add The Redirect — Use a 301 when you have a true replacement URL.
  • Retest From A Clean Browser — Verify the fix with cache cleared.
  • Recheck Search Console Later — Watch indexing reports until the spike settles.

When you handle it this way, “404 resource not found” stops being a mystery error and turns into a normal maintenance task. And when it pops up again, you’ll know exactly where to start.

If you run into a case where “404 resource not found” appears only for bots or only in one region, start with your CDN and firewall rules, then confirm the origin response and cache behavior.