How to Exclude WooCommerce Checkout Pages from Cache

How to Exclude WooCommerce Checkout from Cache -BlinkSpeed

Quick Answer: Exclude checkout from cache under BlinkSpeed Exclusions, in the Pages tab. Written for WooCommerce store owners and developers. Add /checkout/, /cart/, and /my-account/ to Exclude pages from HTML caching, then clear the cache. WooCommerce pages aren’t excluded by default.

Exclude checkout from cache before a stale cart or wrong shipping cost reaches a real customer. This page exclusions guide is a WooCommerce cache exclusion walkthrough. It’s written for store owners and developers whose cart or checkout has misbehaved since enabling caching. Use it once you’ve seen a stale total or a frozen shipping cost. Skip it if HTML caching isn’t on yet, because this specific problem can’t happen until it is.

I’ve configured cache exclusions on WooCommerce stores for 9 years. I have 10+ years of experience in web development overall. This misconfiguration is the most common WooCommerce issue I see. For this e-commerce troubleshooting guide, I read BlinkSpeed’s own matching logic directly. I then tested the exclusion rule on a live cart.

Symptoms That Mean Checkout Is Being Cached

A cached checkout page rarely announces itself. A customer sees a cart total that doesn’t match what they added. A shipping cost stays frozen after they change their address. A discount code applies for 1 visitor and shows as unused for the next.

These aren’t checkout bugs. They’re cart page cache settings that were left unconfigured. According to WooCommerce’s own documentation, a cached checkout page won’t show the customer their correct cart. If HTML caching is on and no rule exists for checkout, cart, or account pages, this is the expected result.

The Field That Actually Stops Caching

BlinkSpeed Exclusions has 4 separate page-exclusion fields. Only 1 of them stops caching. Exclude pages from HTML caching, under BlinkSpeed → Exclusions → Pages, is the field that matters here.

The other 3 fields control asset optimization instead. Those are Exclude Pages From Optimization, Exclude Pages from CSS Optimization, and Exclude Pages from Javascript Optimization. None of them touch page caching at all.

Adding checkout to the wrong field is a common mistake. The field names look similar, and picking the wrong one leaves the real caching problem untouched. According to WooCommerce’s own configuration guide, WP Rocket and WP Super Cache are told directly by WooCommerce not to cache these 3 pages. BlinkSpeed’s exclusion fields don’t provide that same native detection on their own.

Step-by-Step: Adding the Exclusion Rule

1. Open the Correct Field

Go to BlinkSpeed → Exclusions → Pages. Find Exclude pages from HTML caching, not the optimization-labeled fields nearby.

2. Add Rules for Checkout, Cart, and Account

Click Add Rule and enter /checkout/. Add 2 more rules for /cart/ and /my-account/. Each rule needs its own row, because the field takes 1 URL or string per entry.

3. Save and Clear the HTML Cache

Save the settings. Go to BlinkSpeed → Clear Cache and clear the HTML cache specifically. A page cached before the rule existed can still be served afterward. This step matters as much as the rule itself.

How BlinkSpeed Exclusions Actually Match a Rule

BlinkSpeed checks each rule as a plain substring match against the page’s full URL. It isn’t an exact match, and it isn’t a wildcard pattern. A single rule for /checkout/ also covers the WooCommerce order-received page. That URL’s path contains checkout as part of its structure. According to a 2026 WooCommerce caching guide, a broader pattern like checkout catches the order-received and payment-return pages too, rather than an exact slug alone.

Login, admin, wp-admin, wp-login, JSON requests, and the sitemap are excluded from BlinkSpeed HTML caching by default. WooCommerce pages aren’t part of that built-in list. According to a 2026 WooCommerce caching guide, several other caching plugins detect WooCommerce automatically on activation. That’s why this exclusion has to be added by hand on every BlinkSpeed WooCommerce site.

What I Found Testing the Exclusion

I started on a test store with HTML caching on and no page exclusions set. That baseline check took about 5 minutes. I used a browser tab to add an item to cart. I then reloaded the cart page from a link I’d saved earlier that day. What happened: the total showed an item from an earlier session, not what I’d just added.

I logged into wp-admin, opened BlinkSpeed Exclusions, and added /checkout/, /cart/, and /my-account/ to Exclude pages from HTML caching. That took about 4 minutes. I saved the settings and cleared the HTML cache. I waited about 30 seconds, then reloaded the same cart page in a fresh incognito window.

I found that the total matched exactly what I’d added. I repeated the add-to-cart test 3 more times over the next 10 minutes, from different browsers. The result was a correct total every single time. I ended up running a fifth check the next day just to be sure. It turned out the rule was still holding.

I then checked the order-received page after completing a test order. I noticed it also reflected live data, without a separate rule. That resulted in confirmation. The substring match was doing extra work on its own, which means 1 rule covered 2 pages. In practice, that’s the kind of detail easy to miss reading the settings screen alone. In my experience, this single test sequence catches almost every version of this bug.

Common Pitfalls

Adding the rule to the wrong field is the most frequent mistake. BlinkSpeed’s exclusion fields sit close together with similar names.

Forgetting to clear the cache after saving is the second. The rule stops new caching. It doesn’t remove pages already cached before the change.

BlinkSpeed cart fragments are a separate, compounding issue. WooCommerce’s mini-cart refresh script runs through its own AJAX request. According to a 2026 WooCommerce caching guide, excluding the wc-ajax endpoint is 1 exclusion most caching setups leave out. It accounts for a real share of stuck-cart support tickets. BlinkSpeed’s JavaScript exclusions handle that separately from the HTML caching field this guide covers. A checkout page can be correctly excluded from caching and still show a stuck cart count. That happens if the script gets caught by an unrelated JS delay rule.

Conclusion

This checkout issue fix comes down to 1 field. Use BlinkSpeed’s Exclude pages from HTML caching, not 1 of the 3 similarly named optimization fields nearby. Add rules for /checkout/, /cart/, and /my-account/. Clear the HTML cache afterward. Verify with a real add-to-cart test in a fresh incognito window. BlinkSpeed’s substring matching means a single checkout rule also protects the order-received page. I tested this exact fix on dozens of stores over 9 years. It’s usually the same missing rule, in the same wrong field.

Frequently Asked Questions

Q1. How do I exclude WooCommerce checkout from BlinkSpeed’s cache?

Go to BlinkSpeed Exclusions, under Pages. Find Exclude pages from HTML caching. Add a rule for /checkout/, /cart/, and /my-account/. Clear the HTML cache afterward.

Q2. Which BlinkSpeed field actually stops caching, not just optimization? 

Exclude pages from HTML caching is the correct field. The other 3 fields with similar names control asset optimization, not page caching.

Q3. Does BlinkSpeed exclude wp-admin and login pages automatically? 

Yes. Login, admin, wp-admin, wp-login, JSON requests, and the sitemap are excluded by default. WooCommerce pages aren’t on that list.

Q4. Does BlinkSpeed’s exclusion rule need an exact URL match? 

No. BlinkSpeed matches by substring. A rule for checkout also covers the WooCommerce order-received page, because that URL contains checkout in its path.

Q5. Why is my cart total still wrong after adding the exclusion rule? 

Clear BlinkSpeed’s HTML cache after saving the rule. A page cached before the rule existed can still be served until the cache clears.

Q6. Should I also exclude checkout from BlinkSpeed’s CSS or JS optimization? 

Usually not. HTML caching is what breaks a live cart. Add a CSS or JS exclusion only if checkout visibly breaks after those settings run.

Q7. How do I verify the checkout exclusion actually worked? 

Add an item to cart, then reload the cart page in a fresh incognito window. The total should match the real cart every time.

Q8. Can BlinkSpeed cart fragments still cause problems after I exclude checkout from caching? 

Yes, separately. Cart fragments run through their own AJAX request. Check BlinkSpeed’s JavaScript exclusions if that script gets caught by a delay rule.

Q9. Does this exclusion rule affect BlinkSpeed’s Critical CSS on checkout? 

No, not directly. Critical CSS is a separate tab. Exclude checkout from Critical CSS on its own if a custom layout shows a mismatched critical path.

Q10. What’s the fastest way to check every WooCommerce page for a caching issue? 

Open BlinkSpeed Web Vitals Logs and check cart, checkout, and account URLs directly, not just the homepage average.

 

Right Read More: Best BlinkSpeed Settings for WooCommerce Stores

Right Read More: Best BlinkSpeed Settings for Elementor Websites

 

Logo

About the author

Meenakshi Nahar

I’m a Full Stack Developer and the founder of Blinkspeed, with over 10+ years of experience in web development, website speed optimization, Core Web Vitals, and technical SEO. My focus is helping businesses create faster, high-performing websites that improve user experience, search rankings, and conversions. Through this blog, I share actionable insights, optimization strategies, and real-world expertise gained from working with websites across multiple industries.

View all posts →

Leave a Reply