# Analytics: Vercel vs self-hosted

Vercel Analytics takes ten minutes and sets no cookies. Umami and Plausible keep the data on your server. The choice depends on where the logs must live.

> Page: https://ui.eneawork.it/blog/nextjs-analytics-vercel-vs-self
> Markdown: https://ui.eneawork.it/blog/nextjs-analytics-vercel-vs-self.md

*2026-11-01*

La scelta tra Vercel Analytics e un analytics self-hosted dipende da dove devono stare i dati, non dal numero di funzioni. Se il sito gira su Vercel e bastano pagine viste e Core Web Vitals, l'integrazione nativa costa una riga di codice.

L'adozione si legge dai download npm della settimana chiusa il 23 ottobre 2026: @vercel/analytics 10.730.889, posthog-js 23.230.036, plausible-tracker 48.716, misurati su api.npmjs.org il 2 novembre 2026. Il catalogo EneUI misura 111.985 componenti, 1.556 blocchi e 12.808 icone da 1.472 librerie (/api/stats, 1 novembre 2026).

## Cosa misura ciascuno

## Il minimo su Vercel

// app/layout.tsx import { Analytics } from "@vercel/analytics/next"; import { SpeedInsights } from "@vercel/speed-insights/next"; export default function RootLayout({ children }: { children: React.ReactNode }) { return ( {children} ); }

Il componente scrive su un endpoint che esiste solo sui deployment Vercel. Su un VPS il beacon non ha destinazione e la dashboard resta vuota: non è un bug del pacchetto.

## Il minimo self-hosted

docker run -d --name umami \ -p 3000:3000 \ -e DATABASE_URL=postgresql://umami:umami@db:5432/umami \ -e APP_SECRET=change-me \ ghcr.io/umami-software/umami:postgresql-latest

// app/layout.tsx import Script from "next/script"; export default function RootLayout({ children }: { children: React.ReactNode }) { return ( {children} ); }

## Il confronto onesto

## Il limite che nessuno dice

Vercel Analytics non esporta eventi grezzi: se un giorno ti serve una coorte per utente, quei dati non esistono più. Umami li conserva, ma solo se la retention era già configurata il giorno del lancio.

Per la dashboard di lettura il catalogo ha 1.556 blocchi (1 novembre 2026): dashboard-01, la categoria dashboard e i grafici in chart.

## Dove continuare

Come si legge l'INP reale è in Core Web Vitals: INP. Per le soglie da mettere in CI c'è Lighthouse CI; il confronto tra un framework e un generatore statico per un sito marketing è in Next.js vs Vite.

## FAQ

### Vercel Analytics usa cookie?

No. Conta visite e Web Vitals senza cookie e senza identificatore persistente, quindi di norma non richiede un banner.

### Posso usare Vercel Analytics su un VPS?

Non senza lavoro extra. Il pacchetto invia i dati a un endpoint disponibile solo sui deployment Vercel; altrove serve un proxy tuo o un altro strumento.

### Umami o Plausible?

Umami se vuoi PostgreSQL e controllo totale, Plausible se preferisci un prodotto pronto con hosting gestito. Entrambi sono open source.

### Perdo il riferimento delle campagne con un analytics self-hosted?

No, se leggi i parametri UTM dall'URL. Gli strumenti citati li salvano per default, ma verifica la configurazione prima del lancio.

### Quanto costa tenerlo su un VPS?

Un'istanza da 2 GB copre 100.000 visite al mese e costa pochi euro. Il costo vero sono aggiornamenti, backup e monitoraggio del database.
