WordPress Permalinks Not Working: Effective Steps to Resolve 404 Errors

May 18, 2023

Have you ever clicked on a link on a WordPress site, only to be met with a frustrating 404 error page? As a website owner or developer, encountering broken permalinks can be a nightmare. Not only do they disrupt the user experience, but they can also have a negative impact on your search engine rankings.

Permalinks play a crucial role in helping users navigate through your content by providing a permanent, easy-to-remember link to a specific page or post. 

However, if these links are not working, it can cause a range of issues, including broken links, lost traffic, and unhappy users.

In this article, we’ll explore the reasons behind broken WordPress permalinks, the impact they can have on your website, and, most importantly, how to fix them. Whether you’re a website owner or a developer, you’ll learn valuable tips and tricks to help you troubleshoot and solve this common problem.

So, if you’re tired of dealing with broken permalinks and want to ensure a smooth user experience for your website visitors, read on to discover our step-by-step guide on how to fix broken WordPress permalinks. 

Plus, we’ll walk you through the bits and bytes of a powerful plugin, WooCommerce Permalink Manager, that can help you avoid these issues altogether!

This guide was updated in 2026, and every step below has been checked against the current version of WordPress.

Why are my WordPress permalinks not working?

WordPress permalinks usually break for one of three reasons: A plugin or theme conflict, a damaged .htaccess file, or a site migration or backup restore that left the old URL rules behind. A WordPress permalink is the permanent link to a specific page or post on your website. Let’s take a quick look at each cause:

Plugin or theme conflicts

Incompatibility issues or conflicts between plugins, themes, and WordPress are quite common. This could be due to low-quality code, lack of updates, or other factors that can impact your website’s performance. These issues could lead to problems with your site, including your permalinks.

To avoid these issues, it is important to take precautions when installing or updating plugins and themes. Always check if a plugin or theme has reliable developers, is regularly updated, and is compatible with the latest version of WordPress. Read reviews from other users, especially if you’re downloading from an external source.

Changes made to the .htaccess file 

Your .htaccess file essentially tells your Apache server how to function. WordPress also uses the .htaccess file to control your site’s permalink structure. Any changes made to this file can result in broken permalinks. 

It’s essential to avoid making changes to your .htaccess file unless you know what you’re doing. If you need to modify your .htaccess file, always make a backup first.

Restoring a website backup or migrating your website

Broken permalinks are a consequence of incorrect redirects, changes made to your .htaccess file, or incompatibilities between your backup version and current themes/plugins. If you’ve recently restored a website backup or migrated your website, it’s essential to check your permalinks and ensure they’re working correctly.

Broken permalinks can negatively impact your website’s SEO and user experience. Search engines will not be able to crawl your links easily, which can impact your search engine rankings. 

A bad user experience due to 404 errors can also drive site visitors away, leading to lost sales and leads. Consequently, it is essential to fix broken permalinks as soon as possible to ensure your website’s performance and reputation are not affected.

How to fix 404 errors caused by broken WordPress permalinks

Now that you know why fixing broken WordPress permalinks that cause 404 errors is necessary, and some of the most common reasons for permalink errors in WordPress, it’s time to learn how to fix WordPress permalink issues. 

In this step-by-step tutorial, we’ll cover seven methods that you can use to troubleshoot and fix the issue, grouped into quick fixes you can run from your WordPress dashboard and advanced fixes that need FTP or server access.

Any of these methods can help you quickly identify and fix broken permalinks, ensuring your website is up and running smoothly.

Jump to a fix

Work through these in order. The first one fixes the majority of permalink 404s:

  1. Reset your permalink settings
  2. Deactivate your plugins and themes
  3. Clear your cache
  4. Check your file permissions
  5. Regenerate your .htaccess file
  6. Fix an SSL/HTTPS mismatch
  7. Check your server configuration

Only your home page loads while every other page returns a 404? That’s a rewrite-rule problem rather than a content problem. Start with Method 1, then go to Method 2 and Method 7 — a plugin conflict and a missing server rewrite rule are the two usual causes.

Quick fixes

Method 1: Reset Your Permalink Settings

To fix broken WordPress permalinks, go to Settings > Permalinks, switch to a different structure, save, then switch back and save again. Here’s how to do this step-by-step: 

  1. From your WordPress Dashboard, navigate to Settings > Permalinks.
WordPress Settings > Permalinks screen showing the permalink structure options
  1. Select a different structure from the one you’re using. If you’re on Plain, switch to Post name. If you have already chosen the best permalink structure for your WordPress website, select an alternative permalink structure. 
WordPress permalink structure options with Post name selected
  1. Click on “Save Changes”. This will rewrite the old settings and update your permalinks.
  2. Now change the settings back to your previously chosen permalink structure and click on “Save Changes” again. If you never set a structure before, pick one and save. 
  3. Clear your browser cache, then check your links. If your links are working correctly, then your permalinks have been fixed.

By resetting your WordPress permalink settings, you’re essentially forcing WordPress to regenerate your .htaccess file, which can often fix issues with broken permalinks. If this method doesn’t work, you can move on to the next method of regenerating your .htaccess file.

Method 2: Deactivate your plugins and themes

A conflicting plugin can stop WordPress from writing its rewrite rules. Deactivate every plugin, then reactivate them one at a time to find the culprit. So, if resetting your WordPress permalink settings did not fix the issue, the problem could be a problematic plugin or theme. 

Here’s a step-by-step process on how to troubleshoot and replace/delete problematic plugins and themes:

  1. Go to Plugins > Installed Plugins
  2. Select all the plugins, choose “Deactivate” from the “Bulk actions” dropdown, and click “Apply”.
Deactivate all plugins

Check your links to see if they’re working. If your permalinks are working correctly, it means the problem is with one of your plugins.

Reactivate your plugins one at a time, checking your links after each one.

When the 404s come back, you’ve found the plugin. Disable it, then look for an alternative in the WordPress repository or contact the developer to get the issue rectified.

If your permalinks still aren’t working, clear your cache next. A stale cache can hide a fix that already worked.

And if you suspect that a theme is causing the issue, you can switch to a default WordPress theme to check if your permalinks start working. If they do, then you’ll need to replace your problematic theme with a new one.

Method 3: Clear your cache

Clearing your cache makes sure you’re looking at the live version of your site rather than a stored copy of the 404. Caching plugins and CDNs both hold on to pages after a permalink change, so a fix that worked can still look like it failed.

  1. Open your caching plugin’s settings and purge the entire cache.
  2. If you use a CDN, or your host runs server-level caching, purge that too.
  3. Clear your browser cache, or open the page in a private window.
  4. Reload the page that was returning a 404.

If the page loads, one of the earlier fixes worked and you were looking at a cached copy.

Advanced Fixes: FTP or Server Access Required

Method 4: Check your file permissions 

WordPress needs to write to your .htaccess file to update your permalink rules. If it can’t, your permalinks stay broken no matter how many times you hit save. WordPress’s documentation states that 644 is normally required and recommended for .htaccess files, so that’s where to start.

  1. Connect to your site over FTP, or open cPanel > File Manager.
  2. Open your public_html folder and find the .htaccess file. FTP clients hide files beginning with a period by default. In FileZilla, go to the Server tab and select “Force show hidden files.”
  3. Right-click the file and select “File Permissions.”
  4. Delete the numeric value and enter 644, then click OK.
  5. Go back to Settings > Permalinks and click “Save Changes” to force WordPress to rewrite the file.

If your permalinks still won’t update to 644, WordPress can’t write to the file at that level on your server. The documented remedy for this exact case is to loosen the permission over SSH:

chmod -v 666 .htaccess

Run that from the main directory of your WordPress install. Treat it as a last resort rather than a default: the documentation’s guidance is to start with the most restrictive setting that works and increase only if you have to.

The WordPress documentation on changing file permissions covers the full permission scheme if you want to check the rest of your install at the same time.

Method 5: Regenerate your .htaccess file

If your permalink rules are damaged, rename your existing .htaccess file and create a fresh one containing WordPress’s default rewrite rules. However, this can be a tricky process and is only recommended if you have experience with coding and web development. 

You’ll need to be familiar with certain concepts such as cPanel, FTP access, using FileZilla, WP file structure and database, and .htaccess file to perform this method.

Here’s a step-by-step process on how to reconfigure your .htaccess file using cPanel:

  1. Log in to your hosting account and navigate to cPanel > File Manager, then open your public_html folder. Your .htaccess file lives there.
  2. Right-click the file, choose Rename, and rename it to .htaccess_old so you can restore it if you need to.
  3. Click “New File” at the top of File Manager and name the new file .htaccess – exactly that, with no suffix. Apache only reads a file with that name.(Alternatively, you can use your FTP details to access your server directly.)
  4. Right-click on the new file created and select “Edit”. Add the following code to the file:
# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Use this tool to check if your rewrite rules are accurate: https://htaccess.madewithlove.com/

  1. Hit the “Save” button and check your links. If they’re working, delete .htaccess_old.

By renaming your old .htaccess file and creating a new one, you’re essentially resetting the file to its default settings, which can often fix issues with broken permalinks. 

However, make sure to follow this process carefully and only attempt it if you’re familiar with web development and coding concepts.

Method 6: Fix an SSL/HTTPS Mismatch

If you moved your site to HTTPS and some links still point to the old HTTP addresses, those links can 404 or get stuck in a redirect loop. The fix is making sure your site addresses and your internal links all use the same protocol.

  1. Go to Settings > General and check that both WordPress Address (URL) and Site Address (URL) start with https://.
  2. Save, clear your cache, and test a few internal links.
  3. If links inside your posts and pages still point to HTTP, run a search and replace across your database to update them. Most hosts provide a tool for this. If you have WP-CLI, the documented command is:
wp search-replace 'http://example.test' 'http://example.com' --skip-columns=guid

Swap the two addresses for your own HTTP and HTTPS URLs. Add –dry-run to run the whole operation and see a report without saving anything to the database.

Back up your database before any search and replace. It edits every matching row at once, and there’s no undo.

Method 7: Check your server configuration

If none of the methods above work, the problem is likely your server configuration rather than WordPress itself. Apache and nginx handle pretty permalinks differently, so start by working out which one you’re on.

On Apache. Apache reads WordPress’s rewrite rules from .htaccess, but only when the server is set to allow it. Apache’s own documentation is blunt about this: the default value of AllowOverride is None, which means .htaccess files are completely ignored unless someone explicitly enables them for your directory.

There’s a documented one-line test for whether that’s your problem. 

  1. Open your .htaccess file and add a nonsense word like “TestMe.”
  2. Reload any page on your site.
    1. If you get a 500 error, Apache is reading the file and your problem is elsewhere. 
    2. If the page loads normally, Apache is ignoring your .htaccess entirely and AllowOverride None is almost certainly in effect. 
  3. Delete the test line either way.

Fixing it means editing the main server configuration, which needs root access. On shared or managed hosting, you can’t do that yourself, so send your host the result of the test above and ask them to enable AllowOverride for your site’s directory. That’s a far more useful support ticket than “my permalinks are broken.”

On nginx. There’s no .htaccess file at all, so WordPress can’t write its rewrite rules anywhere and can’t generate them for you. The rule has to live in the server config. WordPress’s documented single-site configuration puts it in the location / block:

location / {
    # include the "?$args" part so non-default permalinks doesn't break when using query string
    try_files $uri $uri/ /index.php?$args;
}

Reload nginx once it’s saved. This also needs server access, so on managed hosting it’s a job for your host. The WordPress documentation on running WordPress on nginx has the full example configs, including multisite and HTTPS.

In any case, we hope that these solutions will help you resolve your broken permalinks and run your website smoothly. 

To ensure that you do not face this issue again, we recommend using a custom permalink management plugin like WooCommerce Permalink Manager, which allows you to easily manage your permalinks and prevent any future issues with broken links or 404 errors.

WooCommerce Permalink Manager

Get started controlling your WooCommerce product permalinks to increase site usability and SEO performance.

Buy Plugin

A brief introduction to WooCommerce Permalink Manager

The WooCommerce Permalink Manager plugin from Premmerce is an essential tool for customizing and creating user-friendly URLs for your eCommerce store. This powerful plugin comes packed with numerous features that make it the ultimate solution for managing your permalinks.

Here are some of the features and benefits of this plugin:

  • It has the ability to remove the “/product/” base from URLs. This feature allows you to create cleaner and more concise URLs, making it easier for your customers to remember and navigate your website. The same applies to category URLs; if you want to remove the /product-category/ base from your category URLs too.
  • It allows you to create custom URLs for your products, categories, and tags, giving you full control to set up and edit the permalink structure of your website.
  • The plugin also enables you to add a suffix to all permalinks, making it easier for you to identify specific pages on your website. This feature is particularly useful for eCommerce stores with large catalogs of products and pages.
  • The plugin creates automatic 301 redirects, which redirect your customers to the correct page if they try to access a broken or non-existent URL. This helps to improve your website’s overall user experience and ensures that you don’t lose any potential sales due to broken links.
  • It adds the rel=”canonical” attribute to duplicate pages, which helps to improve your website’s SEO and ensures that search engines only index the original version of your content.
  • It supports translation for multilingual custom permalinks through WPML and Polylang, making it easy to create and manage URLs for a global audience.

In addition, WooCommerce Permalink Manager works perfectly with WooCommerce, making it the preferred solution for managing your eCommerce store’s permalinks. 

But don’t just take our word for it. Here’s what some of our customers have to say about the WooCommerce Permalink Manager plugin:

“I’ve been using the plugin for a few months now and I’m extremely happy with it. It’s helped me to create SEO-friendly permalinks and has reduced the number of 404 errors on my website.”

Sarah K.

“The WooCommerce Permalink Manager plugin is a game-changer for managing permalinks. It’s packed with features and has helped me to create custom permalinks that are both user-friendly and SEO-friendly.”

Mark R.

Don’t overlook the importance of managing your permalinks and take action today to improve your website’s usability and performance.

Streamline permalinks with WooCommerce Permalink Manager

Broken permalinks can cause all kinds of issues on your WordPress site, including a drop in SEO rankings and a poor user experience. However, with the step-by-step guide we provided, you can quickly resolve any 404 errors caused by broken permalinks.

WooCommerce Permalink Manager from Premmerce is an extremely efficient tool to customize and optimize your permalinks for better SEO and a seamless user experience. On top of this, its powerful features like automatic 301 redirects and adding rel=”canonical” tags to your pages can help prevent issues caused by broken links or duplicate pages.

The bottom line is, don’t let broken permalinks hurt your website traffic and sales. Take action today to create and manage custom, SEO-friendly permalinks, and avoid any potential broken links or duplicate pages.

Get WooCommerce Permalink Manager and see the benefits that it can bring to your eCommerce store today!

WooCommerce Permalink Manager

Get started controlling your WooCommerce product permalinks to increase site usability and SEO performance.

Buy Plugin

Frequently Asked Questions

How do I regenerate permalinks in WordPress?

You regenerate WordPress permalinks by going to Settings > Permalinks and clicking Save Changes. WordPress rewrites its rewrite rules and, on Apache servers, refreshes the .htaccess file. You don’t need to change the structure for this to work, though switching to another structure and switching back forces a fuller reset.

Do permalinks expire?

Permalinks don’t expire. A permalink only stops working if something changes it or breaks the rules that map it to your content, such as a plugin conflict, an edited slug, or a damaged .htaccess file. The link itself has no time limit.

Can I change a permalink after publishing?

You can change a permalink after publishing, but the old URL will return a 404 unless you redirect it. Set up a 301 redirect from the old address to the new one before the change goes live. Our guide to changing product permalinks in WooCommerce walks through this for product URLs, and WooCommerce Permalink Manager creates those redirects for you automatically.

Do I need to reset permalinks after installing a plugin?

Most plugins flush the rewrite rules for you when they activate. Some don’t, particularly plugins that register custom post types or custom taxonomies. If new pages start returning 404s right after you install something, go to Settings > Permalinks and click Save Changes.

Comments

Avatar
Author
Iain
11 min read
Share this post:

Ready to Get Started?

Join over 100,000 smart shop owners who use Premmerce plugins to power their WooCommerce stores.

Get started