Por qué autoalojar tu analytics web
Beneficios del analytics autoalojado
- Cumplimiento RGPD nativo: ninguna transferencia a terceros, sin banner de consentimiento si no se usa cookie
- Datos 100% bajo tu control: exportación CSV/SQL en cualquier momento, retención ilimitada
- Coste fijo: un VPS de 6 €/mes soporta millones de páginas vistas
- Script ligero (< 2 KB): impacto mínimo en Core Web Vitals
- Sin muestreo: todas las páginas vistas se cuentan, incluso en volúmenes elevados
- Código abierto: auditoría posible, sin dependencia de un proveedor
Plausible vs Umami: comparativa de criterios clave
Desplace la tabla
| Criterio | Plausible 3.2 | Umami 3.4 |
|---|---|---|
| Lenguaje / stack | Elixir + ClickHouse | Node.js + PostgreSQL |
| Base de datos | ClickHouse (columnar) | PostgreSQL únicamente (MySQL eliminado en v3) |
| Interfaz | Muy minimalista, página única | Multi-sitio, paneles configurables |
| Embudos | Sí, multi-paso con ingresos | Sí, vía informes personalizados |
| Eventos personalizados | Sí, con API de props | Sí, con API de props + TypeScript SDK |
| Mapas de calor / Grabación de sesión | No | Sí (v3.4, 2026) |
| Segmentación avanzada | Filtros combinados | Segmentos de sesión, filtros de propiedades |
| RAM mínima recomendada | 2 GB (ClickHouse) | 512 MB |
| Licencia | AGPL-3.0 | MIT |
Requisitos previos según la herramienta
Plausible requiere ClickHouse, una base de datos columnar para series temporales. ClickHouse es potente pero consume mucha RAM: prevé al menos 2 GB, idealmente 4 GB. Umami funciona con PostgreSQL, mucho más ligero: 512 MB bastan para tráfico moderado. Si tu VPS ya aloja PostgreSQL para otra app, Umami se integra sin recursos extra. A partir de Umami v3, MySQL ya no está soportado; planifica la exportación y reimportación en PostgreSQL si migras.
Desplegar Plausible (o Umami) en un VPS
Clonar los ficheros Docker Compose
git clone https://github.com/plausible/hosting plausible-hostingy configurar el fichero.envcon tu dominio y credenciales de correoInicializar la base de datos
docker compose up -d db clickhouseseguido dedocker compose run --rm plausible sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate"Levantar el stack completo
docker compose up -dy verificar los logs condocker compose logs plausibleConfigurar nginx como reverse proxy
Añade un vhost nginx que enrute
analytics.tudominio.comhacialocalhost:8000y obtén el certificado TLS con Let's EncryptIncrustar el script de seguimiento
Copia la etiqueta
<script>desde el panel de control e insértala en el<head>de tu sitio — sin cookies
Bloquea bots a nivel nginx para mantener tus estadísticas limpias sin configuración adicional en el lado del analytics.
Árbol de decisión: ¿Plausible o Umami?
Elige Plausible si…
- Quieres una interfaz que cualquier compañero entienda en 5 minutos sin formación
- Tu equipo no necesita grabación de sesiones ni mapas de calor
- Dispones de al menos 4 GB de RAM en el VPS
- Gestionas varios sitios desde un único panel minimalista
- Necesitas embudos multi-paso con seguimiento de ingresos integrado (Plausible 3.2)
Elige Umami si…
- Tienes un VPS con recursos limitados (512 MB–1 GB) o PostgreSQL ya está instalado
- Necesitas mapas de calor y grabación de sesiones (Umami 3.4, 2026)
- Tu equipo construye integraciones personalizadas vía el SDK TypeScript oficial
- Gestionas muchos sitios para diferentes clientes (multi-tenant nativo)
- Quieres consultar tus datos en lenguaje natural vía asistente IA usando MCP (Umami 3.4)
Cumplimiento RGPD, CNIL y ePrivacy: qué cubre realmente cada herramienta
Ambas herramientas están diseñadas para funcionar sin cookies de rastreo y sin almacenar direcciones IP completas. Plausible hace hash de la IP con una sal diaria rotatoria; Umami adopta un enfoque similar. Sin identificador persistente almacenado en el servidor, puedes prescindir del banner de consentimiento para analytics — siempre que el script no se combine con otros rastreadores. La CNIL francesa, en sus recomendaciones 2024, cita explícitamente las soluciones de analytics autoalojadas sin cookies como exentas de consentimiento cuando los datos permanecen bajo jurisdicción europea. La exención desaparece si el alojamiento está fuera de la UE o si los datos se agregan con soluciones publicitarias de terceros. Documentar el alojamiento y la política de retención en el registro de tratamiento sigue siendo obligatorio.
Migrar desde Google Analytics 4
Pasos para pasar de GA4 a Plausible o Umami
Exportar el historial de GA4 en CSV vía Informes > Exportar, o vía la Data API para volúmenes grandes — ninguna herramienta importa este historial de forma nativa, pero sirve como referencia histórica
Ejecutar el script de Plausible/Umami en paralelo al tag de GA4 durante 2–4 semanas para comparar métricas (los números diferirán: GA4 muestrea, Plausible/Umami cuentan todo)
Verificar que los eventos personalizados críticos (formularios, clics, compras) se replican correctamente via
plausible('goal')oumami.track()Eliminar el tag de GA4 y su cookie
_gauna vez satisfecho — actualiza la política de privacidadDocumentar las nuevas métricas en el registro RGPD: base legal (interés legítimo), periodo de retención, ubicación del servidor
Las cifras de tráfico serán sistemáticamente más altas con Plausible o Umami que con GA4 en el mismo sitio: GA4 filtra parte del tráfico bot y no muestrea las sesiones cortas de la misma forma. Espera +10% a +25% de páginas vistas — es precisión sin muestreo, no un error.
Funciones avanzadas: embudos, segmentos, eventos y API
Plausible 3.2 (enero 2026) introdujo embudos multi-paso editables con seguimiento de ingresos: defines una secuencia de URLs o eventos, y el panel muestra la tasa de conversión en cada etapa. La segmentación se apoya en filtros combinados (origen, país, dispositivo, propiedades de evento) con el nuevo filtro 'no contiene' añadido en 2026. La API es RESTful; extrae cualquier dimensión via /api/v1/stats/breakdown. Umami 3.4 (agosto 2026) añade segmentos de sesión y session replay (junio 2026) para análisis visual del comportamiento. El SDK TypeScript @umami/api-client (OpenAPI) facilita la integración en pipelines. Umami también hace «stitching» de sesión: si un visitante vuelve desde otro dispositivo y se autentica, las sesiones se fusionan.
Resolución de problemas frecuentes
Problemas frecuentes y soluciones
- ClickHouse no arranca (Plausible): verifica la RAM disponible (
free -h) — ClickHouse necesita al menos 1,5 GB libres. Añade un archivo swap de 2 GB si el VPS es justo:fallocate -l 2G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile - Migraciones de Umami bloqueadas: si la app rechaza arrancar tras una actualización con
relation does not exist, fuerza las migraciones manualmente:docker compose exec umami node node_modules/.bin/db-migrate up - Páginas vistas no registradas: verifica que el encabezado CSP permite el dominio de analytics (
script-src 'self' https://analytics.tudominio.com). Los bloqueadores de anuncios también pueden bloquear el script — es esperado. - ClickHouse en error tras reinicio brusco: si reporta tabla corrupta, ejecuta
SYSTEM RELOAD DICTIONARYy reinicia el contenedor - Umami v3 tras migración desde MySQL: exporta todos los datos primero (CSV o dump SQL), provisiona PostgreSQL, luego reimporta con los scripts de migración oficiales
Copia de seguridad y restauración de datos analytics
Estrategia de backup para Plausible y Umami
Plausible / ClickHouse: usa
clickhouse-backup(imagenaltinity/clickhouse-backup) o exporta tablas críticas a Parquet víaclickhouse-client. Almacena la copia en object storage.Umami / PostgreSQL: un
pg_dumpestándar basta —docker compose exec db pg_dump -U umami umami > umami_$(date +%Y%m%d).sql. Prográmalo en cron y sube el fichero a almacenamiento externoPrueba la restauración trimestralmente en un VPS de staging:
docker compose exec db psql -U umami umami < umami_backup.sqlPara Plausible, haz también backup del volumen Docker de PostgreSQL de la app (separado de ClickHouse)
Documenta el procedimiento de restauración en tu runbook — una copia no probada no es una copia