How to Fix WordPress 404 Errors With Plugins or Manually
Fix WordPress 404 errors with a plugin for moved URLs or built-in settings for broken permalinks, and leave truly missing pages with a proper 404 response.
Last updated:
Reviewed for accuracy by Jesse Nickles
Find out why the page returns 404
Open the broken URL and check the corresponding item under Posts → All Posts or Pages → All Pages in WP Admin. The fix depends on what happened:
| Situation | Recommended action |
|---|---|
| URL changed | Redirect the old URL to its replacement. |
| Page still exists | Check its status, slug, and permalink settings. |
| Page was deleted | Restore it or retain a 404/410 response if no suitable replacement exists. |
If the homepage loads but many published post URLs return 404, suspect a permalink rewrite problem in WordPress or the web-server configuration, not missing pages. Check Settings → Permalinks first, as explained in WordPress's 404 troubleshooting guidance.
Redirect moved URLs with a plugin
The free Safe Redirect Manager plugin by 10up lets you create permanent redirects from WP Admin.
- Go to Plugins → Add New Plugin, search for Safe Redirect Manager, then install and activate it.
- Open Tools → Safe Redirect Manager and add a new redirect.
- Set Redirect From to the old path, such as
/old-page/. - Set Redirect To to the working replacement, such as
/new-page/. - Choose 302 under HTTP Status Code and publish the redirect while testing.
- Visit the old URL in a private browser window. Once it reaches the right page, change the status code to 301 and save the redirect. Browsers can cache 301 redirects aggressively.
Use a path relative to your WordPress installation for Redirect From. Redirect To accepts a path or a full URL. You do not need regex or wildcard matching for a single moved page. Rules can also redirect URLs that still work, so keep them specific. See 10up's configuration instructions.
Safe Redirect Manager does not include a 404-request log. To identify broken URLs, check reports in Google Search Console or your server logs, then redirect only URLs with genuinely relevant replacements. Ignore random bot requests for nonexistent paths.
Fix broken permalinks without a plugin
If a published page still exists at its intended address but returns 404, check WordPress before installing another plugin:
- Edit the post or page and confirm its status is Published and its URL slug matches the address you are opening.
- Go to Settings → Permalinks in WP Admin.
- Leave the current permalink structure unchanged and click Save Changes to refresh WordPress's rewrite rules.
- Reload the affected URL and test another published post or page.
If the error persists across many working posts, the host may need to repair Apache .htaccess rules or Nginx routing. Nginx does not use .htaccess, and WordPress cannot write its server configuration automatically. Ask your host to check the rewrite configuration rather than pasting unfamiliar rules into a live server. For Nginx details, see the official WordPress Nginx guidance.
A redirect plugin cannot repair a server-level 404 if the request never reaches WordPress.
Know when a 404 should stay
If a page was permanently deleted and there is no genuinely similar replacement, returning 404 (not found) or 410 (gone) is appropriate. Do not redirect unrelated missing URLs to the homepage simply to remove errors from a report. If content moved to a close replacement, a 301 redirect is the better choice. Google's crawling error guidance explains the distinction.
If you use HoverCraft, its 404 page follows the site's design while WordPress determines when a URL is not found.
Check the result
- Open the original URL. A repaired page should load normally, while a moved URL should redirect to the intended replacement.
- Check that a permanent redirect returns
301and ends at a working page without unnecessary redirect chains. Browser developer tools or an HTTP status checker can show the response codes. - Update internal links to use the working final URL rather than relying on the redirect.
- If Google Search Console previously reported the URL, inspect it again after the fix. Search results and reports can take time to reflect a change.