WooCommerce Checkout Keeps Loading? 7 Fast Fixes
If your WooCommerce checkout keeps loading — the spinner turning while the Place Order button does nothing — every frozen second is a paying customer walking away from a full cart. It feels like an emergency, and for your revenue it is. The good news: this is almost always a fixable conflict, not a broken store, and you can usually track it down in under an hour. This guide walks you through the seven most common causes and the exact steps to fix each one yourself.
Free WooCommerce store health check
Enter your store URL — we test the checkout, cart, SSL and speed in seconds. No login, nothing installed.
Quick answer: A WooCommerce checkout that keeps loading is usually caused by a blocked AJAX or REST request, a failing payment gateway, a plugin or theme JavaScript conflict, aggressive caching, or a slow server timing out. Deactivate recent plugins, test a default theme, clear all caches, and check your browser console for errors.
Why your WooCommerce checkout keeps loading (start here)
Before you change anything, spend two minutes gathering evidence. A checkout that hangs is really your browser waiting for a reply that never arrives — so the console will usually tell you exactly what stalled.
- Open the checkout page, add a product, and try to place a test order.
- Right-click and choose Inspect, then open the Console and Network tabs.
- Watch for red errors (JavaScript conflicts) or a request stuck on pending (a blocked or timing-out call).
Write down the first error you see. Nine times out of ten it names the plugin, script, or gateway behind the problem, which turns guesswork into a targeted fix. If you would rather not dig through code, our free WooCommerce store health checker scans the common failure points for you in a couple of clicks.
Cause 1: A plugin conflict is freezing the Place Order button
Symptom: The spinner appears the moment you click Place Order, but nothing else happens and no clear error reaches the customer.
Why it happens: A recently updated or newly added plugin loads JavaScript that clashes with WooCommerce’s checkout script, so the order never submits.
How to check: Deactivate your plugins one at a time — starting with anything for payments, shipping, page builders, or cart add-ons — and retest checkout after each. Do this on a staging copy if you can, or during your quietest hour.
How to fix: When the checkout springs back to life, you have found the conflict. Update that plugin, look for a setting that resolves the clash, or swap it for a lighter alternative. If it is essential, send its developer the console error you noted earlier.
Cause 2: Your payment gateway cannot connect
Symptom: Checkout loads fine until the payment step, then the spinner hangs — often with Stripe, PayPal, or a bank gateway.
Why it happens: Expired or mismatched API keys, test-mode keys left on a live site, or a firewall blocking the gateway’s callback all stop the payment request from completing.
How to check: In WooCommerce → Settings → Payments, confirm the gateway is enabled and that live keys (not test keys) are saved. Then open the gateway’s own dashboard and look for failed API calls.
How to fix: Re-enter fresh API keys, switch off test mode, and make sure your SSL certificate is valid. If a security plugin or host firewall is blocking callbacks, ask your host to allow-list the gateway’s IP ranges.
Cause 3: Blocked AJAX or REST API requests
Symptom: The Network tab shows an admin-ajax.php or /wp-json/ request stuck on pending or returning a 403.
Why it happens: WooCommerce checkout depends on AJAX and the REST API. A security plugin, a misconfigured firewall, or an over-eager .htaccess rule can quietly block these calls.
How to check: Reproduce the hang with the Network tab open and find the failed request. A 403 or CORS error points straight at a security layer. You can also visit yourdomain.com/wp-json/ — it should return JSON, not an error.
How to fix: Temporarily disable your security or firewall plugin and retest. If that clears it, re-enable the plugin and add an allow rule for WooCommerce’s checkout endpoints, or ask your host to relax the firewall rule rather than leaving protection off.
Cause 4: Caching or a CDN is serving a stale checkout
Symptom: The page shows old cart totals, a logged-out state, or the spinner keeps looping even after a hard refresh.
Why it happens: Caching plugins and CDNs can accidentally cache the dynamic checkout page, freezing its scripts and one-time security tokens (nonces).
How to check: Load the checkout in a private or incognito window. If it behaves differently there, caching is involved.
How to fix: In your caching plugin, exclude the Cart, Checkout, and My Account pages from both page and object caching — most tools add these automatically, so confirm they are listed. Then purge every cache, including your CDN, and retest.
Cause 5: A slow or overloaded server is timing out
Symptom: The spinner runs for 30–60 seconds, then fails or reloads. Other pages may feel sluggish too.
Why it happens: A low PHP memory limit, a short execution time, or an overcrowded shared host can kill the checkout request before it finishes.
How to check: Enable WP_DEBUG to surface fatal errors — the official WordPress.org debugging guide shows how — then read your host’s error logs for memory or timeout messages.
How to fix: Ask your host to raise PHP memory to at least 256M and execution time to 60 seconds, and consider moving off an overcrowded shared plan. Our guide on WooCommerce site speed and SEO covers the wider performance wins that keep checkout snappy.
Cause 6: Theme or outdated WooCommerce templates
Symptom: The checkout broke right after a theme or WooCommerce update.
Why it happens: An outdated template override sitting in your-theme/woocommerce/ can conflict with a newer WooCommerce version and throw a JavaScript or PHP error.
How to check: Switch to a default theme such as Storefront or Twenty Twenty-Four and retest. If checkout works, your theme is the culprit.
How to fix: Update your theme and WooCommerce, then open WooCommerce → Status → System status and look for outdated templates. Refresh anything flagged there, ideally through a child theme so your changes survive future updates.
Cause 7: Mixed content or an SSL warning
Symptom: The padlock is missing or the browser warns “not secure,” and the checkout stalls.
Why it happens: Assets loading over http on an https store trigger mixed-content blocking, which can break the very scripts checkout needs.
How to check: The console lists “Mixed Content” warnings naming the insecure resources.
How to fix: Confirm your SSL certificate is valid, set both the WordPress Address and Site Address to https, and run a safe search-and-replace (or a trusted SSL plugin) to update any lingering http links.
Quick troubleshooting table
Use this quick table when your WooCommerce checkout keeps loading and you need to narrow it down fast.
| Symptom | Likely cause | Quick fix |
|---|---|---|
| Spinner starts on Place Order click | Plugin JavaScript conflict | Deactivate plugins one by one |
| Hangs only at the payment step | Gateway keys or firewall | Re-enter live API keys, disable test mode |
| admin-ajax or wp-json returns 403 | Security plugin or firewall | Allow-list checkout endpoints |
| Old totals or looping refresh | Caching or CDN | Exclude checkout from cache, purge all |
| 30–60s wait then failure | Server timeout | Raise PHP memory and execution time |
| Broke after an update | Theme or outdated template | Test a default theme, update everything |
| “Not secure” warning | SSL or mixed content | Force https, fix http assets |
When to call in a pro
When your WooCommerce checkout keeps loading and nothing you try works — or the thought of deactivating plugins on a live store makes your stomach drop — it is time to hand it to someone who does this every day. A frozen checkout is lost revenue by the hour, and the wrong fix can quietly make things worse.
Our WordPress Bug Fix service is built for exactly this moment. Here is how we protect your store while we work:
- We take a full backup before we touch anything.
- We diagnose and fix on a staging copy, so your live store keeps taking orders.
- We never ask for passwords by email — access is shared securely.
- It is fixed or refunded: if we cannot solve it, you do not pay.
You send us the symptom, we find the cause and fix it properly — no experiments on your live shop, no jargon, just a checkout that works again.
Leave your name and what is happening on WhatsApp — we diagnose it, talk it through and send you a quote. No obligation, no jargon.
Message us on WhatsAppFrequently asked questions
Why does my WooCommerce checkout keep loading only on mobile?
Usually a theme or script that renders differently on smaller screens, or a mobile-specific caching layer. Test on mobile in an incognito tab, then check the console on your phone via remote debugging. If desktop is fine, focus on responsive theme code and mobile cache exclusions.
Can a caching plugin cause the checkout to hang?
Yes. If the Cart, Checkout, or My Account pages get cached, their security tokens go stale and the checkout can freeze. Exclude those pages from page and object caching, purge everything, and retest in a private window.
How do I know which plugin is causing the problem?
Deactivate plugins one at a time and retest checkout after each — the one that restores it is your culprit. On a busy store, do this on a staging copy so customers never see a broken cart while you troubleshoot.
Will I lose orders while I troubleshoot?
You can, which is why staging matters. Work on a copy of your site where possible, or make changes during your slowest hour and keep them brief. A professional fix on staging avoids downtime entirely.
Is a slow or broken checkout bad for SEO?
Absolutely — slow, failing pages hurt both conversions and rankings. Once checkout is stable, tighten the rest with our WooCommerce SEO for small stores guide and the WooCommerce on-page SEO checklist.






