By platform

WordPress checkout not working

Shoppers reach the checkout page and the form is missing, or Place order does nothing. Mimiq sends simulated visitors to checkout and records the step where each one stops.

5 visitors try to .
First test free with an accountRun it from your coding agent

Why does checkout stop working on my WordPress site?

WordPress checkout stops in one of three places: the checkout page loses its form, the form is blocked on its way to the server, or a cache keeps serving an old copy of the page. Each one can look the same to a shopper, so note what appears on the page and what happens when the order is placed. A simulated visitor shows the step where checkout stops for a shopper.

What this looks like in a report

Who
Ayesha, buying a ceramic candle holder for a housewarming
How they arrived
Clicked a link to the store from an Instagram post
Where they stopped
Checkout page, the first time she opened it from the cart

“The page loaded with my total, but there is no form, only some text in square brackets. Maybe my order is too small for delivery, so I will come back another day.”

The fix. Edit the checkout page, replace the bracketed text with the checkout block, then check that WooCommerce's checkout page setting names this page. Open the checkout in a private window and confirm the form loads before you test payment.

An illustration. Run a test to see your own.See a real sample report

The checkout page is a normal WordPress page, so anything that edits pages can break it

WooCommerce builds checkout from a page you can edit like any other. That page has to contain the checkout block or shortcode, and WooCommerce has to know which page is the checkout. If someone pastes the shortcode into a text block, the browser shows the bracketed code as words and no form. If the page was duplicated, moved to the trash or rebuilt in a page builder, WooCommerce may still point at the old address, which loads nothing useful.

  • Open the checkout page in a private window and read it for bracketed text or a missing form.
  • Compare the checkout page's address with the checkout address named in the WooCommerce page settings.
  • Confirm the checkout page is published, not a draft and not in the trash.
  • Check the checkout address's response headers for a cache marker that shows a stored copy answered.
  • Place a test order and read the submit request. A 403 response or a block page points at a security rule.

Where a shopper meets the stop: an empty page, a form that refuses, or a redirect loop

A shopper with a full cart reaches checkout and sees one of three things. The page loads with no form, so there are headings with nothing under them, which means the page shows text where the checkout should be. The form loads, the shopper fills it in, and Place order returns to the same page with an error notice at the top. Or the page never loads, and the browser reports too many redirects or shows a plain blocked page. Each one stops at a different point, so note which of the three the shopper hit before you change anything.

Shortcode text and a moved checkout page look like a blank checkout

WooCommerce finds checkout through two things: the page itself, and a setting that names which page is checkout. When the page holds the bracketed shortcode as plain text, the code is never run, and the shopper reads the code instead of a form. When the page was duplicated, moved to the trash or rebuilt in a page builder, the setting can still name the old one, so the checkout address shows an empty page. Open the checkout address in a private window and read it as a shopper would, then compare that address with the one in the page settings.

Cache rules and security blocks stop the order after the form loads

A cache keeps a copy of a page and serves it to the next visitor without running the page again. A cached checkout is a problem because the cart, the totals and the form belong to one shopper, so a cached page can show a stale total or a form tied to a dead session. Security plugins and web application firewalls inspect the submit request, and they sometimes flag a checkout post as suspicious. The shopper sees the form, presses Place order, and gets a block page or nothing at all. A 403 response on that request is a common sign.

Test the two separately. Load the checkout in a private window and check the response headers for a cache marker. Then place a guest order up to the payment step and read the submit request. If it comes back blocked, exclude the checkout address from page caching and from the security rule that is catching it, then run the same guest order again.

The checkout screenshot and the requests recorded at each stop

A simulated visitor opens the cart, goes to checkout as a guest, fills in the address and continues to the payment step. The run records a screenshot at each stop, the address the page ended on, and the requests and script errors recorded there. A form that never appears shows as an empty checkout screenshot, and a blocked submit shows its response code on the step where it happened.

The run does not read your WordPress settings or your plugin list, so it cannot say which plugin or rule is responsible. Use the screenshot to pick the stop, then the checks above to pick the cause. Run the same guest order after each change, so you can see whether the stop moved or went away. Keep the same product in the cart each time.

Mimiq is independent and not affiliated with the platforms it names. Names belong to their owners.

What you get with Mimiq

  1. 01

    Run it by hand, or on every pull request

    Paste a link and a task in the app and watch the visitors work. Or run them on every preview deploy: the GitHub Action comments on the pull request, any other CI can call the MCP endpoint, and your coding agent can run it too.

  2. 02

    Bugs and usability problems in one report

    The browser records errors and failed or slow requests on the step they happened. The visitors say where the wording or the steps confused them, and where they left.

  3. 03

    Visitors that behave like your audience

    Each visitor is a different profile with a reason to be there, matched to who the page is for, described by you, or built from your own customers.

  4. 04

    A prompt to fix each problem

    Every problem comes with a fix to paste into Cursor, Claude Code, Lovable or any coding agent, and one prompt hands over the top problems at once. Then send the same visitors through again.

  5. 05

    Follow every visitor

    See each visitor's whole path, step by step with screenshots, and what it was thinking at every step. Ask any visitor a question.

The browser records relevant JavaScript errors and failed or slow app requests encountered during the run, attached to the step where they occurred. The visitors are simulated: they find problems, they do not predict how many real people will convert.

A plugin update or a new cache rule can stop checkout again

Checkout breaks in the same places after the next change. A plugin updates, a page builder is redesigned, or a new caching rule starts covering the checkout address, and the form disappears or the submit fails. Run the same guest order after each change, before the next campaign sends buyers to checkout.

Starter

Try it on one launch

$9 once
120 credits, never expire

About 4 tests of 5 visitors

  • Visitors on your landing page, signup and checkout
  • Where they left and why, with a fix to copy for each problem
  • Run it in the app or on every pull request
  • Ask any visitor a question, included
  • Test accounts and protected previews
Buy 120 credits

Builder

Test every build

$19 a month
500 credits every month

About 20 tests of 5 visitors

  • Everything in Starter
  • Credits refill each month, and what is left rolls over once
  • Cancel anytime
Choose Builder

Pro

Test every release, as a team

$49 a month
1,500 credits every month

About 60 tests of 5 visitors

  • Everything in Starter
  • Credits refill each month, and what is left rolls over once
  • Cancel anytime
Choose Pro

Scale

Test at scale, every day

$149 a month
6,000 credits every month

About 240 tests of 5 visitors

  • Everything in Starter
  • Credits refill each month, and what is left rolls over once
  • Priority support
  • Cancel anytime
Choose Scale
$0for your first test, with a free account (Google sign-in, no card). It includes 50 credits, enough for 10 visitors. After that a visitor uses 5 credits, and packs start at $9 for 120 credits.
See a sample report

Questions

Why does checkout work when I test it logged in as the owner?

Your own login often sees a different page. Cache plugins commonly skip logged in users, and an editor can see drafts that shoppers cannot. A shopper in a private window gets the public page, so test as a stranger, not as the person who runs the store.

Does a checkout error mean my payment provider is down?

Rarely the first thing to check. Most stops happen before the payment step, at the form, the cache or a security rule. Check the submit request first. If it reaches your payment provider and comes back with a decline, checkout is working and the issue sits in the payment settings.

Can the simulated visitor tell me which plugin is causing the problem?

No. The run shows the page the visitor reached, the screenshot at the stop, and the requests and script errors recorded there. It does not read your plugin list or your server settings. It also does not tell you how many shoppers would have bought once checkout loaded.

Does the test place a real order?

No. The visitor fills in the guest details and goes up to the payment step, then stops, because a visitor cannot pay with a real card. To test the payment itself, use your payment provider's test mode with the test card numbers it publishes.

Keep reading

Send visitors and see what breaks first.

Your first test is free: sign in with Google and it starts right away. Last checked 2026-11-02.

5 visitors try to .