Why Does My WooCommerce Checkout Redirect in a Loop?
Why a WooCommerce Checkout Loops
Several different systems can legitimately want to redirect a checkout request — WordPress's own canonical URL handling, an SSL-enforcement rule forcing HTTPS, a caching plugin's URL rewriting, or a security plugin's own redirect rules for suspicious-looking requests. When two of these disagree about where the request should ultimately land, the browser can end up bouncing between them indefinitely rather than settling on a final page.
Common Causes of a Checkout Redirect Loop
- An SSL/HTTPS enforcement rule conflicting with WooCommerce's own "Force HTTPS on checkout" setting, each redirecting to a slightly different variant of the URL and disagreeing with the other.
- A caching plugin's stale redirect rule left over from a domain change, an HTTP-to-HTTPS migration, or a permalink structure change that hasn't been cleared.
- A security plugin misidentifying checkout traffic as suspicious and applying its own redirect/challenge logic in a way that loops back through the same check repeatedly.
- WooCommerce's own checkout page setting pointing to an incorrect or duplicated page, confusing which URL is actually meant to serve as checkout.
- A WordPress or WooCommerce update changing default URL handling behavior in a way that now conflicts with an existing, previously working custom rule.
How to Diagnose and Fix It
- Check the browser's network tab to see the exact chain of redirect URLs, which usually reveals which two rules are conflicting.
- Confirm WooCommerce → Settings → Advanced correctly identifies the checkout page, and that there's only one page assigned to that role.
- Clear all caching layers (page cache, CDN, browser) and retest, since a stale rule is a common and easily overlooked cause.
- Temporarily disable security/redirect-related plugins on staging to isolate which one is contributing to the loop.
Checkout completely unreachable and losing every order? See WooCommerce fixes for urgent diagnosis.