WooCommerce Cart & Checkout Blocks Stuck Loading After Adding Product? Jetpack Boost Concatenate JS Conflict Fix (2025)
July 9, 2026
6 min read
The Issue: Cart and Checkout Blocks Freeze After Adding a Product
If you are using WooCommerce blocks for your cart and checkout pages, and after updating to WooCommerce 8.9 or later you notice that the pages get stuck on a spinning loader whenever you add a product, the culprit is likely Jetpack Boost's "Concatenate JS" feature. This bug was confirmed in WooCommerce GitHub issue #47492. The conflict occurs because WooCommerce 8.9 introduced a change in how scripts are loaded for block-based cart/checkout pages, and Jetpack Boost's concatenation interferes with the required JavaScript dependencies. The result: the checkout block or cart block appears to load indefinitely, never showing the actual content. Deactivating Jetpack Boost or disabling its concatenate JS option resolves the issue immediately.
Step-by-Step Solution
- 1Confirm the issue: Add a product to cart, then navigate to cart or checkout page. If the block shows a loading spinner indefinitely, proceed.
- 2Check your WooCommerce version: is it 8.9 or newer?
- 3Check if Jetpack Boost is active and the 'Concatenate JS' feature is enabled.
- 4Temporarily disable Jetpack Boost or turn off 'Concatenate JS' to see if the page loads correctly.
- 5Implement the PHP code above to exclude cart/checkout pages from concatenation without disabling the feature globally.
- 6Clear all caches (browser, plugin, server) and test again.
- 7If using a caching plugin, ensure cart/checkout pages are excluded from minification and concatenation as well.
- 8Optionally, switch from block-based cart/checkout to shortcode-based pages (WooCommerce > Settings > Advanced > Features) as a fallback.
// Add to your theme's functions.php or a custom plugin
// Exclude WooCommerce cart and checkout pages from Jetpack Boost JS concatenation
add_filter( 'jetpack_boost_js_concatenate_exclusions', function( $exclusions ) {
if ( function_exists( 'is_cart' ) && function_exists( 'is_checkout' ) ) {
if ( is_cart() || is_checkout() ) {
$exclusions[] = 'cart';
$exclusions[] = 'checkout';
}
}
return $exclusions;
});
// Alternatively, disable JS concatenation entirely for these pages using WooCommerce conditional tags
add_action( 'wp', function() {
if ( is_cart() || is_checkout() ) {
add_filter( 'jetpack_boost_should_concatenate_js', '__return_false' );
}
});Final Recommendation
Best Practice
To prevent future occurrences, keep both WooCommerce and Jetpack Boost updated. Monitor changelogs for compatibility fixes. If you rely heavily on block-based cart/checkout, consider using the PHP exclusion filter provided above rather than disabling concatenation sitewide. For complex setups, test updates in a staging environment first. If the issue persists, switch to the classic shortcode checkout pages—they are less prone to JavaScript conflicts with performance plugins.
Motions Studio Team
WordPress developer specializing in debugging, WooCommerce optimization, and PHP compatibility fixes.
