Skip to content

Google Analytics Alternatives -- Plausible, Fathom & Umami

DodaTech Updated 2026-06-22 4 min read

Google Analytics alternatives like Plausible, Fathom, and Umami provide privacy-focused, cookie-free web analytics that respect user consent while delivering accurate traffic insights without data sampling.

What You'll Learn

In this tutorial, you will learn how to evaluate, deploy, and configure the top Google Analytics alternatives for privacy-compliant web analytics, comparing Plausible, Fathom, and Umami across features, pricing, and self-hosting capabilities.

Why It Matters

Google Analytics is blocked by ad blockers, requires cookie consent banners, and samples data on free plans. Privacy regulations like GDPR and CCPA demand consent-free analytics solutions. Privacy-first alternatives give you accurate data without legal risk, better site performance, and no data sampling.

Real-World Use

Doda Browser ships with a built-in analytics dashboard powered by Plausible to track feature adoption, page views, and user flows without collecting personal data. The team migrated from Google Analytics and saw a 40% improvement in page load scores while maintaining accurate Visitor counts.

Architecture Comparison

flowchart LR
    A[Website Visitor] --> B[Plausible Script]
    A --> C[Fathom Script]
    A --> D[Umami Script]
    B --> E[Plausible Server]
    C --> F[Fathom Server]
    D --> G[Umami Server]
    E --> H[(PostgreSQL)]
    F --> I[(MySQL/MariaDB)]
    G --> J[(<a href="/databases/PostgreSQL/">PostgreSQL</a>)]
    E --> K[Dashboard]
    F --> K
    G --> K

Tool Comparison

Feature Plausible Fathom Umami Google Analytics
Self-hosted Yes (EU-only cloud) Yes Yes No
Cookie-free Yes Yes Yes No
Open source Yes No Yes No
Data ownership Full Full Full Google-owned
Monthly page limit 10K free / 100K $9 50K $14 Unlimited (self-host) Unlimited (sampled)
Ad blocker blocked No No No Yes

Installing Plausible with Docker

Plausible offers the simplest self-hosted setup using Docker Compose:

version: "3.8"
services:
  plausible:
    image: plausible/analytics:latest
    ports:
      - "8000:8000"
    environment:
      - BASE_URL=HTTPS://analytics.example.com
      - SECRET_KEY_BASE=your-secret-key
    depends_on:
      - postgres
      - clickhouse
  postgres:
    image: postgres:15
    environment:
      - POSTGRES_PASSWORD=password
  clickhouse:
    image: clickhouse/clickhouse-server:latest

Expected behavior: After running <a href="/devops/Docker-compose/">Docker Compose</a> up -d, Plausible starts on port 8000. Create an admin account at HTTP://localhost:8000 and add your site domain.

Adding the Tracking Script

Once your analytics server is running, add the JavaScript snippet to your site:

<script defer data-domain="example.com" src="HTTPS://analytics.example.com/js/script.js"></script>

Expected behavior: The script loads asynchronously and sends page views to your Plausible server without cookies. Check the dashboard for real-time Visitor data.

Custom Events with Plausible

Track specific user actions beyond page views:

// Track button clicks
plausible("Signup", { props: { method: "email", plan: "pro" } });

// Track file downloads
plausible("Download", { props: { file: "dodabrowser-setup.exe" } });

Expected behavior: Custom events appear in the Plausible dashboard under the "Goals" section with all attached properties visible in breakdown reports.

Common Errors

1. Forgetting to Whitelist the Script Domain

If your tracking domain differs from your site domain, Plausible blocks the request. Add the tracking domain to "Allowed Domains" in site settings.

2. Using UTM Parameters Without Goal Configuration

UTM parameters only appear in reports if you define them as custom properties. Without configuration, they are silently dropped.

3. Mismatched Data Domain

The data-domain attribute must match exactly the domain configured in your analytics dashboard. A trailing slash or www prefix causes tracking failure.

4. Self-Hosted SSL Misconfiguration

Plausible requires HTTPS on the analytics endpoint. Without SSL certificates, browsers block the script. Use Let's Encrypt or a reverse Proxy.

5. Overlooking Bot Filtering

Default bot filtering catches most crawlers but misses some. Enable strict bot filtering in settings or add a robots.txt disallow to reduce noise.

Practice Questions

1. What makes Plausible different from Google Analytics? Plausible is cookie-free, open source, not blocked by ad blockers, and does not collect personal data. It uses a lightweight script that does not require cookie consent banners.

2. Which database does Umami use for storage? Umami uses PostgreSQL or MySQL for storing analytics data. The choice depends on your self-hosting preference.

3. How do you track a custom event with Plausible? Use the plausible() function with an event name and optional properties object: plausible("EventName", { props: { key: "value" } }).

4. What happens if your Fathom monthly page limit is exceeded? Fathom continues tracking but your dashboard may show stale data or you may need to upgrade to a higher plan. No data is lost retroactively.

5. Challenge: Deploy Plausible with Docker Compose and configure custom event tracking for three user actions (signup, download, search). Create a dashboard goal for each event and verify events appear in real time.

Mini Project

Build a hybrid analytics dashboard that sends data from your website to both Plausible (privacy-first) and a local ClickHouse database for custom querying. Use the Plausible API to export daily stats and store them in ClickHouse for long-term retention. Run weekly reports comparing traffic sources, top pages, and custom event conversion rates.

Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro