Test A/B

Test A/B en WooCommerce: la Guía Completa

Test a/b woocommerce: caché de página, checkout en bloques o shortcode, qué métrica sirve en cada etapa y la cuenta de muestra que define qué testear.

Ilustración de dos carritos de compra idénticos enfrentados a ambos lados de un divisor vertical fino, con una pequeña pila de bloques en el medio

El test A/B en WooCommerce no se diferencia del test A/B en cualquier otra tienda, salvo por cuatro detalles que solo aparecen en una instalación WordPress y que hunden la mayoría de los primeros intentos: la caché de página, la convivencia entre el checkout en bloques y el checkout clásico, los conflictos de plugins y la elección de qué etapa medir. Esta guía forma parte del playbook de optimización de checkout para ecommerce y cubre los cuatro, muestra qué métrica sirve en cada etapa de la tienda y te da la cuenta que define qué puedes y qué no puedes testear con tu nivel de tráfico, con una calculadora en vivo y un ejemplo trabajado de punta a punta.

Qué tiene de distinto una tienda WooCommerce

WooCommerce es un plugin de ecommerce para WordPress, con más de 7 millones de instalaciones activas según el repositorio oficial de plugins de WordPress (wordpress.org). No incluye ningún motor de experimentación, así que el test siempre viene de fuera, por uno de dos caminos:

Camino Cómo funciona Ventaja Trampa principal en WordPress
Snippet client-side Una etiqueta en el header intercambia contenido en el navegador del visitante Se instala en minutos, sin deploy Parpadeo si la etiqueta carga tarde; depende de JavaScript
Server-side en PHP Un hook asigna la variación antes de montar la página Sin parpadeo, funciona con JavaScript desactivado La caché de página puede congelar una variación y servirla a todos

La diferencia entre los dos modelos está detallada en la guía de test A/B client-side vs server-side. Para la mayoría de las tiendas WooCommerce, el camino client-side es el único que entra en producción en poco tiempo, y la próxima sección explica por qué.

Obstáculo 1: la caché de página

Este es el problema número uno, y es silencioso. Casi toda tienda WordPress seria corre con caché de página, sea por un plugin o por una CDN. La caché existe justamente para que PHP no se ejecute en cada visita: guarda el HTML generado una vez y devuelve ese mismo archivo a las siguientes personas.

Eso es excelente para el rendimiento y fatal para un test server-side ingenuo. Si tu código asigna la variación en PHP y la caché guarda la primera respuesta generada, todo el mundo empieza a recibir esa variación. El test sigue “corriendo” en el panel, y la división real del tráfico ya no es la que configuraste.

Cómo la caché de página congela un test server-sideEn un test server-side sin tratamiento de caché, PHP asigna la variación una vez, la caché guarda ese HTML y devuelve la misma variación a cada visitante siguiente. En un test client-side, el servidor devuelve un HTML idéntico para todos, la caché guarda ese único HTML y el script asigna la variación dentro del navegador de cada persona.Server-side, caché ignoradaPHP asignauna sola vezLa caché guardasolo la variación Btodos reciben Bsíntoma: división de tráfico lejísimos del 50/50 en el informeSnippet client-sideHTML únicoigual para todosLa caché guardaese único HTMLel script asigna en el navegadorcada persona cae de un ladola caché no toca la divisiónEl test server-side correcto con caché existe: exige variar la clave de caché por variacióno decidir en el edge, antes de que la caché responda. Lo que nunca funciona es ignorar el problema.Revisa siempre la división real de tráfico en el día uno de cualquier test.
La caché no rompe un test client-side, porque el HTML servido es idéntico para todos y la asignación ocurre después. Esa es la razón práctica por la que casi toda tienda WooCommerce empieza por ese camino.

El test server-side correcto puede convivir con la caché: la clave de caché tiene que incluir la variación, o la decisión tiene que ocurrir en el edge, antes de que la caché responda. Eso es trabajo de infraestructura, descrito en la guía de implementación de test A/B en servidor. El error es correr el test sin tratar la caché y después confiar en el informe.

Elijas el camino que elijas, hay una comprobación obligatoria en el día uno: mira la división real de visitantes entre variaciones. Una división que debería ser 50/50 y aparece como 68/32 no es mala suerte, es un defecto de instrumentación, y el test entero sigue inválido hasta que se arregle. Esa comprobación tiene nombre, sample ratio mismatch, y está cubierta entre los errores más comunes en tests A/B.

Obstáculo 2: checkout en bloques vs checkout clásico

Según la documentación de WooCommerce, las tiendas iniciadas desde el lanzamiento de la versión 8.3, en noviembre de 2023, traen los bloques de Carrito y Checkout como experiencia por defecto, sin necesidad de configuración (WooCommerce, Cart and Checkout Blocks as Default). Las tiendas más antiguas normalmente siguen con el checkout clásico, montado por shortcode.

Para el test, la consecuencia es directa: las dos versiones generan HTML distinto. Un selector CSS escrito contra el checkout clásico simplemente no encuentra nada en el checkout en bloques, y el test corre sin aplicar nunca la variación, produciendo un empate perfecto que parece un resultado y es un defecto.

Antes de escribir cualquier variación, comprueba cuál de los dos usa tu tienda y escribe el selector contra la estructura real de la página. Si gestionas más de una tienda, no reutilices selectores entre ellas sin comprobar.

Obstáculo 3: conflictos de plugins y visitantes logueados

Dos particularidades de WordPress cierran la lista de trampas técnicas.

La primera es el conjunto de plugins. Una tienda WooCommerce típica corre decenas de ellos, y varios tocan el mismo lugar que toca tu test: optimizadores de checkout, plugins de campos personalizados, plugins de envío, plugins de popup. Cuando dos piezas de código alteran el mismo elemento, gana quien aplica último, y el resultado varía con el orden de carga. El síntoma es una variación que “a veces aparece”.

La segunda es el visitante logueado. Administradores, editores y clientes recurrentes logueados suelen ver el sitio con la barra de administración, con la caché desactivada y a veces con precios distintos. Incluir a ese público contamina los dos lados de forma despareja. La regla práctica es excluir del experimento a los usuarios logueados con roles administrativos, y decidir conscientemente si los clientes logueados entran o quedan fuera, documentando la elección.

La cuenta que define qué puedes testear

Aquí está la parte que resuelve la objeción más común de quien tiene tienda: “mi tienda es demasiado pequeña para testear”. Casi siempre la frase está equivocada, y lo que está mal es la etapa elegida para medir.

Considera una tienda con 6.000 visitas por semana y una tasa de conversión general del 1,8% (visita a pedido). Para detectar una ganancia relativa del 20% con 95% de confianza y 80% de poder, la muestra necesaria es de 23.507 visitas por variación, lo que lleva 55 días.

Calculadora de tamaño de muestra
-Visitantes por variación
-Total (2 variaciones)
-Duración estimada

Cálculo por aproximación normal de dos proporciones, 2 variaciones (50/50). Cambia los campos y mira el impacto en vivo.

Configura la calculadora de arriba con tasa base 1,8, efecto mínimo detectable 20 (relativo) y 6.000 visitantes por semana para reproducir ese número. Casi dos meses es un plazo que la mayoría de las tiendas no va a aceptar, y ahí es donde el equipo o abandona o, peor, corta el test por la mitad.

Ahora cambia la etapa que mides. La misma tienda recibe 1.200 inicios de checkout por semana, y el 45% de ellos se convierten en pedidos. Testear un cambio dentro del checkout, midiendo la tasa de finalización desde el inicio del checkout, con una ganancia relativa del 10%, exige solo 1.931 visitantes por variación, lo que lleva 23 días.

Calculadora de duración de test A/B
-Duración estimada
Visitantes en total-
Término previsto-

Aproximación normal de dos proporciones, división igual entre las variaciones. La fecha usa tu zona horaria y recalcula en vivo.

Diseño Tasa base Volumen que lo alimenta Muestra por variación Duración
Tienda entera, visita a pedido, ganancia del 20% 1,8% 6.000 visitas/semana 23.507 55 días
Etapa de checkout, inicio a pedido, ganancia del 10% 45% 1.200 inicios/semana 1.931 23 días

La diferencia no es magia estadística, viene de dos cosas a la vez: las tasas base altas necesitan muestras mucho menores para la misma ganancia relativa, y el embudo filtra a las personas que ya mostraron intención. Testear dentro del checkout es el camino de menor coste de muestra en casi toda tienda pequeña y mediana.

El contrapeso honesto: medir la etapa no es lo mismo que medir el negocio. Un cambio que mejora la finalización del checkout puede, por ejemplo, subir la tasa y bajar el ticket medio si empuja a los clientes a terminar más rápido. Por eso el ingreso por visitante es siempre un guardrail, incluso cuando la métrica primaria es la etapa.

Un ejemplo trabajado que puedes reproducir

Supón que ese test de checkout corrió hasta los 1.931 visitantes por variación completos. El checkout clásico (control) cerró 869 pedidos, una tasa de finalización del 45,00%. La variación con menos campos cerró 949 pedidos, 49,15%.

Pasando esos cuatro números por el mismo motor de significancia que usa este blog: z = 2,579, valor p de alrededor de 0,0099, con un intervalo de confianza del 95% para la diferencia entre +1,00 y +7,29 puntos porcentuales, y una mejora relativa observada del +9,2%. El intervalo no cruza el cero, así que la ganancia es real.

Resultado de finalización del checkout en el ejemplo trabajado de WooCommerceEl checkout de control finalizó 869 de 1931 inicios de checkout, 45,00 por ciento. La variación finalizó 949 de 1931, 49,15 por ciento. La diferencia de 4,14 puntos porcentuales tiene un intervalo de confianza del 95 por ciento entre 1,00 y 7,29 puntos, que no cruza el cero, con un valor p de alrededor de 0,0099.Tasa de finalización del checkout, por variaciónControl45,00% · 869 / 1.931Menos campos49,15% · 949 / 1.931Diferencia, intervalo del 95%cero+1,00 pt+7,29 ptp ≈ 0,0099
La ganancia es estadísticamente real, y el intervalo es ancho: el efecto verdadero puede ser tan chico como 1 punto porcentual. Usa el límite inferior para cualquier proyección de ingresos, y la estimación puntual solo para priorizar el próximo test.

Ese ancho es la lectura honesta de una muestra pequeña. Un test de 1.931 por variación responde “¿ayudó?” con confianza y responde “¿cuánto?” solo dentro de una banda ancha. Si tu decisión depende del tamaño de la ganancia y no solo de su signo, la guía de significancia estadística explica cómo leer el intervalo en lugar de la estimación puntual.

Qué métrica usar en cada etapa de la tienda

Dónde vive el cambio Métrica primaria Guardrails
Home y páginas de categoría Tasa de visita a la página de producto Ingreso por visitante, tasa de salida
Página de producto Tasa de agregado al carrito Ingreso por visitante, tasa de devolución cuando esté disponible
Carrito Tasa de inicio de checkout Ticket medio, ingreso por visitante
Checkout Tasa de finalización desde el inicio Ingreso por visitante, tasa de error de pago
Precio, envío y promociones Ingreso por visitante Margen, ticket medio, tasa de conversión

La regla detrás de la tabla: cuanto más cerca está la métrica primaria del cambio, más rápido cierra el test, y cuanto más lejos está del dinero, más imprescindible se vuelve el guardrail. La página de producto y el carrito reciben tratamiento detallado en la guía de test A/B de página de producto y en la guía de carrito abandonado.

Paso a paso para tu primer test

  1. Elige la etapa con la mayor pérdida absoluta. Suma cuánta gente se va en cada paso del embudo y ataca el paso que pierde más personas, no el que se ve más feo.
  2. Escribe la hipótesis antes de abrir la herramienta. Qué cambia, por qué, cuál es la métrica primaria, qué efecto mínimo justificaría implementarlo.
  3. Dimensiona antes de correr. Calcula muestra y duración con el tráfico real de esa etapa. Si la respuesta es más larga que tu ventana aceptable, cambia la ambición o la etapa, nunca el rigor.
  4. Instala la etiqueta y comprueba la división real. En el día uno, confirma que la distribución coincide con lo que configuraste. Comprueba también en móvil, y sin sesión iniciada, en una ventana privada.
  5. Déjalo correr en semanas completas. Las tiendas tienen una estacionalidad fuerte por día de la semana. Terminar a mitad de semana compara lunes contra sábado.
  6. Lee primero el intervalo de confianza. Una estimación puntual aislada se convierte en una promesa que el dato no puede cumplir.
  7. Implementa a la ganadora como corresponde, en el tema o en el plugin. Una variación servida por snippet es temporal; la ganancia permanente solo existe cuando pasa a ser código de la tienda.

Errores comunes de test A/B en WooCommerce

Error Señal de alerta Arreglo
Ignorar la caché en un test server-side División de tráfico lejos de lo configurado Variar la clave de caché por variación, o ir a client-side
Escribir el selector para el checkout equivocado Empate perfecto y una variación que nunca aparece Comprobar antes si la tienda usa bloques o el shortcode clásico
Incluir administradores logueados Pocas sesiones con comportamiento muy atípico Excluir roles administrativos y documentar la decisión sobre clientes logueados
Medir solo la conversión de toda la tienda en una tienda chica Tests que corren meses y se abandonan por la mitad Medir la etapa, con ingreso por visitante como guardrail
Terminar a mitad de semana Un resultado que cambia de signo según el día de lectura Correr en bloques semanales completos
Testear durante una gran promoción Comportamiento de compra completamente distinto Evitar periodos atípicos o tratarlos como un test aparte
Correr tres tests en el mismo embudo a la vez Resultados que no suman al implementarlos Un test por etapa, o un diseño factorial declarado de antemano
Dejar la variación ganadora en el snippet para siempre La ganancia depende de que la herramienta siga cargando Implementarla en el tema o el plugin y quitar el test

Haz esto automático con Donnu

La parte difícil de testear en una tienda WooCommerce casi nunca es la idea, es la operación alrededor: confirmar que la división de tráfico salió bien y leer el resultado sin convertir una estimación imprecisa en una promesa de ingresos. Donnu cubre exactamente ese tramo: pegas un snippet que no bloquea la carga de la tienda, defines la métrica, y Donnu sigue la división real de tráfico, te avisa cuando se desvía de lo configurado, y devuelve el veredicto con el intervalo de confianza del 95% por delante, sin declarar ganadora antes de que la variación acumule al menos 200 visitantes y 7 días en el aire.

Empieza una prueba gratis de 14 días y corre tu primer test en el paso que pierde más personas. Para el panorama completo, mira el playbook de optimización de checkout y la lista de herramientas de test A/B para WordPress.

Referencias

Lee también:

Preguntas frecuentes

¿WooCommerce trae test A/B integrado?
No. WooCommerce es un plugin de ecommerce para WordPress y no incluye ningún motor de experimentación, así que el test siempre viene de fuera: un snippet client-side que intercambia contenido en el navegador, o una implementación server-side en PHP que asigna la variación antes de construir la página. Cada camino tiene su propia trampa en una instalación WordPress, y la mayor de lejos es la caché de página.
¿Por qué la caché de página rompe los tests A/B en WooCommerce?
Porque la mayoría de las tiendas WordPress sirven HTML pregenerado desde un plugin de caché o una CDN, así que un test server-side que elige la variación en PHP puede tener esa respuesta congelada y entregada a todo el mundo. El síntoma clásico es una división de tráfico muy lejos del 50/50 que configuraste. Los tests client-side no sufren esto, porque el HTML es idéntico para todos y el intercambio ocurre después, en el navegador.
¿Puedo testear la página de checkout de WooCommerce?
Sí, pero el objetivo del selector depende de qué checkout corre tu tienda. Según la documentación de WooCommerce, las tiendas creadas desde la versión 8.3 en adelante, publicada en noviembre de 2023, traen los bloques de Carrito y Checkout como experiencia por defecto, mientras que las tiendas más antiguas normalmente siguen con el checkout clásico por shortcode. Los dos producen HTML distinto, así que un selector escrito para uno simplemente no encuentra nada en el otro.
Mi tienda tiene poco tráfico. ¿Igual puedo testear?
Depende de qué etapa elijas medir. La conversión de toda la tienda tiene una tasa base baja y necesita una muestra grande: en el ejemplo trabajado de más abajo, detectar una ganancia relativa del 20% sobre una base del 1,8% lleva 55 días con 6.000 visitas por semana. Testear dentro del checkout, donde la tasa base es mucho más alta, cierra en 23 días con solo 1.200 inicios de checkout por semana. Cambiar la etapa que mides cambia la viabilidad sin renunciar a nada de rigor.
¿Qué métrica debería usar una tienda WooCommerce en un test?
La métrica primaria tiene que estar lo más cerca posible de lo que la mudanza realmente altera, y el ingreso por visitante siempre debe estar entre los guardrails. Un cambio en la página de producto pide tasa de agregado al carrito como primaria; un cambio en el checkout pide tasa de finalización de pedido desde el inicio del checkout. En ninguno de los dos casos se puede dejar fuera el ingreso por visitante, porque es la métrica que expone una ganancia de volumen comprada con un ticket menor.
¿Necesito un plugin para correr tests A/B en WooCommerce?
No necesariamente. Las herramientas basadas en snippet funcionan pegando una etiqueta en el header del sitio, lo que se puede hacer con un plugin de inserción de código, con el tema o con tu gestor de etiquetas. Un plugin dedicado facilita la instalación pero suma un elemento más al conjunto de plugins de la tienda, y el conflicto entre plugins es una de las causas más comunes de comportamiento extraño en una instalación WordPress.