A 404 Not Found error means the website cannot find the page or file requested. The address may be wrong, the page may have moved, or it may have been deleted.
On WordPress, the page can sometimes still exist even though visitors see a 404. WordPress may have lost track of how its page addresses are organised.
This article is part of our Common Web Server Errors Explained series.
The short version
One occasional 404 is normal. If one important page is missing, check whether its address changed and add a redirect when there is a suitable replacement. If the homepage works but every other WordPress page shows 404, the permalink rules probably need attention.
Do not send every missing page to the homepage. Fix genuine broken links and let truly missing pages return an honest 404.
What does a 404 Not Found error mean?
When a browser asks for a URL, the server attempts to locate the corresponding resource or pass the request to an application such as WordPress. If no matching page, post, file or route can be found, the response should be 404 Not Found.
The error is a normal part of HTTP. It tells browsers and search engines that the requested resource is not available at that address. A properly designed website will usually display a helpful branded page while still returning the correct 404 status code behind the scenes.
Problems arise when a genuine page returns 404, when old high-value URLs are abandoned without redirects or when the custom error page returns 200 OK. That last problem is known as a soft 404: the page looks missing to a person, but the server incorrectly says the request succeeded.
Common causes of 404 errors
The simplest cause is a typing mistake. URLs are exact, and a missing character, changed path or incorrect file extension can lead to a page that does not exist.
Content changes are another common source. A page may have been deleted, renamed or moved during a redesign. If links, navigation, search results and marketing campaigns still use the old address, visitors will keep reaching the 404 page.
WordPress adds its own possibilities. It uses rewrite rules to turn readable addresses such as /services/web-hosting/ into internal requests the application understands. If those rules are missing or damaged, the homepage may work while posts and pages return 404.
If the requested page exists but the application fails while trying to generate it, the result may instead be a 500 Internal Server Error. That distinction is one reason checking the actual HTTP status matters.
Custom post types and plugins can register their own URL structures. A plugin update, deactivation or code change can remove those routes. Taxonomy, category and multilingual plugins can produce conflicts when two components try to use the same slug.
Migrations frequently expose 404 problems when the site moves from a subdirectory, changes domain, switches between Apache and NGINX or loses server-specific rewrite configuration. Files may also be absent because the migration did not copy the full uploads directory.
Finally, security rules can disguise denied access as 404 to avoid revealing that a protected resource exists. In that case, the response is intentional even though the file may be present.
How to diagnose a 404 error
Start with the scope. Does one address fail or do all internal pages fail? If the homepage works but every post and page returns 404, investigate permalink and rewrite rules. If only one page fails, check its slug, publication status and redirects.
Confirm the exact URL and test it without tracking parameters. Search the WordPress administration area for the content and view its current permalink. If the content exists at a different address, decide whether the old URL should redirect to it.
Check whether the problem affects media files, application pages or ordinary WordPress content. A missing image points towards the uploads path, file storage or migration. A missing WooCommerce endpoint may involve plugin settings or rewrite rules. A post-only issue may involve permalink configuration.
Review access and error logs for the requested path, especially when the error is intermittent or only affects certain visitors. Search analytics and Google Search Console can also show which missing URLs receive real traffic and which are simply automated noise.
As always, ask what changed. A migration, plugin update, permalink edit, page rename or new CDN rule provides a much stronger starting point than the error page alone.
How to fix WordPress pages returning 404
If multiple WordPress pages suddenly return 404, open Settings → Permalinks and save the existing structure again. This prompts WordPress to regenerate its rewrite rules. You do not need to change the permalink format.
On Apache hosting, confirm that the WordPress .htaccess rules exist and that the server allows them to operate. Preserve a copy before editing. On NGINX, permalink handling is part of the server configuration rather than .htaccess, so the hosting provider may need to review the site's location and fallback rules.
If one page is affected, verify that it is published, not private or in the bin, and that no other page or custom post type is using the same slug. Open it through the WordPress editor and compare the displayed permalink with the failing address.
For plugin-generated content, refresh the plugin's routing or permalink settings and check its compatibility with the current WordPress and PHP versions. Deactivating a plugin that owns a custom post type can make its content appear to vanish even though the database records remain.
After a migration, confirm that the new environment uses the correct site URL, website folder and address-routing rules. Search-and-replace operations should be handled carefully because WordPress stores some settings in a special database format that careless replacements can damage.
Clear application, server and CDN caches after the correction. A cached 404 can persist after the page becomes available.
When should you create a redirect?
If a page has moved permanently and there is a genuine replacement, use a 301 redirect from the old URL to the most relevant new one. This helps visitors and allows search engines to transfer many of the signals associated with the old address.
Do not redirect every missing URL to the homepage. It creates a confusing experience and may be treated as a soft 404. A discontinued service should lead to its replacement or a closely related category. A mistyped or meaningless URL is usually better served by a useful 404 page.
If content has been deliberately removed with no replacement, returning 404 is acceptable. A 410 Gone response can be used when you want to state explicitly that the resource was intentionally removed, although 404 is sufficient for most sites.
Redirects should also avoid chains. If /old-page/ redirects to /newer-page/, which then redirects again, update the original rule to point directly to the final destination.
Building a useful 404 page
A good 404 page should acknowledge the problem and help the visitor continue. Include clear navigation, a search function and links to important services or popular resources. Keep the language straightforward; the visitor wants a way forward, not an elaborate joke.
The page must still return a 404 status. A visually attractive error template that returns 200 misleads search engines and monitoring tools.
Track visits to the error page or analyse server logs, but avoid treating every 404 as urgent. Prioritise URLs with legitimate referral traffic, internal links, backlinks or a history in search results.
Is a 404 a hosting issue or an application issue?
Most individual 404 errors are content or application matters. The hosting platform correctly received the request and WordPress could not match it to content.
The hosting provider becomes relevant when rewrite rules do not operate, the document root is wrong, files were not migrated, server configuration blocks a path or caches continue serving an old response. They should be able to confirm whether the request reaches WordPress and whether the expected file exists.
The website owner or developer is generally responsible for URL design, content status, internal links, application routes and redirects. The fastest diagnosis comes from identifying whether the server failed to route the request or WordPress received it and found no content.
How to prevent 404 errors
Avoid changing established URLs without a reason. When a change is necessary, record the old and new addresses and implement redirects as part of the same release.
Crawl the website after migrations and redesigns to find broken internal links. Test navigation, sitemaps, forms, media and important landing pages before changing DNS. Preserve redirect maps when replacing plugins or platforms.
Monitor Search Console, analytics and logs for high-value missing URLs. Keep a custom 404 page in place, but do not let it become a substitute for maintaining links.
For WordPress, use a staging site to test changes to permalink structures, multilingual configuration, custom post types and routing plugins. Back up the site before bulk URL changes and make sure rollback is practical.
Frequently asked questions
Will 404 errors hurt SEO?
A few normal 404s do not damage an entire website. Problems arise when important indexed pages disappear, internal links are broken or backlinks lead nowhere. Redirect moved content and correct accidental errors.
Why does my WordPress homepage work but every other page shows 404?
This usually points to broken permalink or rewrite rules. Save the permalink settings again, then check .htaccess on Apache or the site configuration on NGINX.
Should I redirect all 404 errors to the homepage?
No. Redirect only when there is a relevant replacement. Unrelated homepage redirects frustrate visitors and can look like soft 404s to search engines.
What is a soft 404?
A soft 404 occurs when a page appears missing or empty but returns a successful 200 response, or when an irrelevant redirect hides the missing page. The server should return an accurate status code.
Can caching cause a 404?
Yes. CDNs, reverse proxies and WordPress caching plugins can retain a 404 response. Fix the underlying route first, then purge all relevant cache layers.
Why do logs show 404s for pages that never existed?
Bots constantly request common administration paths, vulnerable files and invented URLs. Those 404s are expected. Focus on requests that affect real users, internal links or search traffic.
Final thoughts
A 404 error is not automatically a server failure and it is not always something to "fix". Sometimes the correct response to a request for missing content is 404.
The important work is separating harmless noise from lost content, broken WordPress routing and valuable old URLs that deserve redirects. Diagnose the pattern, preserve useful paths and let genuinely missing resources return an honest response.
At Network Dynamics, our engineers can help diagnose the error, explain the cause in plain English and recommend a practical next step. You will not be left wondering whether the page is genuinely missing, WordPress routing has failed, a migration is incomplete or the hosting configuration needs attention-or who needs to fix it.
Continue with What Is a 429 Too Many Requests Error?, or return to Common Web Server Errors Explained.



