WooCommerce mueve alrededor del 35 al 40 % de todas las tiendas online del mundo, y eso tiene un precio: es uno de los plugins más pesados que puedes instalar en WordPress. Eso no significa que tengas que resignarte a tiempos de carga lentos, sino que optimizarlo requiere algo más de atención que instalar un plugin de caché y cruzar los dedos.

En este artículo nos vamos a centrar en tres partes concretas de cualquier tienda: la ficha de producto, el carrito y el checkout o pantalla de pago. Son las páginas más visitadas, las más críticas para la conversión y, no por casualidad, las que más sufren en términos de rendimiento.

  1. Por qué WooCommerce es diferente al resto de WordPress
  2. Diagnóstico previo: mide antes de tocar nada
  3. Optimización de la ficha de producto
  4. Optimización del carrito
  5. Optimización del checkout
  6. Depuración con Query Monitor
  7. Errores frecuentes al configurar la caché en WooCommerce
  8. Base de datos: la parte invisible del rendimiento
  9. Plugins de caché y WooCommerce: configuración correcta
  10. Monitorización continua
  11. Conclusión

Por qué WooCommerce es diferente al resto de WordPress

Cuando optimizas un blog o una web corporativa, tienes control casi total sobre lo que se carga en cada página. Con WooCommerce, la cosa cambia: hay sesiones de usuario, fragmentos de carrito, precios dinámicos, variaciones de producto y un sistema de cachés que no siempre es amigo de los sistemas de caché tradicionales.

El gran problema es que WooCommerce necesita contenido dinámico en páginas que tú querrías cachear completamente. El carrito tiene que mostrar los productos actuales del usuario. El checkout necesita los datos de sesión. Los precios pueden variar según roles de usuario, cupones activos o reglas de precio por volumen.

Esto hace que la optimización de WooCommerce sea un ejercicio de equilibrio: cachear lo que se pueda, excluir lo que no se deba cachear y cargar de forma diferida todo lo que no sea imprescindible en la primera carga.

Un dato que lo ilustra: según un estudio de Baymard Institute, el 70 % de los carritos se abandonan antes de completar la compra1. Una parte importante de esos abandonos está relacionada con la lentitud percibida durante el proceso de compra. Cada segundo de retraso en el checkout puede suponer una caída del 7 % en conversiones.

Diagnóstico previo: mide antes de tocar nada

Antes de cambiar cualquier configuración, mide el estado actual de tu tienda. Tienes que saber dónde estás para saber si las mejoras funcionan.

Estas son las herramientas más útiles para WooCommerce específicamente:

  • PageSpeed Insights con la URL de un producto real, la página del carrito y el checkout. No uses la portada como referencia, no es representativa.
  • WebPageTest.org con la opción de simular un usuario con algo en el carrito (puedes hacerlo desde una sesión autenticada exportando las cookies).
  • Query Monitor (plugin) para ver cuántas consultas a la base de datos genera cada página y cuánto tardan.
  • WP Crontrol para revisar si tienes tareas programadas de WooCommerce que se estén ejecutando con demasiada frecuencia.

Cuando hagas las mediciones, fíjate especialmente en tres cosas: número de peticiones HTTP, peso total de la página y tiempo hasta el primer byte (TTFB). En la mayoría de las webs, el TTFB elevado suele indicar problemas en PHP o en la base de datos, no en el front-end.

Optimización de la ficha de producto

La ficha de producto es la página donde el usuario decide si compra o no. Tiene que cargar rápido, mostrar la información clave de inmediato y no bloquear la interacción con JavaScript innecesario.

Carga condicional de scripts y estilos

WooCommerce carga en todas las páginas scripts que solo necesita en algunas. El más habitual es el script de variaciones de producto, que solo tiene sentido en fichas de productos variables. Si vendes ropa con tallas y colores, ese script está justificado en la ficha, pero no tiene ningún sentido en la página del blog.

Puedes desencolar los scripts de WooCommerce donde no sean necesarios desde un plugin de personalizaciones:

/**
* Dequeue WooCommerce scripts and styles on non-WooCommerce pages.
*
* @return void
* @since 1.0
*/
function cl_dequeue_wc_assets() {
if ( is_woocommerce() || is_cart() || is_checkout() || is_account_page() ) {
return;
}
wp_dequeue_style( 'woocommerce-general' );
wp_dequeue_style( 'woocommerce-layout' );
wp_dequeue_style( 'woocommerce-smallscreen' );
wp_dequeue_script( 'woocommerce' );
wp_dequeue_script( 'wc-cart-fragments' );
wp_dequeue_script( 'wc-add-to-cart' );
wp_dequeue_script( 'wc-add-to-cart-variation' );
wp_dequeue_script( 'wc-single-product' );
}
add_action( 'wp_enqueue_scripts', 'cl_dequeue_wc_assets', 99 );

El script wc-cart-fragments merece mención especial. Es el responsable de mantener actualizado el contador del carrito en el header sin recargar la página. El problema es que hace una petición AJAX al cargar cualquier página de la tienda, lo que impide el cacheo completo de esa petición y añade una llamada extra al servidor. Si tu tema no muestra el número de elementos del carrito en el header, o si lo obtienes de otra manera, puedes eliminarlo sin problema.

Imágenes de producto

Imagen de producto de WooCommerce mostrando un champú.

Las fichas de producto suelen tener varias imágenes: imagen principal, galería y miniaturas. Es habitual que lleguen a la tienda sin comprimir, en tamaños enormes y en formato JPG o PNG cuando podrían estar en WebP o AVIF.

WordPress genera automáticamente varios tamaños de imagen al subir un archivo, pero WooCommerce añade los suyos propios: woocommerce_thumbnail, woocommerce_single y woocommerce_gallery_thumbnail. Asegúrate de que esos tamaños están bien configurados en WooCommerce → Ajustes → Productos → Imágenes y que no estás sirviendo imágenes más grandes de lo que el diseño necesita.

Para la imagen principal del producto, desactiva el lazy loading o carga diferida. Esta imagen suele ser el LCP de la ficha de producto, y si tiene el atributo loading="lazy", Google la va a penalizar en las Core Web Vitals. Puedes hacerlo así:

/**
* Remove lazy loading from the main WooCommerce product image.
*
* @param string $html Image HTML output.
* @return string Modified image HTML.
* @since 1.0
*/
function cl_remove_lazy_from_main_product_image( $html ) {
if ( is_product() ) {
$html = str_replace( ' loading="lazy"', ' loading="eager"', $html );
$html = str_replace( ' fetchpriority="low"', ' fetchpriority="high"', $html );
}
return $html;
}
add_filter( 'woocommerce_single_product_image_thumbnail_html', 'cl_remove_lazy_from_main_product_image' );

Precarga de la imagen de producto principal

Además de quitar el lazy loading, puedes precargar la imagen principal para que el navegador empiece a descargarla lo antes posible:

/**
* Preload the main WooCommerce product image.
*
* @return void
* @since 1.0
*/
function cl_preload_main_product_image() {
if ( ! is_product() ) {
return;
}
global $product;
$image_id = $product->get_image_id();
$image_src = wp_get_attachment_image_src( $image_id, 'woocommerce_single' );
if ( ! $image_src ) {
return;
}
echo '<link rel="preload" as="image" href="' . esc_url( $image_src[0] ) . '" fetchpriority="high">';
}
add_action( 'wp_head', 'cl_preload_main_product_image', 1 );

Productos variables y el coste de las variaciones

Imagen de un producto variable en WooCommerce, mostrando una barra de labios.

Si vendes productos variables (ropa con tallas, electrónica con diferentes configuraciones…), las variaciones son probablemente la mayor fuente de lentitud que no estás viendo. WooCommerce carga en la ficha todos los datos de variación como un objeto JSON incrustado en el HTML. En productos con pocas variaciones esto es inocuo, pero en cuanto tienes un producto con 5 atributos y varios valores cada uno, ese JSON puede pesar varios cientos de kilobytes y bloquear el renderizado.

WooCommerce tiene un umbral a partir del cual deja de incluir ese JSON en el HTML y lo carga de forma diferida vía AJAX. Por defecto, ese umbral está en 30 variaciones. Si tienes productos con más variaciones de las que este límite controla, puedes ajustarlo:

/**
* Decrease the threshold for lazy-loading product variations via AJAX.
* Default is 30. Lower value means more products use AJAX loading.
*
* @param int $threshold Number of variations above which AJAX loading is used.
* @return int Modified threshold.
* @since 1.0
*/
function cl_decrease_variations_ajax_threshold( $threshold ) {
return 20;
}
add_filter( 'woocommerce_ajax_variation_threshold', 'cl_decrease_variations_ajax_threshold' );

Reducir el umbral hace que WooCommerce use AJAX para cargar las variaciones en más productos, aligerando el HTML inicial de la ficha. El usuario nota un pequeño retardo al seleccionar atributos por primera vez, pero la carga inicial de la página es mucho más rápida. Es un intercambio que suele merecer la pena cuando tienes productos con muchas combinaciones.

Otro problema frecuente con las variaciones es el precio. Si tienes precios diferentes para muchas variaciones, WooCommerce genera un rango de precios («desde X hasta Y») que requiere consultar todos los precios disponibles. En catálogos grandes esto puede ser caro en tiempo de base de datos. En ese caso, considera mostrar siempre el precio de la variación seleccionada por defecto y omitir el rango, o aprovecha la caché de precios que WooCommerce ofrece de forma nativa.

Upsells y productos relacionados

Imagen de WooCommerce con productos relacionados.

La sección de productos relacionados y upsells al final de la ficha es útil para la conversión, pero genera una consulta adicional a la base de datos por cada ficha visitada. En catálogos grandes, esa consulta puede ser lenta. Hay dos opciones: limitar el número de productos que se muestran, o desactivarlos en fichas donde la velocidad pesa más que la venta cruzada.

/**
* Limit related products to 3 and use a single column on product pages.
*
* @param array $args Related products query arguments.
* @return array Modified arguments.
* @since 1.0
*/
function cl_limit_related_products( $args ) {
$args['posts_per_page'] = 3;
$args['columns'] = 3;
return $args;
}
add_filter( 'woocommerce_output_related_products_args', 'cl_limit_related_products' );
/**
* Remove related products section from all product pages.
*
* @return void
* @since 1.0
*/
function cl_remove_related_products() {
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 );
}
add_action( 'init', 'cl_remove_related_products' );

Revisiones y valoraciones

Si tienes muchas valoraciones de producto (decenas o cientos), la página puede crecer considerablemente. Considera paginar las valoraciones para que no se carguen todas de golpe. WooCommerce no lo hace por defecto, pero puedes controlarlo desde código o con plugins especializados.

Optimización del carrito

El carrito es la página más dinámica de toda la tienda. No se puede cachear de forma convencional y genera peticiones AJAX cada vez que el usuario modifica una cantidad, aplica un cupón o cambia el método de envío.

El problema de los fragmentos del carrito

WooCommerce usa un sistema llamado cart fragments para mantener el carrito actualizado sin recargar la página. Cada vez que el usuario llega a una página, se ejecuta una petición AJAX a /?wc-ajax=get_refreshed_fragments para obtener el HTML actualizado del carrito del header.

Esta petición tiene dos efectos negativos en el rendimiento: impide que la caché sirva la página completamente y añade latencia al tiempo de carga percibido. Si tu tema no usa ese fragmento dinámico del carrito, elimina el script. Si sí lo necesitas, al menos asegúrate de que la respuesta de esa petición AJAX no es excesivamente pesada.

Alto rendimiento

Potencia tu web con hosting de alto rendimiento

Caché y el carrito: lo que no puedes cachear

La página del carrito nunca debe estar en caché. En plugins como WP Rocket, LiteSpeed Cache o W3 Total Cache, verifica que las siguientes URL están excluidas de la caché (o el nombre personalizado que tengas de estas páginas):

  • /carrito/ o /cart/
  • /mi-cuenta/ o /my-account/
  • /finalizar-compra/ o /checkout/

Además, las cookies de WooCommerce (woocommerce_cart_hash, woocommerce_items_in_cart, wp_woocommerce_session_*) deben hacer que la caché no sirva versiones cacheadas para usuarios que las tengan activas.

Tablas de la base de datos y sesiones

WooCommerce guarda las sesiones de carrito en la tabla wp_woocommerce_sessions, que puede crecer mucho en tiendas con tráfico elevado. WooCommerce tiene una tarea programada (woocommerce_cleanup_sessions) que elimina las sesiones expiradas; comprueba con WP Crontrol que se ejecuta correctamente.

También puedes reducir la duración de las sesiones si no necesitas carritos persistentes durante mucho tiempo:

/**
* Reduce WooCommerce session expiration to 2 hours.
*
* @param int $seconds Session expiration in seconds.
* @return int Modified expiration time.
* @since 1.0
*/
function cl_reduce_session_expiration( $seconds ) {
return 2 * HOUR_IN_SECONDS;
}
add_filter( 'wc_session_expiration', 'cl_reduce_session_expiration' );

Cálculo de envío y rendimiento

Si usas tarifas en tiempo real que consultan API externas (en un Odoo por ejemplo), implementa caché para esas llamadas con los transients de WordPress:

/**
* Get cached shipping rate from external API.
*
* @param string $cache_key Unique key for the cached rate.
* @param callable $api_callback Function to call when cache is empty.
* @return mixed Shipping rate data.
* @since 1.0
*/
function cl_get_cached_shipping_rate( $cache_key, $api_callback ) {
$cached = get_transient( $cache_key );
if ( false !== $cached ) {
return $cached;
}
$rate = call_user_func( $api_callback );
set_transient( $cache_key, $rate, 30 * MINUTE_IN_SECONDS );
return $rate;
}

Optimización del checkout

El checkout es el paso más crítico de toda la tienda. Un checkout lento, con errores o que requiera demasiadas interacciones es el mayor enemigo de las conversiones.

Checkout de bloques de Gutenberg vs checkout clásico

Imagen del checkout de WooCommerce de bloques en el editor de Gutenberg.

Desde WooCommerce 8.3, el checkout basado en bloques de Gutenberg es el predeterminado en instalaciones nuevas. Tiene mejor rendimiento que el clásico basado en shortcode, porque usa React y un enfoque más moderno para las actualizaciones del estado del formulario. Si todavía usas el checkout clásico ([woocommerce_checkout]), considera migrar al checkout de bloques, verificando antes la compatibilidad de tus plugins de pago.

Carga de pasarelas de pago

Cada pasarela de pago carga sus propios scripts. PayPal, Stripe, Bizum, Redsys… todos añaden JavaScript al checkout. Limítalos únicamente a las páginas donde son necesarios:

/**
* Load payment gateway scripts only on checkout and order-pay pages.
*
* @return void
* @since 1.0
*/
function cl_limit_payment_scripts() {
if ( is_checkout() || is_wc_endpoint_url( 'order-pay' ) ) {
return;
}
wp_dequeue_script( 'stripe' );
wp_dequeue_script( 'wc-stripe-payment-request' );
}
add_action( 'wp_enqueue_scripts', 'cl_limit_payment_scripts', 99 );

Campos de checkout innecesarios

Cada campo adicional es una fricción más para el usuario. Si no los necesitas para tu negocio, elimínalos. Menos campos = menos tiempo para rellenar = más conversiones.

/**
* Remove unnecessary checkout fields.
*
* @param array $fields Default checkout fields.
* @return array Modified checkout fields.
* @since 1.0
*/
function cl_remove_checkout_fields( $fields ) {
unset( $fields['billing']['billing_company'] );
unset( $fields['billing']['billing_address_2'] );
unset( $fields['order']['order_comments'] );
return $fields;
}
add_filter( 'woocommerce_checkout_fields', 'cl_remove_checkout_fields' );

HTTPS y contenido mixto

El checkout debe funcionar siempre por HTTPS. Asegúrate de que no tienes recursos HTTP en páginas HTTPS. El contenido mixto puede romper funcionalidades del checkout o mostrar advertencias de seguridad que impidan completar la compra.

Depuración con Query Monitor

Inspección del checkout de WooCommerce con Query Monitor.

Query Monitor es el plugin de diagnóstico más útil que puedes instalar en una tienda WooCommerce. Muestra en tiempo real las consultas a la base de datos que genera cada página, cuánto tardan, qué plugin o función las origina y si hay consultas duplicadas o lentas.

Para usarlo de forma efectiva en WooCommerce, instálalo y navega por estas páginas mientras lo tienes activo:

  • Una ficha de producto con variaciones: observa cuántas consultas genera y si alguna supera los 100 ms.
  • El carrito con varios productos: fíjate si el cálculo de envío dispara consultas adicionales.
  • El checkout: identifica si alguna pasarela de pago o plugin de validación genera consultas extra.

Los indicadores que debes vigilar son: número total de consultas (más de 50 en una ficha de producto empieza a ser preocupante), tiempo total de todas las consultas (más de 200 ms apunta a un problema real) y consultas duplicadas (la misma consulta ejecutándose varias veces es un bug en algún plugin).

Query Monitor también muestra el tiempo de carga por hook de WordPress, lo que te permite ver si algún plugin está ejecutando código lento en momentos críticos del ciclo de carga de WooCommerce. Por ejemplo, si un plugin de precios personalizados tarda 300 ms en ejecutarse durante el hook woocommerce_get_price, lo verás reflejado claramente.

Una vez que identifiques las consultas lentas, puedes usar la información que te da Query Monitor para saber exactamente qué función las genera y decidir si desactivar ese plugin, buscar una alternativa más eficiente o contactar al desarrollador con datos concretos.

Errores frecuentes al configurar la caché en WooCommerce

Más allá de las reglas generales sobre qué cachear y qué no, hay una serie de errores concretos que se suelen repetir en tiendas WooCommerce y que generan problemas difíciles de diagnosticar si no sabes dónde mirar.

Caché de página activa para usuarios identificados

Caché de usuario en WooCommerce.

Si un cliente inicia sesión y el plugin de caché le sirve páginas cacheadas pensadas para visitantes anónimos, verá precios sin su descuento de rol, el carrito de otra sesión o el formulario de checkout sin sus datos precargados. Todos los plugins de caché serios tienen una opción para no cachear páginas de usuarios autenticados; comprueba que está activa.

Minificación que rompe el selector de variaciones

El JavaScript de variaciones de WooCommerce es sensible a la minificación agresiva. Si, después de activar la minificación de JS, el selector de variaciones deja de funcionar (no cambia el precio al seleccionar un atributo o no actualiza la imagen), el primer paso es desactivar la minificación de JS y comprobar si el problema desaparece. Si es así, excluye el script wc-add-to-cart-variation de la minificación.

Combinar CSS de WooCommerce con el del tema

Algunos plugins de optimización combinan todos los archivos CSS en uno solo. En WooCommerce puede hacer que estilos del checkout aparezcan en la portada o que estilos del tema sobreescriban los del carrito porque el orden de cascada cambia al combinar archivos. Si notas problemas visuales después de activar la combinación de CSS, excluye los archivos de WooCommerce de ese proceso.

Precarga de páginas del carrito y checkout

Algunos plugins de caché incluyen una función de precarga de enlaces (prefetch o prerender): el navegador carga en segundo plano las páginas a las que apuntan los enlaces visibles. Si esta función está activa y hay un enlace al carrito o al checkout visible en la página, el plugin puede intentar precargar esas páginas y generar sesiones fantasma o errores de validación. Excluye siempre las URL del carrito y el checkout de cualquier función de prefetch.

Base de datos: la parte invisible del rendimiento

WooCommerce genera una cantidad enorme de datos: pedidos, sesiones, transacciones, metadatos de producto, estadísticas de ventas… todo se acumula con el tiempo y puede hacer que las consultas se vuelvan lentas.

Tablas de alto rendimiento de WooCommerce

Desde WooCommerce 8.2, está disponible el modo de alto rendimiento para el almacenamiento de pedidos (HPOS). Usa tablas optimizadas en lugar del sistema de post meta de WordPress, que no estaba diseñado para este volumen. Actívalo desde WooCommerce → Ajustes → Avanzado → Características, verificando antes la compatibilidad de tus plugins. También podemos activar Caché de datos HPOS, Índices de búsqueda de texto de HPOS y Objetos de producto de la caché.

Un hosting para los amantes de la velocidad

Siente la velocidad. Con seguridad. Sin límites. Sin frenos.

Action Scheduler

Action Scheduler es el sistema de tareas programadas que WooCommerce y muchas extensiones utilizan para ejecutar procesos en segundo plano.

Puede gestionar:

  • Correos.
  • Webhooks.
  • Suscripciones.
  • Sincronizaciones.
  • Reintentos.
  • Importaciones.
  • Procesos de plugins.
  • Automatizaciones.

Si se acumulan muchas acciones pendientes o fallidas, la tienda puede empezar a mostrar síntomas raros: procesos que no terminan, administración lenta, integraciones que no sincronizan o tareas que se repiten sin éxito.

Puedes revisar el estado con WP-CLI:

wp action-scheduler action list --status=pending
wp action-scheduler action list --status=failed
wp action-scheduler action list --status=in-progress

Y ejecutar la cola manualmente:

wp action-scheduler run

Si hay miles de acciones fallidas, no las borres sin más. Primero revisa el hook, el plugin responsable y el error. Muchas veces hay una conexión externa rota, una API que ya no responde o un plugin mal configurado.

WP-Cron y cron real

WooCommerce depende de tareas programadas. Si WP-Cron no se ejecuta correctamente, algunas acciones se retrasan.

Puedes listar eventos con:

wp cron event list

En tiendas con tráfico irregular o procesos importantes, suele ser mejor desactivar la ejecución automática de WP-Cron en visitas y configurar un cron real del servidor.

En wp-config.php:

define( 'DISABLE_WP_CRON', true );

Y en cron del sistema:

*/5 * * * * cd /ruta/a/wordpress && wp cron event run --due-now >/dev/null 2>&1

Ajusta la ruta y frecuencia según el proyecto.

Limpieza periódica de datos

Con el tiempo se acumulan sesiones expiradas, pedidos fallidos, revisiones de productos y metadatos huérfanos. Puedes complementar las tareas automáticas de WooCommerce con WP-CLI:

wp wc tool run clear_expired_transients --user=1
wp wc tool run delete_orphaned_variations --user=1
wp post delete $(wp post list --post_type='shop_order' --post_status=wc-failed --format=ids) --force

El último comando elimina los pedidos fallidos. Antes de ejecutarlo en producción, asegúrate de que no los necesitas para informes o contabilidad.

Plugins de caché y WooCommerce: configuración correcta

Uno de los errores más frecuentes al configurar la caché en una tienda WooCommerce es aplicar las mismas reglas que aplicarías a un blog. WooCommerce necesita configuración específica.

Qué cachear y qué no

Exclusiones de caché en WooCommerce.

Regla general: cachea las páginas que no varían entre usuarios (portada, categorías, fichas de producto cuando el usuario no está identificado y no tiene nada en el carrito). No cachees el carrito, el checkout, la cuenta de usuario ni ninguna página que dependa de la sesión del usuario.

Caché de objetos

Redis o Memcached almacena en memoria el resultado de consultas repetidas a la base de datos: precios, metadatos de producto, reglas de envío. Si tu hosting lo soporta (WordPress.com Business y Commerce, Kinsta y la mayoría de hostings gestionados lo incluyen), actívalo. El impacto en el TTFB puede ser significativo en tiendas con catálogos grandes.

Minificación y combinación de assets

WooCommerce carga múltiples archivos CSS y JavaScript. La minificación y la combinación de archivos reduce el número de peticiones HTTP, pero hay que tener cuidado con combinar scripts que tienen dependencias complejas, porque puede romper funcionalidades. Si usas un plugin de caché con esta función, prueba siempre en un entorno de pruebas antes de aplicarlo en producción.

Monitorización continua

La optimización de WooCommerce no es una tarea que se hace una vez. Las actualizaciones de WooCommerce, de plugins y de temas pueden introducir regresiones de rendimiento que no notarás hasta que un cliente se queje o veas una caída en las conversiones.

  • Configura alertas de tiempo de respuesta en tu servicio de monitorización (UptimeRobot, Better Uptime, Pingdom) para las URL del carrito y el checkout.
  • Revisa mensualmente los informes de Core Web Vitals en Google Search Console, prestando especial atención a las páginas de producto.
  • Crea un entorno de pruebas donde probar actualizaciones antes de aplicarlas en producción. Muchos hostings lo incluyen de serie.
  • Documenta los cambios que haces y cuándo los haces. Si el rendimiento cae, saber qué cambió últimamente acelera enormemente el diagnóstico.

Conclusión

Optimizar WooCommerce es una tarea más específica y exigente que optimizar un WordPress estándar, pero los resultados tienen un impacto directo y medible en el negocio.

Las fichas de producto necesitan imágenes bien optimizadas, scripts condicionales, variaciones que no bloqueen el HTML inicial y una imagen principal que cargue lo antes posible. El carrito requiere entender qué se puede cachear y qué no, y mantener la base de datos limpia. El checkout necesita los scripts justos, formularios sin fricción innecesaria y HTTPS sin excepciones. Y todo el conjunto necesita ser monitorizado con herramientas como Query Monitor para detectar problemas antes de que los note el cliente.

No hace falta aplicar todo a la vez. Empieza midiendo, identifica el mayor cuello de botella y atácalo. Mide de nuevo. Repite. Es el mismo proceso de siempre, aplicado a un contexto donde cada décima de segundo puede traducirse en más o menos ventas.

Y si tu tienda está en WordPress.com Commerce, ya tienes activado por defecto el Acelerador de sitios para las imágenes, la caché de objetos y algunas de las optimizaciones más importantes. El trabajo que te queda es el que nadie puede hacer por ti: decidir qué scripts necesitas realmente, simplificar el checkout y mantener la base de datos limpia.

  1. https://baymard.com/research/checkout-usability ↩︎