The WooCommerce checkout page is the most critical page on your store. When it breaks, every visitor who tries to buy from you leaves empty-handed. These issues are almost always caused by a configuration conflict — here are the seven most common causes and how to fix each one.
Cause 1: Your checkout page isn't assigned correctly
Go to WooCommerce → Settings → Advanced → Page Setup. Confirm the Checkout page is assigned to your actual checkout page. If this is set to "No page selected" or the wrong page, customers will get a blank page or a 404. This often gets reset after a WooCommerce update or theme change.
WooCommerce development — custom store builds for UK businesses →Cause 2: Missing the [woocommerce_checkout] shortcode
If your checkout page exists but shows as blank, open the page in the WordPress editor and check that it contains the [woocommerce_checkout] shortcode (Classic editor) or the Checkout block (Block editor). Without this, WooCommerce doesn't know where to render the checkout form. Add the shortcode and the checkout form will appear.
Cause 3: Your site isn't using HTTPS
WooCommerce checkout requires SSL (HTTPS). If your site still runs on HTTP — or if you recently moved to HTTPS but have mixed content — the checkout page will either refuse to load or show a security warning. Check your site's URL in Settings → General: it should start with https://, not http://. If you're on HTTPS but seeing mixed content warnings, use the Really Simple SSL plugin to fix mixed content issues.
Cause 4: Caching plugin serving a cached checkout page
The checkout page must never be cached — it contains dynamic session data that changes with every visitor. If your caching plugin (WP Rocket, W3 Total Cache, WP Super Cache) is caching the checkout page, it will serve the wrong session data to customers, breaking the checkout flow. In your caching plugin's settings, exclude the checkout URL (/checkout/) from caching. WooCommerce automatically adds the exclusion in most cases — but confirm it's there.
Cause 5: Payment gateway plugin conflict
If the checkout form loads but payment fails, start with the payment gateway plugin. Deactivate it and re-activate it — this forces a fresh connection. Check whether the gateway is still in Test/Sandbox mode (a common oversight after going live). Go to WooCommerce → Settings → Payments and confirm the live API keys are entered correctly and test mode is disabled. For Stripe, regenerate your API keys in the Stripe dashboard if the existing ones have expired.
Cause 6: JavaScript conflict from another plugin
The WooCommerce checkout relies heavily on JavaScript. If another plugin is loading JavaScript that conflicts with WooCommerce's scripts, the checkout form may submit but do nothing, or show a spinning loader that never completes. Diagnose this by opening your browser's console (F12 → Console) on the checkout page and looking for JavaScript errors. The error will usually name the script causing the problem. Deactivate the conflicting plugin or ask the plugin's developer for a fix.
Cause 7: PHP memory limit reached
If your checkout redirects to a blank page on submission, it may be a PHP memory limit issue. Add this to your wp-config.php file:
define('WP_MEMORY_LIMIT', '256M');If that doesn't help, check your hosting control panel for PHP error logs — they'll show the specific memory exhaustion point.
ImportantBefore making any changes, test the checkout on a staging environment first if you have one. If you don't have a staging environment, make one change at a time and test immediately after each change — that way you can identify what fixed it (or what made it worse).