Skip to content
Website Rescue Rescue

Server Errors

404 Not Found

Intermediate Risk: medium

Last reviewed

Hosting access often needed Database access usually not needed

Direct answer

404

A 404 means the server responded but could not find a matching resource—on WordPress that is usually broken permalinks, a deleted/unpublished page, a wrong document root after migration, or a CDN still caching an old 404. Confirm the URL exists in wp-admin, resave permalinks, and purge caches before rewriting the whole site.

HTTP 404 is not a server crash; it is a successful response that says “nothing here.” Visitors hit it after migrations, slug changes, or when pretty permalinks stop rewriting to index.php. This guide covers safe WordPress checks, hosting document-root mistakes, and edge caches that keep serving 404 after you already restored the page.

Intermediate

What the error means

Status 404 Not Found indicates the origin (or a cache in front of it) understood the request and decided no representation exists for that URL. Unlike DNS NXDOMAIN, the hostname resolved and TCP/TLS succeeded. On Apache/nginx WordPress installs, pretty permalinks rely on rewrite rules sending unknown paths to WordPress; if `.htaccess` or nginx rules are missing, every pretty URL 404s while wp-admin may still work. True missing content, wrong subdirectory installs, and CDN-cached 404 responses produce the same browser message for different underlying reasons.

Common symptoms

  • Browser or DevTools Network shows HTTP 404 for one or many URLs
  • Home page loads but posts, pages, or wp-admin pretty URLs 404
  • Only URLs after a migration, domain change, or permalink edit fail
  • The page exists in Pages/Posts but the public link 404s
  • CDN or Cloudflare still returns 404 after the origin page is restored
  • www vs non-www or HTTP vs HTTPS variants disagree on whether the page exists
  • Custom 404 template appears, proving WordPress is running but the slug is unmatched

Most likely causes

  1. 01 Permalink rewrite rules missing or broken (`.htaccess` / nginx config)
  2. 02 Page, post, or product deleted, drafted, or slug changed without redirects
  3. 03 Wrong document root or subdirectory after host or domain migration
  4. 04 Site URL / home URL mismatch so links point at a path that does not exist
  5. 05 CDN, reverse proxy, or page cache storing a 404 response
  6. 06 Security or redirection plugins rewriting paths incorrectly
  7. 07 Case-sensitive servers or trailing-slash rules treating URLs as different resources

What changed before the problem started

  • Settings → Permalinks changed or `.htaccess` overwritten
  • Site moved hosts, folders, or from staging to production
  • Page slug, parent page, or shop base renamed
  • CDN enabled or cache rules tightened
  • Domain or HTTPS cutover without updating WordPress URLs
  • Bulk import or search-replace that altered post names or GUIDs carelessly

Troubleshooting steps

  1. 01

    Confirm status 404 and which URLs fail

    In DevTools → Network, verify the response is really 404 (not 500, 403, or a soft redirect). Note whether the homepage, a single page, media files, or all pretty permalinks fail—that split drives the next step.

  2. 02

    Verify the content exists in wp-admin

    Search Pages, Posts, and Products for the title or slug. If it is trash, draft, or private, restore/publish it. If the slug changed, update menus and add a redirect from the old URL instead of guessing at the server.

  3. 03

    Resave permalinks to regenerate rewrites

    In Settings → Permalinks, click Save without changing settings (when admin loads). That rebuilds rewrite rules. If admin itself 404s on pretty URLs, restore a default WordPress `.htaccess` via FTP/File Manager first, then resave.

  4. 04

    Check document root and install folder

    Confirm the domain’s document root points at the WordPress directory that contains `wp-config.php` and `wp-content`. After migrations, domains often still point at an empty `public_html` or an old subdirectory copy.

  5. 05

    Purge CDN and page caches that may store 404

    Purge Cloudflare or other CDN caches for the URL, and clear WordPress page-cache plugins. Edge networks sometimes cache 404s; fixing origin alone will not update visitors until purge.

  6. 06

    Compare Site Address and WordPress Address

    In Settings → General (or wp-config URL constants), ensure home and siteurl match the domain and protocol people use. Mismatched URLs generate links that 404 on the “wrong” host or path.

When to stop troubleshooting

Escalate when the whole site 404s after a migration you cannot reverse, document root and DNS ownership are unclear, nginx/Apache config is locked by the host, or ecommerce category/product URLs stay broken through revenue hours. Bring DevTools status codes, a sample failing URL, and whether permalinks save changed anything.

Information to collect before requesting help

  • 01 Exact failing URL(s) and whether the homepage works
  • 02 DevTools status code and response headers (server, cf-cache-status if any)
  • 03 Whether the content exists in wp-admin and its slug/status
  • 04 Recent migration, permalink, domain, or CDN changes
  • 05 Whether Settings → Permalinks → Save changed the symptom
  • 06 Document root path and whether WordPress lives in a subdirectory
  • 07 Hosting provider and whether Apache or nginx is in use

How a professional repairs the problem

We confirm a true 404, separate missing content from broken rewrites and wrong document roots, regenerate permalinks, correct WordPress URLs, purge edge caches, and add redirects for renamed slugs. The goal is real pages at the advertised URLs—not a blanket redirect of every 404 to the homepage.

Frequently asked questions

Is a 404 the same as the site being down? +
Not usually. Down often means DNS failure, connection timeout, or 5xx. A 404 means something answered and said the path was missing. Fix the path, rewrites, or content—not necessarily the whole server.
Why do posts 404 while the homepage works? +
Classic broken pretty permalinks: the front page file is found, but rewrite rules never hand other paths to WordPress. Resaving permalinks or restoring `.htaccess`/nginx rules usually fixes it.
Can Cloudflare cache a 404? +
Yes. If the origin returned 404 earlier, the edge may keep serving it. Purge the URL after the origin is fixed and review whether your cache rules store 404s too aggressively.
Should I redirect all 404s to the homepage? +
Avoid that as a permanent SEO strategy. Soft-redirecting every missing URL confuses users and search engines. Restore real pages or use specific 301s to the best replacement content.
How is this different from DNS_PROBE_FINISHED_NXDOMAIN? +
NXDOMAIN never reaches your server. A 404 reaches the server (or CDN) and gets an HTTP response. Different layer, different fix.
Can a wrong document root cause 404 on every URL? +
Yes. If the vhost points at an empty directory or an old deploy without your posts, you get widespread 404s even though a complete WordPress copy exists elsewhere on the account.

Repair dispatch

Still Need Help Fixing Your Website?

If you are not comfortable editing website files, changing server settings, repairing a database, or troubleshooting a live website, professional help may prevent additional damage or downtime. We will review the problem before accepting the repair.

  • You will receive a clear explanation of the likely cause.
  • We will tell you if the issue falls outside our repair scope.
  • No additional work will be performed without approval.
  • A backup should be created whenever access and website condition allow it.

Do not share passwords through an unencrypted contact form.

Written by Website Rescue

Last reviewed

Platform note: Full rescue available for WordPress and self-hosted sites. Wix, Squarespace, Webflow, Weebly, and similar closed builders have very limited backend access — fixes may not be possible. I will tell you honestly before we start.