Análisis de cohortes de usuarios orgánicos con BigQuery
Qué es un análisis de cohortes
Un análisis de cohortes agrupa usuarios por la fecha en que realizaron una acción (generalmente su primera visita) y rastrea su comportamiento en periodos posteriores. La pregunta que responde es: de los usuarios que llegaron en la semana X, cuántos volvieron en la semana X+1, X+2, X+3, etc.
Para SEO, este análisis es revelador: muestra si el tráfico orgánico genera usuarios que regresan al sitio o si son visitas únicas sin retorno. Un sitio con buena retención orgánica tiene contenido que fideliza; un sitio con retención cero tiene contenido que resuelve una necesidad puntual y no genera vínculo.
Por qué GA4 no es suficiente para esto
GA4 tiene un informe de cohortes básico, pero con limitaciones significativas: no permite filtrar por canal de adquisición (no se puede ver solo cohortes de tráfico orgánico), los periodos son fijos, y la granularidad es limitada. Con BigQuery, se puede construir una tabla de cohortes completamente personalizada.
La estructura de la query
La query de cohortes orgánicas semanales del catálogo usa dos CTEs:
WITH primera_visita AS (
-- Semana de adquisición de cada usuario orgánico
SELECT user_pseudo_id,
DATE_TRUNC(MIN(PARSE_DATE('%Y%m%d', event_date)), WEEK) AS semana_adquisicion
FROM eventos_ga4
WHERE traffic_source.medium = 'organic' AND event_name = 'first_visit'
GROUP BY user_pseudo_id
),
actividad AS (
-- Semanas de actividad de cada usuario
SELECT user_pseudo_id,
DATE_TRUNC(PARSE_DATE('%Y%m%d', event_date), WEEK) AS semana_actividad
FROM eventos_ga4
WHERE traffic_source.medium = 'organic'
GROUP BY user_pseudo_id, semana_actividad
)
SELECT
pv.semana_adquisicion,
DATE_DIFF(a.semana_actividad, pv.semana_adquisicion, WEEK) AS semana_n,
COUNT(DISTINCT a.user_pseudo_id) AS usuarios_activos
FROM primera_visita pv
JOIN actividad a ON pv.user_pseudo_id = a.user_pseudo_id
WHERE a.semana_actividad >= pv.semana_adquisicion
GROUP BY pv.semana_adquisicion, semana_n
ORDER BY pv.semana_adquisicion, semana_n
Lectura de la tabla de retención
El resultado es una tabla con tres columnas: semana de adquisición, número de semana posterior (0, 1, 2, 3…) y cantidad de usuarios activos. Para interpretar los datos, se calcula la tasa de retención dividiendo los usuarios de cada semana N entre los usuarios de la semana 0:
- Semana 0: siempre 100% (todos los usuarios de la cohorte estuvieron activos en su semana de adquisición).
- Semana 1: el porcentaje de usuarios que volvieron una semana después. Para tráfico orgánico típico, un 15-25% es razonable.
- Semana 4: usuarios que siguen activos un mes después. Un 5-10% es bueno para contenido informacional.
La curva de retención suele caer bruscamente después de la semana 1 y estabilizarse a partir de la semana 3-4. Los usuarios que permanecen después del primer mes son los que el contenido ha fidelizado efectivamente.
Para visualizar estos datos de forma clara, conviene transformar la tabla en un formato de matriz de retención (heatmap). En Looker Studio, se puede crear un gráfico de tabla con colores condicionales donde las celdas se oscurecen a medida que la retención disminuye. Este formato visual permite identificar patrones de un vistazo: cohortes con retención anormalmente alta o baja se destacan inmediatamente en la matriz de colores.
Qué indica cada patrón
Retención alta (> 20% en semana 4)
El contenido genera valor recurrente. Típico de herramientas online, plataformas SaaS con contenido educativo, o blogs con series de contenido progresivo. Señal de que la estrategia de contenido funciona para engagement a largo plazo.
Retención baja (< 5% en semana 2)
El contenido resuelve necesidades puntuales. Típico de sitios de respuestas rápidas, tutoriales de un solo uso, o contenido muy específico. No es necesariamente malo: depende del modelo de negocio. Pero si el objetivo es fidelización, hay trabajo por hacer.
Retención variable entre cohortes
Si ciertas cohortes retienen mejor que otras, conviene investigar qué cambió: se publicó contenido nuevo, se hizo un cambio técnico, o hubo un evento externo que atrajo un tipo de audiencia diferente.
Aplicaciones prácticas
- Evaluar estrategia de contenido: comparar la retención de cohortes antes y después de un cambio de estrategia editorial.
- Medir el impacto de mejoras técnicas: una mejora de velocidad de carga debería mejorar la retención en cohortes posteriores.
- Segmentar por tipo de landing page: modificar la query para agrupar cohortes por la landing page de entrada (blog, herramientas, guías) y ver qué tipo de contenido retiene mejor.
- Justificar inversión en SEO: la retención demuestra que el tráfico orgánico genera usuarios recurrentes, no solo visitas vacías. Es un argumento potente para presupuestos de SEO.
Para ejecutar este análisis, se necesitan al menos 8-12 semanas de datos en BigQuery. La exportación de GA4 a BigQuery debe estar activa con suficiente anticipación para acumular los datos históricos necesarios.
También es posible enriquecer el análisis de cohortes con datos de conversión. En lugar de medir solo si el usuario regresó, se puede medir si convirtió en visitas posteriores. Este enfoque responde una pregunta aún más precisa: el tráfico orgánico no solo genera usuarios recurrentes, sino que esos usuarios recurrentes eventualmente convierten. Este dato es especialmente valioso para modelos de negocio donde la conversión no ocurre en la primera visita, como SaaS con periodos de evaluación o ecommerce con ciclos de compra largos.
¿Quieres practicar? Explora el catálogo de queries
Ver catálogo