You can disable the default WooCommerce CSS with a single filter that stops the plugin’s front-end stylesheets from being enqueued, letting you apply your own styles from scratch instead of overriding WooCommerce’s built-in classes. This is only recommended for a full custom design, since it strips styling from carts, forms, and notices too.
Why You’d Want to Disable WooCommerce’s Default Styles
- You’re building a fully custom theme design and don’t want to fight specificity wars with core styles
- You want fewer stylesheet requests for a small performance gain
- Your current theme’s CSS conflicts heavily with WooCommerce’s defaults
Step 1: Add the Disable Filter
WooCommerce provides a filter specifically for this — no need to dequeue individual handles one by one.
/** Stop WooCommerce from loading its bundled front-end stylesheets */
add_filter( 'woocommerce_enqueue_styles', '__return_empty_array' );

After adding this, every WooCommerce page — shop, cart, checkout, account — renders completely unstyled by the plugin, relying entirely on your theme or custom CSS.
Disabling Only Specific Stylesheets
If you only want to drop one stylesheet (for example, the general layout styles) while keeping others like the select2 dropdown styling, filter the array instead of returning an empty one:
add_filter( 'woocommerce_enqueue_styles', 'trim_wc_core_stylesheets' );
function trim_wc_core_stylesheets( $enqueue_styles ) {
unset( $enqueue_styles['woocommerce-layout'] );
return $enqueue_styles;
}Step 2: Rebuild the Styling You Actually Need
Once the defaults are gone, expect basic elements — buttons, notices, tables, quantity inputs — to look like unstyled HTML. Budget time to rebuild at least the cart, checkout, and product-page layouts before pushing this live on a production store.
Troubleshooting
Snippet Stops Working After an Update
Confirm no other plugin or theme is also hooking into woocommerce_enqueue_styles at a later priority and re-adding stylesheets — check for conflicts before assuming the filter itself broke.
Layout Looks Broken Site-Wide
This is expected immediately after disabling core CSS — it removes structural spacing and grid rules too, not just colors, so plan to rebuild layout CSS rather than treating this as a bug.
Frequently Asked Questions
Will disabling default WooCommerce CSS break plugin functionality?
No — this only removes visual styling. Cart, checkout, and account functionality keep working; they’ll simply look unstyled until you add your own CSS.
Is there a settings checkbox for this instead of code?
Older WooCommerce versions had a settings checkbox, but current versions require the filter snippet shown above.
Can I disable CSS on some pages only?
Yes — wrap the filter in a conditional (e.g. checking is_product() or is_cart()) so it only applies where you want unstyled markup.
Conclusion
Disabling the default WooCommerce CSS is a one-line filter, but it’s a decision that only makes sense for stores doing a full custom design. Use the targeted array-filtering approach if you only need to remove part of the default stylesheet rather than all of it.
See also How to Disable Theme WooCommerce Template Overrides. Then read How to Disable a Plugin for Customers or Shop Managers in WooCommerce.
Prefer no code? All-in-One Utilities is a free plugin, so you can harden and speed up WordPress without code.