Vercel Analytics vs Plausible vs Umami 2026
Vercel Analytics vs Plausible vs Umami: Privacy-First Analytics 2026
TL;DR
Google Analytics 4's complexity and privacy concerns have accelerated the shift to simpler, privacy-first analytics. Three tools lead the space in 2026. Vercel Analytics is the zero-friction option for Vercel-hosted projects — automatic Web Vitals, pageview tracking, and audience insights built into the Vercel dashboard with @vercel/analytics installed in 5 minutes and no cookie banner required; it's tightly coupled to Vercel infrastructure but unbeatable for DX. Plausible is the privacy-friendly, cookie-free alternative to Google Analytics — GDPR-compliant by default, beautiful dashboard with real-time stats, goals, funnels, properties, 1.8kB script, available as cloud ($9/mo) or self-hosted; it's the best standalone analytics service for production websites. Umami is the open-source, self-hosted analytics platform — deploy on your own Postgres database, no cloud costs beyond your own infrastructure, full feature set with event tracking, custom properties, and team sharing; the go-to for developers who want full data ownership. For Vercel projects needing quick analytics: Vercel Analytics. For a polished privacy-friendly cloud service: Plausible. For self-hosted with full data control: Umami.
Key Takeaways
- Vercel Analytics is zero-config — install
@vercel/analytics, done; no cookie banner - Plausible tracks zero personal data — no cookies, no IP storage, GDPR/CCPA compliant
- Umami is fully self-hosted — your Postgres, your data, your infrastructure
- All three are cookie-free — no consent banner required in most jurisdictions
- Plausible has funnels — multi-step conversion tracking in cloud plan
- Vercel Analytics includes Web Vitals — LCP, CLS, FID per route, percentile breakdown
- Umami is free — cost is only your hosting; Postgres on Railway/Supabase works
Feature Overview
Vercel Analytics Web Vitals + pageviews, Vercel-only, instant setup
Plausible Privacy-first SaaS/self-hosted, full analytics suite
Umami Open-source, self-hosted, full analytics, free
Vercel Analytics: Zero-Friction for Vercel Projects
Vercel Analytics is built directly into the Vercel platform — Web Vitals monitoring, audience analytics, and real-time pageviews with one package install.
Installation
npm install @vercel/analytics
Next.js App Router Setup
// app/layout.tsx
import { Analytics } from "@vercel/analytics/react";
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="en">
<body>
{children}
<Analytics />
</body>
</html>
);
}
Pages Router Setup
// pages/_app.tsx
import { Analytics } from "@vercel/analytics/react";
import type { AppProps } from "next/app";
export default function App({ Component, pageProps }: AppProps) {
return (
<>
<Component {...pageProps} />
<Analytics />
</>
);
}
Web Vitals (Speed Insights)
npm install @vercel/speed-insights
// app/layout.tsx
import { Analytics } from "@vercel/analytics/react";
import { SpeedInsights } from "@vercel/speed-insights/next";
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="en">
<body>
{children}
<Analytics />
<SpeedInsights /> {/* Automatic LCP, CLS, FID per route */}
</body>
</html>
);
}
Custom Events
// Track custom events beyond pageviews
import { track } from "@vercel/analytics";
// Track a button click
function handleSignUp() {
track("signup_click", {
plan: "pro",
source: "pricing_page",
});
// ... handle signup
}
// Track a purchase
function handlePurchase(amount: number, product: string) {
track("purchase", {
amount,
product,
currency: "USD",
});
}
Vercel Dashboard
After installation, the Vercel dashboard shows:
- Pageviews and unique visitors by day/week/month
- Top pages, referrers, countries, devices, browsers
- Web Vitals per route: LCP/CLS/FID at P50/P75/P90/P99
- Real-time visitor count
- Custom event funnel
- No cookies, no consent required
What Vercel Analytics CANNOT do
❌ Self-host — Vercel infrastructure only
❌ Works with non-Vercel deployments
❌ Custom dashboards or data export (paid plan needed)
❌ Session recording
❌ A/B testing
❌ Heatmaps
Plausible: Privacy-First Cloud Analytics
Plausible is purpose-built for privacy — no cookies, no personal data, GDPR by design, with a clean dashboard that developers actually want to use.
Installation
npm install next-plausible
Next.js Integration
// app/layout.tsx — App Router
import PlausibleProvider from "next-plausible";
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="en">
<PlausibleProvider domain="yourdomain.com">
<body>{children}</body>
</PlausibleProvider>
</html>
);
}
Pages Router
// pages/_app.tsx
import PlausibleProvider from "next-plausible";
import type { AppProps } from "next/app";
export default function App({ Component, pageProps }: AppProps) {
return (
<PlausibleProvider domain="yourdomain.com">
<Component {...pageProps} />
</PlausibleProvider>
);
}
Or Via Script Tag (Any Framework)
<!-- Simple embed — no npm package needed -->
<script
defer
data-domain="yourdomain.com"
src="https://plausible.io/js/script.js"
></script>
<!-- With outbound link tracking -->
<script
defer
data-domain="yourdomain.com"
src="https://plausible.io/js/script.outbound-links.js"
></script>
<!-- Combined: outbound links + file downloads -->
<script
defer
data-domain="yourdomain.com"
src="https://plausible.io/js/script.outbound-links.file-downloads.js"
></script>
Custom Events
// Using next-plausible hook
import { usePlausible } from "next-plausible";
export function SignupButton() {
const plausible = usePlausible();
return (
<button
onClick={() => {
plausible("Signup Click", {
props: {
plan: "pro",
source: "pricing_page",
},
});
}}
>
Get Started
</button>
);
}
Revenue Tracking
// Track e-commerce events with revenue
import { usePlausible } from "next-plausible";
export function CheckoutButton({ amount }: { amount: number }) {
const plausible = usePlausible();
return (
<button
onClick={() => {
plausible("Purchase", {
revenue: { currency: "USD", amount },
props: { product: "pro_plan" },
});
}}
>
Complete Purchase
</button>
);
}
Plausible Dashboard Features
✅ Real-time visitors
✅ Pageviews, unique visitors, bounce rate, session duration
✅ Top pages, referrers, UTM sources, countries
✅ Custom goals and events with properties
✅ Funnels (multi-step conversion tracking)
✅ Revenue attribution
✅ Outbound link clicks (automatic)
✅ File download tracking (automatic)
✅ 404 page tracking
✅ Shared dashboards (public or password-protected)
✅ CSV/TSV export
✅ API for programmatic data access
✅ Email digests (weekly/monthly)
❌ Session recording
❌ Heatmaps
❌ A/B testing
Self-Hosting Plausible
# docker-compose.yml — self-hosted Plausible
version: "3.3"
services:
mail:
image: bytemark/smtp
plausible_db:
image: postgres:14-alpine
environment:
- POSTGRES_PASSWORD=postgres
volumes:
- db-data:/var/lib/postgresql/data
plausible_events_db:
image: clickhouse/clickhouse-server:23.3-alpine
volumes:
- event-data:/var/lib/clickhouse
- ./clickhouse/clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro
- ./clickhouse/clickhouse-user-config.xml:/etc/clickhouse-server/users.d/logging.xml:ro
plausible:
image: ghcr.io/plausible/community-edition:v2.1
command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"
depends_on:
- plausible_db
- plausible_events_db
- mail
ports:
- 8000:8000
environment:
- BASE_URL=https://analytics.yourdomain.com
- SECRET_KEY_BASE=your-secret-key
- DATABASE_URL=postgres://postgres:postgres@plausible_db:5432/plausible_db
- CLICKHOUSE_DATABASE_URL=http://plausible_events_db:8123/plausible_events_db
volumes:
db-data:
event-data:
Umami: Self-Hosted Open Source
Umami is a fully open-source, self-hosted analytics platform — deploy it once to your own infrastructure and get complete data ownership with zero recurring analytics costs.
Self-Hosting Setup
# Clone and deploy
git clone https://github.com/umami-software/umami.git
cd umami
# Environment setup
cp .env.example .env.local
# Edit .env.local:
# DATABASE_URL=postgresql://user:password@localhost:5432/umami
# NEXTAUTH_SECRET=your-random-secret
Deploy on Railway (Fastest)
1. Railway → New Project → Deploy from GitHub → umami-software/umami
2. Add Postgres plugin (auto-generates DATABASE_URL)
3. Set environment variables:
- DATABASE_URL: (auto-filled by Railway plugin)
- NEXTAUTH_SECRET: (generate with: openssl rand -base64 32)
- NEXT_PUBLIC_UMAMI_APP_URL: https://your-railway-app.up.railway.app
4. Deploy — Umami runs on Railway's free tier or $5/mo
Next.js Integration
// app/layout.tsx
import Script from "next/script";
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="en">
<head>
<Script
src="https://analytics.yourdomain.com/script.js"
data-website-id="your-website-id" // From Umami dashboard
strategy="afterInteractive"
/>
</head>
<body>{children}</body>
</html>
);
}
Custom Events via umami.track
// Track events from any JavaScript
declare global {
interface Window {
umami: {
track: (event: string, data?: Record<string, string | number>) => void;
};
}
}
// In your components
function handleSignUp() {
window.umami.track("signup", {
plan: "pro",
source: "pricing_page",
});
}
// Or use the npm package
// npm install @umami/node
import { track } from "@umami/node";
await track("https://yourdomain.com", "purchase", {
revenue: 99,
product: "pro_plan",
});
Umami React Hook
// Wrapper hook for Umami tracking
import { useCallback } from "react";
export function useUmami() {
const track = useCallback((event: string, data?: Record<string, string | number>) => {
if (typeof window !== "undefined" && window.umami) {
window.umami.track(event, data);
}
}, []);
return { track };
}
// Usage
export function PricingButton({ plan }: { plan: string }) {
const { track } = useUmami();
return (
<button
onClick={() => {
track("pricing_cta_click", { plan });
window.location.href = `/checkout?plan=${plan}`;
}}
>
Get {plan}
</button>
);
}
Feature Comparison
| Feature | Vercel Analytics | Plausible | Umami |
|---|---|---|---|
| Pricing | Free (100K events), $10/mo (1M) | $9/mo (10K visitors) | Free (self-host) |
| Self-hostable | ❌ Vercel only | ✅ Community Edition | ✅ Open source |
| Cookie-free | ✅ | ✅ | ✅ |
| GDPR compliant | ✅ | ✅ | ✅ |
| Web Vitals | ✅ LCP/CLS/FID | ❌ | ❌ |
| Real-time | ✅ | ✅ | ✅ |
| Custom events | ✅ | ✅ | ✅ |
| Funnels | ❌ | ✅ (paid) | ✅ |
| Revenue tracking | Limited | ✅ | ✅ |
| API access | ✅ | ✅ | ✅ |
| CSV export | ✅ (paid) | ✅ | ✅ |
| Shared dashboards | Limited | ✅ | ✅ |
| Next.js package | @vercel/analytics | next-plausible | Script tag |
| Script size | ~5kB | ~1.8kB | ~2kB |
| Data ownership | Vercel | Plausible/yours | ✅ 100% yours |
| GitHub stars | N/A | 20k | 23k |
| Deployment | Vercel | Cloud or Docker | Self-hosted |
When to Use Each
Choose Vercel Analytics if:
- Already on Vercel and want zero-friction setup
- Web Vitals monitoring per route is important (LCP/CLS/FID)
- Small project — free tier is generous for indie projects
- Want analytics in the same dashboard as deployments
- Don't need funnels, cohorts, or advanced segmentation
Choose Plausible if:
- Want a polished, maintained cloud analytics service
- Privacy-first is a selling point (GDPR countries, privacy-conscious audience)
- Need funnels, revenue attribution, and shared public dashboards
- Not on Vercel (Plausible works anywhere)
- Happy to pay $9-19/mo for a managed service vs self-hosting
Choose Umami if:
- Want $0 analytics costs (just hosting)
- Need complete data ownership (healthcare, legal, privacy-sensitive)
- Multiple websites, multiple team members (Umami supports multi-site)
- Self-hosting experience is already part of your stack
- Want to modify the analytics platform itself (open source)
Ecosystem & Community
Plausible Analytics (20k+ GitHub stars) has become the standard recommendation in the privacy-conscious developer community. Founded in 2019 by Marko Saric and Uku Täht, Plausible operates as an independent, profitable company — no VC funding, no pivot risk. Their pricing model is transparent: you pay for monthly visitor counts, not pageviews. The company publishes detailed transparency reports and their annual revenue publicly, which resonates with the indie hacker community that makes up a large portion of their user base.
Umami (23k+ GitHub stars) is the open-source choice when developers want the same privacy-first approach but prefer to control their own data. The project is maintained by Mike Cao and has a growing contributor community. Umami v2 added a significant redesign, team features, and an improved event tracking API. The project has commercial hosting through Umami Cloud, but the self-hosted version is completely free and full-featured. Deployment to Railway, Render, Fly.io, or any Postgres-compatible host takes under 30 minutes.
Vercel Analytics benefits from Vercel's massive Next.js developer community. It's the path of least resistance for the millions of projects already deployed on Vercel. The Web Vitals integration is particularly valuable — being able to see LCP, CLS, and FID broken down by page route, deployment, and country in the same dashboard as your deployment logs is genuinely useful for performance optimization.
Real-World Adoption
Plausible has become the analytics tool of choice for open-source projects, indie SaaS products, and developer-focused blogs. Many projects switched from Google Analytics to Plausible after the GA4 migration proved confusing and invasive. The Plausible script (1.8kB) is 45x smaller than Google Analytics 4 (80kB+), which measurably improves page load times. Companies in GDPR-regulated industries (EU SaaS, healthcare, finance) adopt Plausible specifically because it makes GDPR compliance straightforward — there's no user data to manage, no data subject requests to handle, and no cookie consent to implement.
Umami sees adoption in regulated industries where data must stay on-premises, in organizations with strict data residency requirements, and in open-source projects where transparency includes the analytics stack. Universities, government organizations, and healthcare companies use Umami when they need analytics but can't send data to third-party SaaS services.
Vercel Analytics is standard for Next.js-focused startups and indie projects on the Vercel platform. The friction-free setup — the analytics component can be added in the same commit that sets up a new Next.js project — means many projects have it before they've thought seriously about analytics.
Privacy & GDPR Deep Dive
All three tools are designed to operate without cookies and without storing personal data, which means they can operate in compliance with GDPR and CCPA without a cookie consent banner in most cases. However, the implementations differ.
Plausible's privacy model is the most documented. They explicitly state that they don't store IP addresses, don't use cross-site tracking, don't profile visitors, and don't share data with third parties. Their GDPR compliance page is comprehensive and has been reviewed by EU data protection lawyers. The tradeoff for this privacy is that Plausible's visitor counts are statistical estimates — they use IP address + user agent hashing to estimate unique visitors within a 24-hour window, then discard the hash. This means visitor counts are accurate but not perfectly precise.
Vercel Analytics' privacy model is solid for a commercial product but less transparent than Plausible's. Vercel stores analytics data on their infrastructure, and the privacy guarantees depend on Vercel's data processing agreements. For EU-based projects, this means verifying that Vercel's data processing terms satisfy GDPR requirements.
Umami's privacy model depends on your deployment. When self-hosted, you control everything. Umami processes only the data you configure it to collect and stores it in your own database. For maximum privacy compliance, Umami self-hosted is the cleanest option — you can audit the exact data schema and delete data on demand.
Performance Impact
Plausible's 1.8kB script is the smallest of the three and has the most positive Lighthouse impact. Because the script is deferred and non-blocking, it doesn't affect First Contentful Paint or Largest Contentful Paint. Plausible also offers a proxied script setup where the analytics script is served from your own domain, which avoids ad-blocker blocking and can improve script load success rates from 85% to 99%.
Vercel Analytics loads its script from Vercel's CDN with optimal caching headers. The @vercel/analytics package integrates with Next.js's script optimization, loading the analytics script in a way that doesn't block page rendering. The combined @vercel/analytics + @vercel/speed-insights payload is around 7-8kB, which is still lightweight compared to Google Analytics.
Umami's self-hosted script (~2kB) loads from your own domain, which has the dual benefit of avoiding ad-blockers and serving from the same CDN as your main application. If you're already using Cloudflare or a global CDN, the Umami script benefits from the same edge distribution.
Migration Guide
Migrating from Google Analytics 4 to Plausible is the most common migration in 2026. The steps are: add the Plausible script, set up goals to replace GA4's conversion events, recreate any important segments using Plausible's filter system, and remove the GA4 script. The main caveat is that Plausible doesn't have audience segmentation or cohort analysis — if you relied on those in GA4, you'll need a supplementary tool.
Migrating from Vercel Analytics to Plausible or Umami typically happens when a project outgrows Vercel's hosting or needs features like funnels and revenue tracking. Because all three tools use a simple script tag integration, the migration is just swapping scripts. Historical data doesn't transfer, which means running both tools in parallel for 30 days to establish a baseline before removing the old one.
Setting up Umami for the first time is a 4-step process: deploy Umami to Railway or Render, add the tracking script to your site, configure websites in the Umami dashboard, and set up any custom events you want to track beyond pageviews. The whole process takes under an hour for developers comfortable with deploying Node.js applications.
Final Verdict 2026
For Next.js projects on Vercel, start with Vercel Analytics — it's free, requires one component to install, and the Web Vitals integration in the deployment dashboard is genuinely valuable. Upgrade to Plausible when you need funnels, revenue tracking, or if you move off Vercel.
For production websites that need a polished analytics experience, Plausible is the best choice in 2026. The combination of privacy compliance, beautiful dashboard, funnel tracking, and reasonable pricing ($9/mo for 10k visitors) covers the needs of most production websites without the complexity of Google Analytics.
For complete data ownership, Umami self-hosted on Railway is the right choice. At $5/mo for a Railway Postgres instance, you get unlimited pageviews, unlimited websites, and full data control for less than the cost of Plausible's smallest tier.
Methodology
Data sourced from Vercel Analytics documentation (vercel.com/docs/analytics), Plausible documentation (plausible.io/docs), Umami documentation (umami.is/docs), pricing pages as of February 2026, npm weekly download statistics as of February 2026, GitHub star counts as of February 2026, and community discussions from the Vercel Discord, Plausible community forums, and indie hacker communities.
Related: Best Next.js Auth Solutions 2026 for the auth complement to your analytics stack, Best AI LLM Libraries JavaScript 2026 for tracking AI feature usage with custom events, and Hono vs Elysia 2026 for backend frameworks where you might implement server-side analytics.