Quitar los js y css de Woocommerce en páginas donde no sean necesarios para mejorar SEO y velocidad.

Algo que no mucha gente sabe es que los plugins de WordPress cargan todos sus scripts (ficheros js) y estilos (ficheros css) desde la primera carga de la página. Se vayan a usar o no se vayan a usar esos plugins en esa sección de la página.
Algo que, obviamente, ralentiza la página porque tienen que leerse esos ficheros. Además, si haces pruebas de Pagespeed o Gmetrix, son estos ficheros los que verás que afectan más a la velocidad de carga de la página. Con avisos como “quitar el Javascript que bloquea la visualización del contenido“.

Así que estos días iremos compartiendo trucos para eliminar estos ficheros js o css en páginas donde no sean necesarios para los plugins más usados en WordPress. Hoy toca Woocommerce, el plugin más usado para crear páginas en WordPress.

Script para eliminar los ficheros js y css de Woocommerce donde no se necesitan.

Aquí os dejamos un script que podéis poner en vuestra página que hará un “deque” (eliminará) de los recursos de Woocommerce en las páginas que no sean carrito, página de categoría, página de producto, etiquetas etc.

Como siempre, el código se puede poner en el fichero functions.php del tema hijo, o en un Snippet.

add_action( 'wp_enqueue_scripts', 'prefix_dequeue_all_woocommerce_styles_scripts_non_shop_pages', PHP_INT_MAX );
/**
 * Disable all WooCommerce styles and scripts everywhere except WooCommerce pages.
 */
function prefix_dequeue_all_woocommerce_styles_scripts_non_shop_pages() {
    if ( function_exists( 'is_woocommerce' ) ) {
        if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() && !is_product_category() && !is_product_tag() && !is_product() ) {
            // Styles
            wp_dequeue_style( 'woocommerce-general' );
            wp_dequeue_style( 'woocommerce-layout' );
            wp_dequeue_style( 'woocommerce-smallscreen' );
            wp_dequeue_style( 'woocommerce_frontend_styles' );
            wp_dequeue_style( 'woocommerce_fancybox_styles' );
            wp_dequeue_style( 'woocommerce_chosen_styles' );
            wp_dequeue_style( 'woocommerce_prettyPhoto_css' );
            wp_dequeue_style( 'wc-block-style' );

            // Scripts
            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-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( 'fancybox' );
            wp_dequeue_script( 'jqueryui' );
        }
    }
}

He dejado una línea en rojo que hemos incluido con ciertas condiciones, pero que podéis ampliar con más. Estas son las conditional tags y os dejo aquí una referencia al respecto y otra más amplia aquí.

Si hacéis una prueba de velocidad antes y después de poner el código, veréis que ganáis en velocidad de caga de la página y, seguramente, en puntuación.

Nota: comprobad que os funciona todo bien en la tienda. Podéis tener que modificar el fichero para vuestra web.

Deja un comentario

Resumen de nuestra Política de Privacidad

  • Responsable: SmythSys IT Consulting SLNE.
  • Finalidad: Gestionar y moderar los comentarios.
  • Legitimación: Necesitas dar tu consentimiento para publicar un comentario.
  • Destinatarios: Tus datos se alojan en los servidores de OVH.
  • Derechos: Tienes derecho a acceder, rectificar, limitar y suprimir los datos en la dirección del responsable (en nuestra política de privacidad).

Time limit is exhausted. Please reload CAPTCHA.