9 min de lecturamétricas ecommerceanalítica ecommerceWooCommercecatálogo

Las 6 métricas de una tienda que sí mueven dinero

Medido hoy en una tienda WooCommerce real de 5.621 productos: 255 se llevan la mitad de los clics. El 4,5 % del catálogo. Y 4.163 productos no recibieron ni uno en 31 días. Aquí están las seis métricas que cambian decisiones de verdad —concentración, catálogo muerto, demanda sin stock— con el SQL para sacar cada una de tu propia base de datos hoy.

Casi toda la analítica de una tienda mide lo mismo: visitas, sesiones, tasa de rebote, tiempo en página. Números que suben y bajan y con los que, honestamente, no se decide nada. Nadie ha repuesto nunca un producto porque el tiempo medio de sesión bajara doce segundos.

Estas son seis métricas distintas. Las seis se pueden sacar hoy de tu propia base de datos, con SQL, sin instalar nada. Y las seis terminan en una decisión concreta: qué repones, qué dejas de comprar, a quién le escribes.

Empiezo por la que más me sorprendió al medirla.

La medición

Todo lo que viene de una tienda real: una tienda WooCommerce de coleccionismo, del 18 de agosto al 17 de septiembre de 2026 (31 días), medido hoy.

Productos en el catálogo 5.621
Productos en stock 1.644 (29,2 %)
Búsquedas 50.627
Sesiones que buscaron 11.380
Clics en resultados 17.261

1. Concentración: cuántos productos se llevan la mitad de tu demanda

La respuesta en esta tienda: 255. De 5.621 productos, 255 acumulan la mitad de los 17.261 clics. El 4,5 % del catálogo. Con 663 productos llegas al 80 %.

Y al otro lado: 4.163 productos no recibieron ni un solo clic en 31 días.

Ese último número hay que matizarlo, porque el matiz es la mitad de la historia: de los 5.621 productos, solo 1.644 están en stock, y el buscador de esta tienda no enseña lo agotado. Así que gran parte de ese catálogo no es que no interese —es que no existe de cara al cliente. Contado solo sobre lo que sí está a la venta, 1.423 de 1.644 productos (el 86,6 %) recibieron al menos un clic, y los 255 de la mitad de la demanda son el 15,5 % de lo disponible.

Las dos lecturas importan, y son distintas:

  • Sobre el catálogo entero, te dice cuánto peso muerto arrastras. 3.977 fichas agotadas que ocupan sitio en tu base de datos, en tu sitemap y en tu cabeza.
  • Sobre lo que está en stock, te dice dónde está tu dinero de verdad. Un sexto de tu inventario disponible se lleva la mitad de la atención.

La decisión que sale de aquí es de compras: esos 255 no se agotan nunca, y el resto se revisa antes de reponer.

Para sacarlo de tus ventas (no de tus clics), WooCommerce ya guarda lo que necesitas en sus tablas de Analytics:

-- Cuántos productos acumulan la mitad de tus ventas, últimos 90 días
WITH ventas AS (
  SELECT product_id, SUM(product_net_revenue) AS ingreso
  FROM wp_wc_order_product_lookup
  WHERE date_created >= DATE_SUB(NOW(), INTERVAL 90 DAY)
  GROUP BY product_id
),
ordenado AS (
  SELECT product_id, ingreso,
         SUM(ingreso) OVER (ORDER BY ingreso DESC) AS acumulado,
         SUM(ingreso) OVER () AS total,
         ROW_NUMBER()  OVER (ORDER BY ingreso DESC) AS puesto
  FROM ventas
)
SELECT MIN(puesto) AS productos_que_hacen_la_mitad
FROM ordenado
WHERE acumulado >= total * 0.5;

(wp_wc_order_product_lookup es una tabla de WooCommerce Analytics; existe desde WooCommerce 4.0. Cambia wp_ por tu prefijo. Si usas MySQL 5.7, las funciones de ventana no existen: hay una versión sin ellas al final del artículo.)

2. Catálogo muerto: lo que no ha vendido ni una unidad

La versión dura de la métrica anterior. No «vende poco»: cero.

-- Productos publicados que no han vendido ni una unidad en 180 días
SELECT p.ID, p.post_title
FROM wp_posts p
LEFT JOIN wp_wc_order_product_lookup l
  ON l.product_id = p.ID
 AND l.date_created >= DATE_SUB(NOW(), INTERVAL 180 DAY)
WHERE p.post_type = 'product'
  AND p.post_status = 'publish'
  AND l.product_id IS NULL
ORDER BY p.post_date ASC;

Ordenado por antigüedad, porque un producto de la semana pasada sin ventas no dice nada y uno de hace dos años sí.

Esa lista tiene tres tipos de producto dentro, y conviene separarlos antes de tomar ninguna decisión: el que nadie quiere, el que sí quieren pero no se encuentra porque se llama distinto a como lo buscan, y el que ni siquiera llega a mostrarse. Los dos últimos no son un problema de catálogo, son un problema de buscador, y se arreglan sin tocar el inventario. Es la diferencia entre liquidar stock bueno y arreglar una búsqueda.

3. Demanda sin stock: lo que te piden y no tienes

Esta es la que no sale en ningún panel, y es la que más dinero mueve de las seis.

En esta tienda, en 31 días, 35 productos agotados recibieron 356 clics. Gente que buscó algo, lo vio, entró en la ficha y se encontró un «sin stock». El más pedido, una figura de 80 €, tuvo 54 personas haciendo exactamente ese recorrido.

54 personas interesadas en un producto concreto de 80 € es una decisión de compra, no un informe. Y no aparece en ningún sitio: en tus ventas no está (no se vendió), en tus visitas está diluido entre otras 11.380 sesiones.

Hay dos formas de perder esta demanda, y las dos son caras:

  1. Enseñar el producto agotado. Al menos te enteras, si lo mides. Y puedes poner un aviso de «te avisamos cuando llegue», que convierte ese clic en un correo.
  2. Esconder lo agotado. Más limpio de cara al cliente, pero entonces la búsqueda devuelve cero resultados y no queda ni rastro de que alguien lo pidió. Si tu buscador oculta el stock agotado, necesitas su registro de búsquedas sin resultados, o esa demanda es invisible.

Para medirlo necesitas el registro de tus búsquedas con el número de resultados de cada una. Si no lo tienes, en el artículo sobre Google Analytics está el mu-plugin de 30 líneas que lo guarda, sin cookies y sin datos personales. Con esa tabla, la consulta es:

-- Lo más buscado que acaba en cero resultados, últimos 30 días
SELECT termino, COUNT(*) AS veces
FROM wp_wr_busquedas
WHERE resultados = 0
  AND creado >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 30 DAY)
GROUP BY termino
ORDER BY veces DESC
LIMIT 50;

4. Sesiones que buscan y no hacen clic en nada

De las 11.380 sesiones que buscaron algo, 6.072 no hicieron clic en ningún resultado. El 53,4 %.

Más de la mitad de la gente que te dijo con sus palabras qué quería se fue sin abrir nada de lo que le enseñaste.

Este número es un diagnóstico, no un veredicto. Sube por tres motivos distintos, y hay que saber cuál es el tuyo:

  • No estaba lo que buscaban. Se arregla comprando o avisando.
  • Estaba, pero no lo reconocieron en los resultados: mal título, sin foto, o enterrado en el puesto 15.
  • Buscaron a medias. Escribieron dos letras, vieron la lista y siguieron navegando. Esto infla el número y no es un problema.

Para separarlos, mira la métrica junto a la siguiente: si la gente busca cuatro veces por sesión y no pulsa nada, no es que estuviera curioseando.

En esta tienda la media fue de 4,4 búsquedas por sesión, y 3.286 sesiones (el 28,9 %) buscaron una sola vez. El resto insistió.

5. Ticket medio, pero mirando la forma y no la media

El ticket medio a secas engaña, porque una tienda con muchos pedidos de 20 € y unos pocos de 400 € da la misma media que una tienda donde todo el mundo gasta 60 €, y no son el mismo negocio ni se gestionan igual.

Saca la media y los tramos:

-- Ticket medio y reparto por tramos, últimos 90 días
SELECT
  COUNT(*)                     AS pedidos,
  ROUND(AVG(total_sales), 2)   AS ticket_medio,
  SUM(total_sales < 25)        AS menos_de_25,
  SUM(total_sales >= 25  AND total_sales < 60)  AS de_25_a_60,
  SUM(total_sales >= 60  AND total_sales < 150) AS de_60_a_150,
  SUM(total_sales >= 150)      AS mas_de_150
FROM wp_wc_order_stats
WHERE status IN ('wc-completed', 'wc-processing')
  AND date_created >= DATE_SUB(NOW(), INTERVAL 90 DAY);

Si el tramo de arriba es pequeño en número de pedidos pero grande en facturación, ahí tienes tu cliente real, y probablemente no es a quien le estás hablando en la home.

6. Clientes que repiten

La última, y la que más barata sale de mover. Un cliente que ya te compró no necesita que le pagues otra vez la publicidad.

-- Qué parte de tus clientes ha comprado más de una vez (últimos 12 meses)
SELECT
  COUNT(*)                                       AS clientes,
  SUM(pedidos > 1)                               AS repiten,
  ROUND(100 * SUM(pedidos > 1) / COUNT(*), 1)    AS pct_repiten,
  ROUND(AVG(gastado), 2)                         AS gasto_medio_por_cliente
FROM (
  SELECT customer_id, COUNT(*) AS pedidos, SUM(total_sales) AS gastado
  FROM wp_wc_order_stats
  WHERE status IN ('wc-completed', 'wc-processing')
    AND date_created >= DATE_SUB(NOW(), INTERVAL 12 MONTH)
    AND customer_id > 0
  GROUP BY customer_id
) AS c;

Si el porcentaje que repite es bajo, la métrica 3 es tu siguiente parada: la demanda sin stock es el motivo más tonto y más común por el que alguien no vuelve. Vino, no estaba, no volvió.

Si tu MySQL es viejo

Las funciones de ventana (SUM() OVER (...)) necesitan MySQL 8.0 o MariaDB 10.2. Si tu hosting va por detrás, la métrica 1 se saca en dos pasos:

-- Paso 1: el total
SELECT SUM(product_net_revenue) AS total
FROM wp_wc_order_product_lookup
WHERE date_created >= DATE_SUB(NOW(), INTERVAL 90 DAY);

-- Paso 2: los productos de más a menos, y cuentas a mano hasta llegar a la mitad del total
SELECT product_id, SUM(product_net_revenue) AS ingreso
FROM wp_wc_order_product_lookup
WHERE date_created >= DATE_SUB(NOW(), INTERVAL 90 DAY)
GROUP BY product_id
ORDER BY ingreso DESC
LIMIT 300;

Por orden, lo que yo haría:

  1. Saca la métrica 1 hoy. Tarda un minuto y te dice cuántos productos sostienen de verdad tu tienda. Casi siempre son muchos menos de los que crees.
  2. Cruza la lista de catálogo muerto (métrica 2) con tus búsquedas. Lo que no vende pero sí se busca no es un producto malo: es un producto que no se encuentra.
  3. Monta el registro de búsquedas si no lo tienes. Sin él, las métricas 3 y 4 no existen, y son las dos que más dinero mueven.
  4. Pon un aviso de reposición en las fichas agotadas que más se piden. 54 clics en un producto de 80 € son 54 correos que podrías tener.

Las cuatro métricas de arriba miden lo que la gente te pide. Dos de ellas se apoyan en el buscador, porque es el único sitio de una tienda donde el cliente escribe con sus propias palabras lo que quiere. Si quieres ver por qué, está la guía de cómo elegir un buscador para ecommerce, con los precios de cada opción comprobados. Y los números de este artículo salen de WildRock, que registra cada búsqueda, qué se mostró y qué se pulsó.

¿Tu tienda pierde ventas por búsquedas que no encuentran nada?

WildRock añade a tu WooCommerce un buscador que entiende lo que tus clientes quieren decir, y te dice en euros cuánto te está generando. Plugin gratuito, sin tocar código.