Why Does My WooCommerce Checkout Show a 404 Error?

Why a WooCommerce Checkout 404 Happens

WordPress relies on rewrite rules to translate a clean URL like /checkout/ into the correct page request internally, and these rules are cached and only regenerated in specific circumstances (a permalink settings save, certain plugin activations). A change to the server, a migration, or an update that alters URL structure without triggering a rule refresh can leave WordPress unable to correctly resolve the checkout URL, resulting in a 404 despite everything otherwise being configured correctly.

Common Causes of a Checkout 404

  • Stale permalink rewrite rules, particularly after a server migration, a caching plugin change, or a .htaccess file being overwritten or reset.
  • The page assigned as checkout being deleted, unpublished, or moved to trash, sometimes accidentally during a content cleanup that didn't account for it being a functional page rather than regular content.
  • A conflicting page or post using the same slug as the checkout page, confusing which one WordPress should actually serve.
  • A caching or CDN layer serving a stale 404 response cached from before a fix was applied, making a genuinely resolved issue appear to persist.

How to Fix the Checkout 404

  1. Go to WordPress → Settings → Permalinks and simply click Save (no changes needed) to force a rewrite rule refresh — this alone resolves many cases.
  2. Confirm the checkout page still exists and is published, and re-select it under WooCommerce → Settings → Advanced if needed.
  3. Check for a slug conflict with another page or post using the same URL.
  4. Clear all caching and CDN layers after any fix, to rule out a stale cached 404 response.

Checkout completely down and losing orders right now? See WooCommerce fixes for urgent help.

Narrowing down a checkout 404

  1. Find the checkout page in Pages. If it is in the Trash or a draft, restore or publish it. If it exists, view it from there: when that URL works but /checkout/ doesn't, the page's slug differs from the address your links use.
  2. Confirm the assignment. In WooCommerce → Settings → Advanced, check that the Checkout and Cart pages are the ones you expect.
  3. See whether other inner pages 404 too. If every page except the homepage returns a 404, WooCommerce isn't the cause. The server's rewrite rules are: .htaccess on Apache, or the WordPress try_files rule on Nginx.
  4. Check any multilingual or translation plugin. Translated pages with their own slugs can leave the checkout assigned to a page in only one language.

After a migration

A site moved to a new server can lose its .htaccess file, or land on an Nginx configuration without the WordPress rewrite rule. The homepage keeps working while every pretty permalink returns a 404. Saving the Permalinks screen fixes it on Apache when the file is writable; on Nginx the server configuration itself needs the rule.

Go deeper

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