Why Do WooCommerce Product URLs Return 404 Errors?

Why This Happens

Product URLs depend on WordPress's rewrite rules correctly routing the clean URL to the actual product post, and several independent things can break that routing or the underlying product's availability without any obvious warning — the product still exists in the database in most cases, it's just not reachable at the URL being requested.

Common Causes

  • Stale permalink rewrite rules, particularly after a plugin change, server migration, or a bulk product import that should have but didn't trigger a rule refresh.
  • The product's status set to Draft, Pending, or Private rather than Published, which is easy to overlook after a bulk edit or an import that didn't set status correctly.
  • A permalink or URL structure change (switching the product base slug, or a broader site permalink structure change) without setting up redirects from the old URLs to the new ones, breaking any bookmarked or externally linked product URLs.
  • A duplicate slug conflict, where two products or a product and another piece of content ended up with the same URL slug, causing WordPress to serve the wrong one or neither correctly.
  • The product genuinely deleted or trashed, which is worth confirming directly rather than assuming a technical routing issue.

How to Diagnose and Fix It

  1. Go to Settings → Permalinks and click Save to refresh rewrite rules, resolving many cases immediately.
  2. Check the specific product's status in the admin, confirming it's actually Published.
  3. If a URL structure change happened recently, set up 301 redirects from old product URLs to their new equivalents to avoid losing SEO value and breaking external links.
  4. Check for slug conflicts if the issue affects one specific product rather than the whole catalog.

Telling a routing problem from a product problem

  1. Open the product from the admin. Confirm its status is Published, not Draft, Pending or Private, then use the View link, which uses the real permalink. If that works but the address people use returns a 404, the URL structure has changed.
  2. Test other content. If posts and pages return 404s too, the cause is the site's rewrite rules, not WooCommerce.
  3. Check the product permalink settings under Settings → Permalinks. Changing the shop base, or choosing to include the category in the product URL, changes every product address. With the category in the URL, moving a product between categories changes its address as well.
  4. Look for slug clashes with other products, pages or trashed items.
  5. Use Search Console. Its report of pages not found lists the exact product URLs Google tried and failed to load, which is also the list you need to build redirects from.

Redirecting old product URLs

When product addresses have changed, add 301 redirects from each old address to the new one, and avoid chains where one redirect points to another. A redirect plugin or server rules can handle patterns in bulk, which beats adding them one at a time.

Need broken product URLs fixed and properly redirected? See WooCommerce fixes.

Available for new projects

NEXT STEP

Rather have it fixed than keep reading?

Based in Dhaka, Bangladesh — serving clients worldwide. Tell me what's happening and you'll have a reply within one working day.

  • Reply within one working day
  • Fixed quote before work starts
  • UK, EU and US hours covered