WooCommerce fixes / order received 404

WooCommerce Order Received Page 404? Causes & Fix

Customers pay, get thrown to a 404 instead of a thank-you page, and email you asking whether it worked. First, the reassuring part: the order and the payment almost always went through. Only the confirmation page is broken. Here's how to fix it.

Last updated: 16 Jul 2026 · ~6 min read

Quick answer

The most common cause is stale rewrite rules — permalinks were never flushed after a change, so WordPress doesn't recognise the order-received endpoint and 404s before WooCommerce ever reads the order key. Go to Settings → Permalinks and click Save Changes — that alone fixes most cases. Check WooCommerce → Orders first: the order is nearly always sitting there, paid.

What's actually broken (and what isn't)

The thank-you page isn't a real page. It's an endpoint hanging off your checkout page — a URL like /checkout/order-received/1234/?key=wc_order_…. WordPress has to recognise that URL shape and hand it to WooCommerce. If the rewrite rules don't include the endpoint, WordPress 404s the URL before WooCommerce gets a chance to look up the order.

Which means the money path is untouched. The order was created, the gateway charged the card, the emails usually sent. The customer just doesn't know any of that, because the one page that tells them is missing. That gap is what costs you — worried customers, support tickets, and shoppers who assume it failed and buy again.

The most common causes (most likely first)

  1. Rewrite rules are stale — permalinks were never flushedThe endpoint was renamed, WooCommerce or a plugin was updated, or the site was migrated, and nobody re-saved permalinks. Tell: Settings → Permalinks → Save Changes fixes it instantly, with no other change. The first thing to try, every time.
  2. The endpoint slug was translated, renamed or collides with a pageA translation plugin translates order-received, or someone changed it under WooCommerce → Settings → Advanced, or an actual page exists with that slug. Tell: WordPress resolves the URL to something other than the confirmation — a page, or nothing — and re-saving permalinks doesn't help.
  3. The Checkout page setting points somewhere that isn't thereThe checkout page was deleted, duplicated, unpublished or rebuilt, and the page assigned under WooCommerce → Settings → Advanced no longer matches. The endpoint is being built onto a URL that doesn't exist. Tell: the 404 URL's path doesn't match your real checkout page's path.
  4. A custom thank-you page plugin or redirect is sending them nowhereA "custom thank you page" plugin, a funnel plugin or a redirect rule points at a page that's been deleted or unpublished. Tell: the 404 URL isn't the order-received URL at all — it's some other path entirely.
  5. A cache or firewall is intercepting the confirmation URLAn edge cache serving a cached 404 for that path, or a WAF blocking the key=wc_order_ query string as suspicious. Tell: it 404s for customers but loads fine for you, or works once the cache is purged and breaks again.

Where to look first

How long has your thank-you page been 404ing?

This one hides well. The orders keep landing, the revenue looks fine, and the only symptom is customers who don't trust that they bought anything — some of whom quietly buy again. DiagnosticIQ's free dashboard checks the pages and endpoints the buying path depends on, so a broken order-received endpoint shows up as a signal instead of a support ticket. The Order Rescue add-on explains what broke between payment and confirmation, and flags it the day it starts.

Get the free plugin

Made by Prima Digital — the team behind this guide. Free forever; no card to install.

How to know you fixed it

Verify

Open a real order in wp-admin, use its Customer payment page or copy the order-received URL with the order key, and load it in an incognito window — the thank-you page renders with the order details instead of a 404.

Frequently asked

Did the customer's payment go through?

Almost certainly yes. Check the order in WooCommerce → Orders and the charge in your gateway. The 404 happens after the money moves — it's the confirmation page failing, not the payment.

Do I need to refund them?

No. Confirm the order is paid, then email them their order number and confirmation. The order is real and fulfillable.

Will they get their order email?

Usually yes — order emails fire on the status transition, not on the thank-you page loading. Check your sent mail before assuming otherwise.

Could this be causing duplicate orders?

Yes, and it's a common knock-on. A customer who sees a 404 instead of a confirmation often assumes it failed and checks out again.

>_
John O'Keane — Founder, Prima Digital · LinkedIn
Contributions by David Zhang · LinkedIn
I build DiagnosticIQ, the WooCommerce diagnostic plugin, and I've had the "did my payment work?" email from a store's customers enough times to check the order-received endpoint before I check anything else.