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.csswoocommerce-smallscreen.csswoocommerce.csswc-cart-fragments.jswoocommerce.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()eis_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.




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