Umami Analytics: Guía Completa de Analíticas Auto-Alojadas (2026)
Umami es una plataforma de analíticas web open-source enfocada en la privacidad que proporciona una alternativa limpia a Google Analytics. Con un script de seguimiento de menos de 2KB, cumplimiento GDPR de serie y propiedad total de los datos, Umami se ha convertido en la opción preferida para desarrolladores que quieren insights sin la complejidad o preocupaciones de privacidad de las analíticas tradicionales.
¿Por Qué Umami en Lugar de Google Analytics?
Google Analytics 4 (GA4) es potente pero viene con compromisos significativos que hacen que muchos desarrolladores busquen alternativas:
| Factor | Google Analytics 4 | Umami |
|---|---|---|
| Privacidad | Recopila PII, requiere banners de consentimiento | Sin cookies, sin PII, compatible con GDPR por defecto |
| Tamaño del script | ~45KB | ~2KB |
| Curva de aprendizaje | Pronunciada (rediseñado completamente desde UA) | Mínima, panel intuitivo |
| Propiedad de datos | Servidores de Google, sus términos | Tu servidor, tus datos |
| Coste | Gratis pero tú eres el producto | Gratis (auto-alojado) o $9/mes (cloud) |
| Bloqueadores de anuncios | Bloqueado por la mayoría | Funciona con dominio auto-alojado |
Cuándo Elegir Umami
- Quieres simplicidad: Páginas vistas, referentes, dispositivos—lo esencial sin ahogarte en datos
- La privacidad importa: Sin banners de cookies, sin complejidad de gestión de consentimiento
- El rendimiento importa: Script de 2KB vs 45KB tiene impacto real en Core Web Vitals
- Quieres propiedad de datos: Auto-aloja y mantén todo bajo tu control
- Sitios enfocados a desarrolladores: Las audiencias técnicas suelen bloquear GA de todos modos
Cuándo GA4 Podría Ser Mejor
- Se requiere integración profunda con Google Ads
- Necesitas modelado de atribución avanzado
- El soporte empresarial es un requisito
- Ya estás muy invertido en el ecosistema de Google
Características de Umami v3
Umami v3 (lanzado en noviembre de 2025) trajo mejoras significativas:
Analíticas Básicas
Métricas del panel:
├── Visitantes (únicos)
├── Páginas vistas (total)
├── Tasa de rebote
├── Duración de sesión (promedio)
├── Páginas por sesión
└── Visitantes en tiempo real
Fuentes de tráfico:
├── Referentes
├── Parámetros UTM (fuente, medio, campaña)
├── Tráfico directo
└── Plataformas sociales
Desglose técnico:
├── Navegadores
├── Sistemas operativos
├── Dispositivos (escritorio/móvil/tablet)
├── Tamaños de pantalla
└── Países/regiones
Seguimiento de Eventos
Rastrea interacciones personalizadas más allá de las páginas vistas:
<!-- Usando atributos data (sin JavaScript requerido) -->
<button data-umami-event="signup-click">Registrarse</button>
<button data-umami-event="download" data-umami-event-file="whitepaper.pdf">
Descargar PDF
</button>
<!-- Usando JavaScript para eventos dinámicos -->
<script>
// Rastrear cuando el usuario completa la compra
function completeCheckout(orderId, total) {
umami.track('checkout-complete', {
orderId: orderId,
total: total,
currency: 'USD'
});
}
// Rastrear profundidad de scroll
let maxScroll = 0;
window.addEventListener('scroll', () => {
const scrollPercent = Math.round(
(window.scrollY / (document.body.scrollHeight - window.innerHeight)) * 100
);
if (scrollPercent > maxScroll && scrollPercent % 25 === 0) {
maxScroll = scrollPercent;
umami.track('scroll-depth', { depth: scrollPercent });
}
});
</script>
Embudos (v3)
Rastrea rutas de conversión a través de tu sitio:
Ejemplo de embudo: Checkout de e-commerce
Paso 1: /products (productos vistos)
↓ 65% continúan
Paso 2: /cart (añadido al carrito)
↓ 48% continúan
Paso 3: /checkout (checkout iniciado)
↓ 72% continúan
Paso 4: /confirmation (compra completada)
Conversión total: 22.5%
Mayor abandono: Carrito → Checkout (investigar fricción)
Auto-Alojamiento con Docker
La forma más fácil de desplegar Umami es con Docker Compose.
Requisitos
- Servidor con Docker y Docker Compose
- PostgreSQL 12+ (v3 eliminó soporte para MySQL)
- Dominio con SSL (usa Caddy, nginx, o túnel de Cloudflare)
Configuración de Docker Compose
# docker-compose.yml
version: '3'
services:
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://umami:${POSTGRES_PASSWORD}@db:5432/umami
DATABASE_TYPE: postgresql
APP_SECRET: ${APP_SECRET}
depends_on:
db:
condition: service_healthy
restart: unless-stopped
db:
image: postgres:15-alpine
environment:
POSTGRES_DB: umami
POSTGRES_USER: umami
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- umami-db:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U umami"]
interval: 5s
timeout: 5s
retries: 5
restart: unless-stopped
volumes:
umami-db:
Pasos de Despliegue
# 1. Crear directorio y archivos
mkdir umami && cd umami
# Crear docker-compose.yml y .env como se muestra arriba
# 2. Generar app secret
echo "APP_SECRET=$(openssl rand -base64 32)" >> .env
# 3. Iniciar servicios
docker compose up -d
# 4. Verificar logs
docker compose logs -f umami
# 5. Acceder en http://localhost:3000
# Login por defecto: admin / umami
# ¡CAMBIA ESTO INMEDIATAMENTE!
Añadir Seguimiento a Tu Sitio
Instalación Básica
<!-- Añadir antes de cerrar </head> -->
<script
defer
src="https://analytics.tudominio.com/script.js"
data-website-id="tu-website-id"
></script>
Integración con Next.js
// app/layout.tsx (App Router)
import Script from 'next/script';
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="es">
<head>
<Script
src="https://analytics.tudominio.com/script.js"
data-website-id="tu-website-id"
strategy="afterInteractive"
/>
</head>
<body>{children}</body>
</html>
);
}
API REST de Umami
Umami proporciona una API REST para acceso programático a tus datos de analíticas.
Autenticación
// Obtener token de autenticación
async function getUmamiToken(username: string, password: string): Promise<string> {
const response = await fetch('https://analytics.tudominio.com/api/auth/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
});
const { token } = await response.json();
return token;
}
Evitar Bloqueadores de Anuncios
Al auto-alojar, puedes configurar Umami para evitar bloqueadores de anuncios que apuntan a scripts de analíticas.
Estrategia 1: Ruta de Script Personalizada
# configuración nginx
location /stats/script.js {
proxy_pass http://localhost:3000/script.js;
proxy_set_header Host $host;
}
Migración desde Google Analytics
Cambiar de GA4 a Umami es sencillo ya que son aditivos—puedes ejecutar ambos durante la transición.
Pasos de Migración
- Despliega Umami junto a GA4 existente
- Ejecuta seguimiento paralelo durante 2-4 semanas para comparar datos
- Configura seguimiento de eventos para coincidir con tus eventos de GA4
- Crea paneles que repliquen tus informes clave de GA4
- Elimina GA4 una vez confiado en los datos de Umami
Lo Que Perderás
- Datos históricos de GA (exporta antes de eliminar)
- Integración con Google Ads
- Modelos de atribución avanzados
- Métricas predictivas
Lo Que Ganarás
- Sitio más rápido (script más pequeño)
- Sin necesidad de banners de consentimiento
- Propiedad total de los datos
- Interfaz más limpia y simple
- Datos más precisos (menos bloqueo)
Umami proporciona las analíticas esenciales que la mayoría de sitios realmente necesitan sin la complejidad y preocupaciones de privacidad de las soluciones empresariales. Para desarrolladores y propietarios de sitios conscientes de la privacidad, suele ser la elección correcta.