GoatCounter vs Umami

Two privacy-first web analytics tools, compared side-by-side on the same axes. Data is descriptive — no rankings, no editorial winners.

Updated May 1, 2026 16 of 34 verified checks differ Source: vendor docs & pricing pages

GoatCounter

Solo-developer cookieless analytics — single binary on SQLite, EUPL-1.2 license

  • HQ🇮🇪 Ireland
  • Founded2019
  • LicenseEUPL-1.2 (server) · ISC (count.js)
  • ReferenceRead full review

Umami

Open-source self-hosted privacy analytics

At-a-glance

Five facts that most often qualify or disqualify a tool early.

GoatCounterUmami
Price floorFreeFree
Free tierYesYes
Hosting modelSaaS + self-hostSaaS + self-host
Data residencyEUUS
CookielessYesYes

Privacy posture

Frameworks claimed and sub-processors disclosed under DPA.

Frameworks claimed

FrameworkGoatCounterUmami
GDPR Held Held
CCPA Not held Held
UK PECR Not held Not held
SOC 2 Type II Not held Not held
ISO 27001 Not held Not held
HIPAA Not held Not held

Sub-processors

GoatCounter (3)

  • Martin Tournoij (sole trader) Legal entity (sole-trader data processor) 🇮🇪 Ireland
  • Hetzner Online GmbH Cloud hosting — Finland AND Germany data centers 🇫🇮 Finland
  • Stripe Payment processing (paid subscriptions) 🇮🇪 Ireland

Umami (6)

  • Umami Software, Inc Legal entity (data processor for Cloud customers) 🇺🇸 United States
  • Vercel Inc Cloud hosting (Next.js app, edge functions) 🇺🇸 United States
  • ClickHouse Cloud Analytics database (US/EU regions) 🇺🇸 United States
  • Hetzner Online GmbH EU compute for EU-tier customers 🇩🇪 Germany
  • Stripe Payment processing 🇺🇸 United States
  • Cloudflare DNS, CDN, DDoS protection 🇺🇸 United States

Pricing at common traffic levels

Cheapest published plan from each vendor that covers the listed pageview volume. Retrieved May 1, 2026.

Pricing comparison at four traffic tiers.
TrafficGoatCounterUmami
10k pv/mo $0/moEntry $0/moHobby
100k pv/mo $15/mo100k $0/moHobby
500k pv/mo Custom — contact sales $20/moPro
1M pv/mo Custom — contact sales $20/moPro

Volumes between tiers follow each vendor's published pricing model. "Custom" indicates the vendor does not publish a price for that volume on their pricing page.

Feature matrix

All 38 verified checks across 4 categories.

Tracking & Reporting (15)

FeatureGoatCounterUmami
Pageviews & visitors Yes
Pageviews + visitors
Yes
Pageviews + visitors
Live visitor count No
Not in dashboard
No
Cloud only feature
Top pages report Yes
By hits, simple list
Yes
By pageviews/visitors
Top referrers Yes
Referrer list
Yes
Referrer + UTM breakdown
UTM campaign tracking Yes
Campaign tracking via UTM parameters
Yes
Auto-detected from referrer
Country & city breakdown Partial
Country-level only; no city tracking
Yes
Country + city
Device, browser, OS Yes
Browser + OS
Yes
Device + browser
Bounce / engagement No
Not measured
Yes
Bounce rate
Time on site No
Not measured
Yes
Avg session duration
Custom events Partial
count({event:true}) or data-goatcounter-click attribute; no custom dimensions
Yes
Custom events with property tracking; v3.1 added Custom Boards
Goals / conversions No
Not supported — basic events only, no conversion modeling
Yes
Cloud goals; self-host via SQL
Funnels No
Not supported — intentionally minimal scope
Yes
Custom Boards (v3.1+); flat funnel reports
Outbound link tracking No
Manual via custom hits
Yes
Via custom events
File download tracking No
Manual via custom hits
Yes
Via custom events
404 / error tracking No
Pageview to /404 path
No
Manual events

Privacy & Compliance (9)

FeatureGoatCounterUmami
Cookieless by default Yes
Cookieless: no localStorage; salt rotates every 8 hours (more aggressive than daily-rotation peers)
Yes
Cookieless tracking; visitor hash with salt rotation (monthly default, configurable)
No personal data collected Yes
IPs not stored; in-memory only for geo + 8h salt hash
Yes
IP not stored; used in-memory for geo + salted hash
GDPR-compliant out of the box Yes
Vendor explicitly claims no banner needed; legitimate-interest basis
Partial
Vendor claims no banner needed (cookieless + no PII); not a legal opinion, EU DPAs may differ on Schrems-II/US infra
Data hosted in EU Yes
Hetzner Finland + Germany; EU-only processing
Partial
Mixed: Vercel + Cloudflare (US), ClickHouse (US/EU), Hetzner (EU)
Data hosted in US No
EU-only — no US data residency
Yes
Vercel + Cloudflare US primary; control plane US-hosted
Self-hostable Yes
Single static Go binary or Docker; SQLite default, Postgres optional
Yes
Free, Docker
Open source Yes
Server: EUPL-1.2 (slightly modified); count.js: ISC
Yes
MIT
Data retention period Configurable
Indefinite by default on Cloud + self-host; manual deletion via dashboard/API
Configurable
Hobby 6 mo · Pro 2 yr · Business 5 yr · Self-host: indefinite
Bot & spam filtering No
Founder explicitly does not implement DNT (see arp242.net/dnt.html essay)
Yes
Bot detection

Setup & Integrations (10)

FeatureGoatCounterUmami
Script weight (KB) 3
~3.2 KB gzipped (~9 KB uncompressed); ISC-licensed count.js
2
~2 KB gzipped (4.5 KB uncompressed); same gzipped basis as peers
Single-snippet install Yes
data-goatcounter endpoint URL
Yes
data-website-id attribute
WordPress plugin Partial
Plugin on GitHub (savjee/goatcounter-wp); not in WP.org repository
No
No official plugin; community "Integrate Umami" by Ancocodet (2k+ installs)
Proxy / first-party domain Yes
Self-host single binary or Docker; ISC-licensed count.js works anywhere
Yes
Configurable via TRACKER_SCRIPT_NAME env (rename to dodge adblockers)
Public API Yes
REST API at /api/v0/* with Bearer token auth
Yes
Full REST API (websites, stats, events, sessions, reports, realtime)
Data export (CSV/JSON) Yes
CSV/JSON
Yes
CSV
Google Search Console connector No
No native GSC connector
No
No native GSC connector
Email digests Yes
Weekly email reports
Yes
Cloud
Slack / webhook alerts No
No webhooks, no Slack integration, no plugin system
No
No native Slack
Public shareable dashboard Yes
Public stats per site; visitor counter widget
Yes
Share-link toggle

Pricing & Plans (4)

FeatureGoatCounterUmami
Free tier exists Yes
Free Cloud for "reasonable public use" + permanent free Self-host
Yes
Hobby plan = permanent free (100k events/mo, 3 sites, 6mo retention)
Entry price ($/mo) No
No paid tiers; donation-supported via GitHub Sponsors
20
Cloud Pro tier (1M events/mo, 20 sites, 2yr retention)
Price at 100k pageviews No
No tier ladder; "personal use OK, millions of pageviews/day not"
20
Pro covers 1M events/mo (well over 100k benchmark)
Unlimited sites on entry plan Yes
Self-host: unlimited sites; Cloud: unlimited within fair-use
Partial
3 sites Hobby · 20 sites Pro · unlimited Business · unlimited Self-host

Where they differ

Axes where the two tools take materially different approaches. Each paragraph describes both vendors in parallel structure.

Pricing model

GoatCounter starts at $0/mo and reaches $15/mo at 100k pageviews. Umami starts at $0/mo and reaches $19/mo at the same volume. Both vendors publish per-tier pricing on their public pages.

License & deployment

GoatCounter is licensed under EUPL-1.2 (server) · ISC (count.js) and is available for self-hosting. Umami is licensed under MIT and is available for self-hosting.

Hosting jurisdiction

GoatCounter data residency: EU. Schrems II posture: eu only no transfer. Umami data residency: US. Schrems II posture: sccs.

Cookieless mechanism

GoatCounter uses daily salt hash for visitor uniqueness. Umami uses daily salt hash. Both mechanisms operate without setting cookies on the visitor's browser.

Continue exploring

More comparisons and reference pages on this site.