Time
>20 minutes
Difficulty
3/10
Impact
4/10
Speed Up Woocommerce
Woocommerce is a staple of many WordPress websites that utilize a store, checkout process or sell something directly to visitors on their WordPress site. Unfortunately, it’s added by default to many themes and requires that sites load bulky Woocommerce code on every page, even when it isn’t needed or used.
This can be fixed for most sites by removing these scripts from pages that aren’t the “cart” or “store” pages that Woocommerce is actually needed on.
Stripping out the slow, unneeded Woocommerce code
Most sites don’t need all of Woocommerce loaded on every single page. While some sites may have more complex e-commerce setups, most publishers simply can remove the unnecessary bulk by adding the code below to a child theme of their Woocomerce site.
Step 1: Create a child theme or your existing theme if you haven’t already
Step 2: Add the code below to your functions.php file
This can be done by going to Appearance > Theme Editor > [select the child theme] > functions.php — then add the code to that file by copy pasting below
/**
* Disable WooCommerce block styles (front-end).
*/
function slug_disable_woocommerce_block_styles() {
wp_dequeue_style( 'wc-block-style' );
}
add_action( 'wp_enqueue_scripts', 'slug_disable_woocommerce_block_styles' );
/**
* Manage WooCommerce styles and scripts.
*/
function grd_woocommerce_script_cleaner() {
// Remove the generator tag
remove_action( 'wp_head', array( $GLOBALS['woocommerce'], 'generator' ) );
// Unless we're in the store, remove all the cruft!
if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() ) {
wp_dequeue_style( 'woocommerce_frontend_styles' );
wp_dequeue_style( 'wc-block-vendors-style-css' );
wp_dequeue_style( 'woocommerce-blocks');
wp_dequeue_style( 'woocommerce-general');
wp_dequeue_style( 'woocommerce-layout' );
wp_dequeue_style( 'woocommerce-smallscreen' );
wp_dequeue_style( 'woocommerce_fancybox_styles' );
wp_dequeue_style( 'woocommerce_chosen_styles' );
wp_dequeue_style( 'woocommerce_prettyPhoto_css' );
wp_dequeue_script( 'selectWoo' );
wp_deregister_script( 'selectWoo' );
wp_dequeue_script( 'wc-add-payment-method' );
wp_dequeue_script( 'wc-lost-password' );
wp_dequeue_style ( 'wc-block-vendors-style-css' );
wp_dequeue_script( 'wc_price_slider' );
wp_dequeue_script( 'wc-single-product' );
wp_dequeue_script( 'wc-add-to-cart' );
wp_dequeue_script( 'wc-cart-fragments' );
wp_dequeue_script( 'wc-credit-card-form' );
wp_dequeue_script( 'wc-checkout' );
wp_dequeue_script( 'wc-add-to-cart-variation' );
wp_dequeue_script( 'wc-single-product' );
wp_dequeue_script( 'wc-cart' );
wp_dequeue_script( 'wc-chosen' );
wp_dequeue_script( 'woocommerce' );
wp_dequeue_script( 'prettyPhoto' );
wp_dequeue_script( 'prettyPhoto-init' );
wp_dequeue_script( 'jquery-blockui' );
wp_dequeue_script( 'jquery-placeholder' );
wp_dequeue_script( 'jquery-payment' );
wp_dequeue_script( 'fancybox' );
wp_dequeue_script( 'jqueryui' );
}
}
add_action( 'wp_enqueue_scripts', 'grd_woocommerce_script_cleaner', 99 );
If you’re using Ezoic Leap, after implementing this change make sure to clear the cache inside the caching app and clear the cache in the Leap Optimization Settings tab as well (two caches to clear).