A laptop shows a website homepage and a broken post warning connected by an amber path.

WordPress Permalinks Not Working? Fix Post 404 Errors

If WordPress permalinks return 404 errors, first resave Settings > Permalinks without changing the structure. If posts still fail, investigate rewrite rules, caching, plugin conflicts and the configured site address.

A working homepage alongside broken posts often points to a routing problem, rather than missing content. For a small business, those broken links can interrupt enquiries and leave clients unable to reach useful pages.

Work through these fixes in order, testing the same affected URL after each change.

Key takeaways

  • Back up files and the database before changing plugins, configuration or server files.
  • Refresh permalink rules before changing URL structures or creating redirects.
  • Apache and Nginx handle rewrites differently, so use the troubleshooting route that matches your hosting.
  • Test recovered posts whilst logged out, then check campaign links and enquiry forms.

1. Establish which URLs are failing

Open the homepage, two published posts and /wp-admin/ separately. Record which addresses fail, the response shown and when the problem began. Include any recent migration, plugin update or deployment.

If only one post fails, find it under Posts > All Posts. Confirm that it’s published, then open its current address from the editor. An old bookmark may point to a previous address.

If every post fails whilst the homepage works, rewrite routing is a stronger suspect. However, a 403 response indicates refused access, whilst a 500 response indicates a server failure. Those need different investigations.

Use a private browser window to test public access. Before deeper changes, take a recoverable backup, including hidden files such as .htaccess. Keep a note of each change so unsuccessful tests remain reversible.

2. Resave WordPress permalinks without changing them

A network router connected by glowing amber paths to a website card and three page tiles.

In the dashboard, open Settings > Permalinks. Record the selected structure, leave it unchanged and select Save Changes.

This refreshes WordPress’s rewrite rules, which connect requested addresses to the right content. On a writable Apache installation, WordPress can also regenerate its own .htaccess rules. Preserve custom redirects and security rules before troubleshooting that file.

Next, reopen the exact failing post in a private window. Test another post and a category archive too. If they load, you’ve restored routing without deliberately changing public URLs.

Re-saving can also help after custom post types introduce new routes, as covered in SmartWP’s permalink guide.

If publishing also produces an error, our guide to diagnosing failed WordPress updates covers the separate editing request. A working public post doesn’t prove that saving content works.

3. Check the rewrite setup for your server

Resaving that option won’t repair every server-level problem. Establish whether your web hosting uses Apache, Nginx or a combination before touching configuration.

On Apache, preserve and inspect .htaccess

Enable hidden files in your hosting File Manager or SFTP client, then download a copy of .htaccess. Preserve custom redirects and security directives separately.

Ask hosting support to inspect the WordPress rewrite section, confirm that Apache’s rewrite module is available and establish whether the server honours .htaccess. Incorrect ownership can also prevent WordPress from updating the file.

Don’t replace the entire file with a generic template or use 777 permissions as a shortcut. Both can introduce problems unrelated to the original 404.

After a targeted repair, resave permalinks and retest the original post. If the symptom becomes a server error, follow our WordPress 500 error troubleshooting instead.

On Nginx, investigate the server configuration

Nginx doesn’t use .htaccess, so creating or renaming that file won’t fix its routing.

The WordPress Nginx documentation explains why pretty permalinks need different handling. Ask the server administrator to inspect the configuration serving this installation and match the failed request to its logs.

Retest both the homepage and an internal post after the repair. The homepage alone isn’t a sufficient test.

4. Separate caching problems from plugin conflicts

A stale cached response can make a successful repair appear ineffective. Meanwhile, plugins can change routes or redirect requests.

Clear cached errors before making further changes

Purge the WordPress caching plugin, hosting cache and CDN cache where used. Then reopen the affected address whilst logged out.

A private window avoids some browser state, but it doesn’t bypass a cached response held by the host or CDN. Also, deactivating a caching plugin doesn’t necessarily remove files or responses already cached elsewhere.

If the post now works, repeat the test after caches rebuild. Otherwise, continue with controlled conflict testing rather than repeatedly clearing caches.

Isolate plugins on a protected staging copy

Record active plugins and versions, then use staging wherever possible. Pause email marketing, lead-generation workflows and other connected automations so tests don’t contact real clients.

Deactivate ordinary plugins, resave permalinks and test the same post. If it works, reactivate plugins individually, enabling parent plugins before dependent add-ons.

Repeat the test after every activation. This identifies the change that restores the fault.

Don’t casually switch a live theme during an outage. Theme changes can alter navigation and layouts, making the original failure harder to isolate.

5. Verify the site addresses and installation location

Open Settings > General and record WordPress Address and Site Address before editing anything.

For a standard installation, these normally match, including HTTPS and any www prefix. However, WordPress can deliberately live in a subdirectory whilst the public site uses the domain root. Preserve that arrangement.

After a move, compare the old version to the new version. Confirm that the public address points to the intended installation. Menus, campaign links or stored values may still point to staging or an old domain. Our WordPress migration checklist covers these related risks.

Ask hosting support to confirm that the domain points to the intended installation. Its document root should correspond to the correct WordPress files.

Don’t run an ordinary text replacement across a database export. WordPress and plugins can store serialised data that requires a compatible replacement method.

6. Choose a structure and edit slugs deliberately

A man wearing glasses and a green hoodie reviews a computer monitor at a wooden desk.

A permalink is the permanent address of a post, page or custom post type. The permalink structure determines the path WordPress generates after the domain name.

Compare the available permalink structures

The options below let you choose how WordPress builds each address.

StructureWhat it includesPractical use
PlainA query containing the post IDFunctional, but doesn’t describe the content
Post nameWords from the post title, separated by hyphensA clear choice for most business websites
Day and namePublication date and slugDate-led publishing
Month and namePublication month and slugArchives organised around publication dates
Custom structureSelected structure tagsSites with a defined URL requirement

Post name is a sensible starting point for a new service website. Plain addresses remain indexable, but their numbers give readers and search engines little information and can weaken SEO clarity.

Date-based structures suit high-volume publishing where dates matter. Custom tags can include category, day, hour or minute, but extra detail rarely makes a business address more useful.

Edit a new post’s slug before publishing

Before you publish, include a keyword in the address only when it accurately describes the post.

WordPress usually creates the slug from the title. In the post settings sidebar, find the link or slug control and edit it before publishing.

Keep the subject or target keyword and remove unnecessary words. Separate words with hyphens.

A title can change later without requiring a new address. On an established site, keep working addresses unless there’s a clear reason to change them.

7. Redirect changed live URLs to their replacements

Changing the permalink structure affects the URLs WordPress generates for existing posts. However, it doesn’t guarantee that every previous address will redirect correctly.

Before changing a live structure, record existing URLs and map each old version to the new version. A clear map helps search engines process each replacement and helps preserve search traffic through relevant redirects. Include important pages linked by campaigns, directories and other websites.

For a changed live address, create a 301 redirect to the relevant new URL using the site’s established redirect system. Redirect an old service page to its replacement, rather than sending every missing address to the homepage.

Then request the old address and inspect the browser’s Network panel. It should return a 301 response and reach the intended destination. Update internal links to point directly to that destination.

Restore accidentally deleted content where appropriate. A genuinely removed page with no relevant replacement can correctly return 404.

8. Confirm recovery and escalate persistent errors

Test more than the post you first noticed. Open several posts, archives and important landing pages on desktop and mobile.

Use the Network panel to confirm recovered pages return 200, not an error message behind a successful status. A 200 response confirms availability, but doesn’t guarantee SEO visibility.

Then submit a controlled enquiry and confirm that it reaches the intended system.

Retest destinations used by social media, email campaigns and your Google Business Profile. Retesting can catch broken links before they cost you search traffic. It also protects digital marketing journeys and local SEO links.

Contact hosting support when resaving fails, server rules need attention or the fault follows a migration. Send affected URLs, exact timestamps with time zone, recent changes and tests already completed.

Record the repair in your website support plan so website care and maintenance includes regression checks.

If your agency needs technical support across development and hosting, See how we collaborate with creative agencies.

Frequently asked questions

Will resaving permalinks delete my posts?

No. Saving the existing structure refreshes routing rules without deleting posts or uploads. Nevertheless, back up files and the database before deeper troubleshooting, particularly when custom rewrite rules are involved.

Should I switch to Plain to fix post 404s?

Plain URLs can help distinguish a rewrite problem, but avoid using a structure change as a permanent workaround. Record the original setting first. Repair the routing fault so established public links continue working.

Restore working links before changing your URL strategy

Start with reversible fixes: resave the existing permalink structure, clear cached errors and isolate conflicts. Move to server investigation if those steps don’t restore your posts.

Keep troubleshooting separate from URL redesign. Recovery is complete when existing links reach the right content and visitors can complete their enquiries.

Leave a Reply

Your email address will not be published. Required fields are marked *