✅Cómo Evitar que WooCommerce Cargue Scripts en Páginas que no Son de Tienda

Una de las cosas que más me encuentro cuando trabajo con sitios WooCommerce es que la mayoría de las webs cargan scripts y estilos de WooCommerce en todo el sitio, aunque no los necesiten. Esto no solo es una mala práctica, sino que ralentiza páginas como el blog, las landing pages o las páginas de servicios donde WooCommerce no pinta nada.

Hoy te voy a explicar cómo puedes evitar que WooCommerce cargue archivos CSS y JS fuera de las páginas de la tienda, el carrito o la cuenta de usuario, para que mejores el rendimiento y la velocidad de tu WordPress.

¿Por qué WooCommerce carga scripts en todo el sitio?

Por defecto, WooCommerce carga sus estilos y scripts globalmente, incluso si estás en una página que no tiene nada que ver con productos o procesos de compra.

Entre los archivos que WooCommerce carga de forma automática encontrarás:

  • woocommerce-layout.css
  • woocommerce-smallscreen.css
  • woocommerce.css
  • wc-cart-fragments.js
  • woocommerce.min.js

Todo esto es necesario en páginas como la tienda, el checkout o el carrito, pero en una página de contacto, un artículo de blog o una landing, solo están haciendo que tu sitio cargue más lento.

Cómo detectar si WooCommerce está sobrecargando tu web

Si inspeccionas cualquier página de tu sitio con el navegador (clic derecho > Inspeccionar > Red o Network), verás que los archivos de WooCommerce se están cargando incluso en páginas donde no hay productos ni procesos de compra.

Esto no solo aumenta el peso total de la página, sino que también puede generar malos resultados en Google PageSpeed y en los Core Web Vitals, sobre todo en CLS y LCP.

Solución: eliminar los scripts y estilos de WooCommerce en páginas no relacionadas

Ahora te muestro cómo hacerlo de forma controlada, evitando que WooCommerce cargue sus assets globalmente y solo lo haga donde realmente hace falta.

Código para tu functions.php

Puedes añadir este snippet en tu archivo functions.php de tu tema hijo o en un plugin como Code Snippets:

add_action( 'wp_enqueue_scripts', function() {
    // Condición: solo se cargan en la tienda, carrito, checkout o cuenta de usuario
    if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() && ! is_account_page() ) {
        // Desregistrar estilos de WooCommerce
        wp_dequeue_style( 'woocommerce-general' );
        wp_dequeue_style( 'woocommerce-layout' );
        wp_dequeue_style( 'woocommerce-smallscreen' );
        wp_dequeue_style( 'woocommerce-inline' );
        
        // Desregistrar scripts de WooCommerce
        wp_dequeue_script( 'wc-add-to-cart' );
        wp_dequeue_script( 'woocommerce' );
        wp_dequeue_script( 'wc-cart-fragments' );
    }
}, 99 );Lenguaje del código: PHP (php)

¿Qué hace este código?

  • is_woocommerce() detecta si estás en la tienda o una página de producto.
  • is_cart(), is_checkout() e is_account_page() detectan el carrito, la página de pago y la cuenta de usuario.
  • Si NO estás en ninguna de esas páginas, WooCommerce no cargará ni sus scripts ni sus estilos.

Esto significa que páginas como tu blog, página de contacto o cualquier otra landing no estarán sobrecargadas con CSS y JS que no necesitas.

¿Afecta al funcionamiento de la tienda?

No. WooCommerce seguirá funcionando correctamente en las páginas clave de tu ecommerce. Eso sí, asegúrate de que no usas widgets de WooCommerce (como mini-cart o shortcodes de productos) en otras páginas que no sean la tienda, porque si los eliminas de ahí también dejarán de funcionar.

Si por ejemplo usas un botón de «Añadir al carrito» en la home, este código lo desactivará fuera de la tienda, y tendrías que adaptarlo o crear una excepción específica.

Opcional: hacerlo aún más granular

Si quieres que los estilos y scripts de WooCommerce solo se carguen en productos individuales o incluso en ciertas categorías, puedes ampliar la condición con funciones como is_product() o is_product_category().

if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() && ! is_account_page() && ! is_product() ) {
    // Aquí va el código de dequeue
}Lenguaje del código: PHP (php)

Resultado: una web más ligera

Después de aplicar este código, tu sitio cargará menos archivos innecesarios fuera de la tienda y, en muchos casos, notarás una mejora clara en la velocidad de carga de las páginas no comerciales.

  • Menos peticiones HTTP.
  • Menor tamaño de la página.
  • Mejores métricas de rendimiento.
  • Mejor experiencia para el usuario.

⚠️ Aviso importante antes de usar este código

Este tipo de optimización es perfecta cuando usas WooCommerce de manera “tradicional”, es decir, cuando todo el proceso de compra ocurre dentro de las páginas estándar de WooCommerce: la tienda, el carrito, el checkout y la cuenta de usuario.

Sin embargo, NO es recomendable si tienes un sitio donde:

  • Estás usando shortcodes de WooCommerce (por ejemplo, [add_to_cart] o [products]) en otras páginas como landings personalizadas, páginas estáticas o entradas del blog.
  • Utilizas widgets de WooCommerce (como el mini-cart o botones dinámicos de añadir al carrito) en el header, sidebar o footer de páginas que no son de la tienda.
  • Has integrado bloques de WooCommerce en el editor de Gutenberg en páginas que no son del flujo habitual de tienda.

¿Por qué?

Porque al desregistrar los scripts y estilos de WooCommerce fuera de las páginas típicas (tienda, carrito, checkout, cuenta), esos shortcodes o widgets no funcionarán bien. Por ejemplo:

  • Los botones de “Añadir al carrito” no enviarán los productos al carrito.
  • Puede que ciertos estilos de producto (precios, avisos de stock, etc.) no se vean correctamente.
  • Elementos dinámicos como el mini-cart o los filtros Ajax dejarán de responder.

Entonces, ¿cuándo sí es buena idea aplicarlo?

  • Cuando tu tienda WooCommerce está aislada en sus páginas nativas y en el resto de la web (landing pages, blog, páginas de contacto, etc.) no utilizas elementos activos de WooCommerce.
  • En sitios donde WooCommerce solo es una sección puntual (una tienda con pocas categorías) y no es una funcionalidad global distribuida por todo el sitio.

¿Y si quiero un control más fino?

Si tienes shortcodes repartidos pero quieres limpiar ciertas páginas específicas, se puede adaptar el código para que los scripts se desactiven solo en páginas concretas usando condicionales como is_page('landing-producto') o is_front_page(), en lugar de hacerlo globalmente.

Conclusión

WooCommerce es una herramienta fantástica, pero viene con su propio peso en cuanto a assets. Gestionar bien cuándo y dónde se cargan sus archivos es una de esas optimizaciones que casi nadie hace, pero que marcan la diferencia cuando buscas una web rápida y profesional.

Yo siempre recomiendo implementar esto en cualquier sitio donde WooCommerce no sea el centro de toda la navegación. Evitarás cargar la web de recursos innecesarios y mejorarás la eficiencia global.

Nos vemos en el siguiente tutorial. Un saludo.

5/5 - (2 votos)
Compartir Artículo

Un comentario

  1. Fran Salas Master WP 1 año atrás

    ¿Tienes alguna duda? Déjala en los comentarios.

¿Tienes una duda o sugerencia sobre este artículo?

Puedes dejar un comentario de forma anónima, sin necesidad de registrarte ni proporcionar ningún dato personal. Tu mensaje se publicará como “Usuario Anónimo No Premium”, un perfil que agrupa a todos los visitantes no registrados.

Importante: para evitar el spam automático, todos los comentarios anónimos deben comenzar con el símbolo #. Ejemplo: # Tengo una duda sobre los shortcodes personalizados...

Este espacio está destinado exclusivamente a preguntas concretas, dudas o sugerencias relacionadas con el contenido del artículo. Por respeto a los demás lectores, no se publicarán temas sin relación.

Privacidad y normas:
  • No tienes que agregar tu nombre, correo ni ningún otro dato identificativo.
  • No se permiten enlaces en comentarios anónimos.
  • No se permiten símbolos especiales como < o > (menor y mayor que), ya que se consideran intentos de insertar código y serán bloqueados.
  • Todos los comentarios anónimos pasan por revisión antes de ser publicados y solo se aprobarán si aportan valor al contenido del artículo.
¿Quieres comentar con tu nombre y que tu mensaje se publique al instante? Inicia sesión o regístrate.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

0%