Choosing Analytics for Your Nuxt App: A Data-Backed Guide

Harlan Wilton Harlan Wilton 8 mins read

Most teams pick analytics based on name recognition. GA4 because everyone uses it. Plausible because a tweet said it was good. PostHog because the free tier looked generous.

That's backwards. The right analytics tool depends on what you need to track - and in Nuxt, on how well it handles SSR hydration and SPA navigation. We measured the transfer size, execution cost, and privacy profiles of every major provider. Here's what the data says.

What Do You Need?

Answer this before looking at any provider. Each step up adds complexity, weight, and cost.

  1. "I want visitor counts." - Cloudflare Web Analytics or Plausible Analytics.
  2. "I need custom events - clicks, downloads, signups." - Plausible Analytics, Umami Analytics, or Fathom Analytics.
  3. "I need ad ROI and conversion funnels." - Fathom Analytics or Google Analytics.
  4. "I need session replays and user identity." - PostHog or LogRocket.
  5. "I need to route data to 20 tools and a data warehouse." - Segment.

Most sites need tier 1 or 2. The temptation to jump to tier 5 because "we might need it" is expensive and usually wrong.

The Nuxt Analytics Matrix (2026)

Analytics Recommendation Matrix

2026
Need Provider Script Size Why
Minimalist
Cloudflare Web Analytics
10.7 KBFree, zero-config for CF sites
Privacy-first
Plausible Analytics
1.9 KBFastest UI, no cookies, sub-2KB
Self-hosted
Umami Analytics
3.2 KBOpen-source, SQL-based, lightweight
Marketing/ads
Fathom Analytics
3 KBGoal tracking for high-traffic sites
Product growth
PostHog
NPM / 0 KB*Session replay, flags, heatmaps
Enterprise CDP
Segment
30.2 KBComplex data orchestration
Google Ads
Google Analytics
155.3 KBDeepest Google Ads integration
Tag Management
GTM + GA4
~265 KBGTM loads GA4 as sub-script

Practical advice: If you're building a SaaS product, the hybrid stack in section 7 beats any single tool. If you're building a marketing site, Plausible Analytics is the right default.

Nuxt-Specific Gotchas

Nuxt's hybrid SSR/SPA architecture breaks standard analytics snippets in two ways.

SSR Hydration Double-Counting

Place a tracking snippet in app.html or useHead and it fires twice: once when the browser parses the server-rendered HTML, again when Vue hydrates. Your pageview counts inflate by up to 2x for initial loads. (Nuxt Scripts docs)

Nuxt Scripts loads analytics onNuxtReady by default. The script only runs once the app is fully interactive on the client.

SPA Navigation Tracking

Standard scripts listen for window.load. In a Nuxt SPA, the page never reloads as you navigate between routes. Without router integration, you're tracking one pageview per session regardless of how many pages the user visits.

Nuxt Scripts' registry composables (like useScriptPlausible) automatically hook into the Nuxt router and send virtual pageviews on every navigation.

Both issues affect every analytics provider. Don't assume your current setup is tracking correctly without verifying against server-side logs.

Setup: 1 Line vs. ~40 Lines

// nuxt.config.ts
export default defineNuxtConfig({
  scripts: {
    registry: {
      plausibleAnalytics: { domain: 'example.com' }
    }
  }
})

The manual approach also misses the hydration fix. You'd need to delay the script manually - and that's before handling consent, first-party proxying, or TypeScript types.

2026 Pricing at 100k Pageviews/Month

Pricing at 100k Pageviews/Month

2026
Provider Free Tier Monthly
Google Analytics
UnlimitedData limits apply
Free
Cloudflare Web Analytics
Unlimited
Free
PostHog
1M events/mo
Free
Umami Cloud
100k events/mo
Free
Rybbit
3k views
$13
Fathom
7-day trial
$15
Plausible
30-day trial
$19
Segment
50k users
$60+

GA4's "free" tier comes with tradeoffs: no raw data access without BigQuery (Vemetric Analytics Review, 2026), sampling at high volumes, and data retention limits. For teams that need SQL access to their own data, Umami (self-hosted) or Plausible are cheaper in the long run. Migrating off GA4 is also easier than it looks - both Matomo and Plausible support importing your historical GA data.

The Ad-Blocker Problem

25-45% of users block trackers (Blockthrough Ad-Block Report 2026). Scripts hosted on google-analytics.com, plausible.io, or any known tracker domain get blocked at the DNS or network level.

Nuxt Scripts' first-party mode proxies all analytics traffic through your own domain, saving 200-500ms in addition to recovering blocked data (Nuxt Scripts benchmarks):

nuxt.config.ts
export default defineNuxtConfig({
  scripts: {
    firstParty: true,
    registry: {
      plausibleAnalytics: { domain: 'example.com' }
    }
  }
})

Requests go to yoursite.com/_scripts/... instead of plausible.io. To a browser or DNS blocker, they're indistinguishable from regular site traffic. Data accuracy returns to near 100%.

This also has a privacy benefit: third parties see your server's IP instead of your users'.

First-party mode supports Google Analytics, GTM, Meta Pixel, Plausible, Fathom, Segment, Clarity, Hotjar, and more.

The Hybrid Stack

You don't have to pick one tool. High-performing Nuxt teams typically run two:

The two tools don't overlap. Plausible Analytics/:LinkScript{slug="umamiAnalytics"} covers the marketing and content team's questions. PostHog covers the product team's.

nuxt.config.ts
export default defineNuxtConfig({
  scripts: {
    firstParty: true,
    registry: {
      plausibleAnalytics: { domain: 'example.com' },
      posthog: { apiKey: 'phc_XXXXXX' }
    }
  }
})

Both load deferred, both get first-party proxying, and neither requires a manual router hook.

Making the Call

Three questions narrow it down:

  1. Who reads the data? Marketing team - use Plausible Analytics. Engineers debugging sessions - use PostHog. Google Ads team - use Google Analytics.
  2. What's your compliance situation? EU users with no cookie consent UI - use Plausible Analytics or Umami Analytics (cookie-free). GDPR consent required - all providers work, Plausible and Umami need the least configuration.
  3. What's your scale? Under 1M events/month - PostHog is free. Under 100k events/month - Umami Analytics Cloud is free. High-volume marketing site - Fathom Analytics's flat pricing avoids surprise bills.

For most Nuxt apps: start with Plausible Analytics for traffic stats. Add PostHog when you need product analytics. Use Nuxt Scripts for both - router integration, SSR safety, and first-party proxying with no glue code required.