Blog
← Back to all blogs

Ditch the Cookie Banner: Why you should use Umami

By Jim van duijsen

July 14, 2025

umamianalyticsselfhosting

We all know it, the stupid cookie banner on your page it's ugly, hard to implement and most of all decreases traffic to your website.

But I have found the solution to that problem, so that on my website I don't need to have a cookie banner since it doesn't use cookies but I can still see all the data I want to see.

PS I also link the docker compose I use so you can selfhost it

I wrote this article about it and how to and why i use it (this page only on the blog page)

What I use is an app called umami it's a Google Analytics alternative that doesn't use cookies.

What Makes Umami Different?

Umami is something else. While Google Analytics and other platforms rely on cookies to track users across sessions, Umami takes a completely different approach. It doesn't use cookies or personally identifiable information, and It focuses on privacy-first analytics that respect both you and your visitors.

The beauty of Umami is in its simplicity. Instead of bombarding you with hundreds of metrics that you'll never use, it gives you the essential data you need: page views, unique visitors, popular pages, referrers, and device information. All of this without storing any personally identifiable information or using cookies..

Why Cookie Free Analytics Matter

Let's be honest, cookie banners are conversion killers. Studies show that websites can lose up to 12% of their traffic just from cookie consent friction. Users either bounce immediately when they see the banner, or they decline cookies entirely, giving you no information.

With GDPR, CCPA, and other privacy regulations tightening globally, cookie-based analytics are becoming more of a hassle. You're constantly walking a tightrope between compliance and functionality. Umami eliminates this headache entirely.

The Data You Actually Need

One thing I love about Umami is how it focuses on actionable metrics. Instead of drowning you in data, it shows you:

Real-time visitors: See who's on your site right now, Page views and unique visitors: The fundamental metrics that actually matter, Top pages: Which content is performing best, Referrers: Where your traffic is coming from, Countries and devices: Basic demographic info country and device info, Custom events: Track specific user actions

The dashboard is clean, fast, and actually useful. You can see trends at a glance without needing a degree in data science.

No performance impact

Umami's tracking script is incredibly lightweight, less than 5KB minified. Compare that to Google Analytics, which can slow down your site with multiple scripts and tracking pixels. Umami loads asynchronously and has virtually no impact on your site's performance

Making the Switch

Moving from Google Analytics to Umami is surprisingly painless. The transition involves:

  1. Setting up your Umami instance (5 minutes)
  2. Adding the tracking script to your site (replace your GA code)
  3. Removing your cookie banner (the best part!)
  4. Enjoying clean, privacy-friendly analytics

You'll quickly realize that you don't miss the complexity of Google Analytics. Most website owners only use about 10% of GA's features anyway, and Umami covers those essential metrics perfectly.

Setting Up Umami: Two Ways to Go

Option 1: Umami Cloud (The Easy Route)

If you want to get started quickly, Umami offers a hosted solution at umami.is. You simply sign up, add your website, and paste a single line of JavaScript or use a plugin like the umami plugin for wordpress into your site. Within minutes, you're collecting analytics data without any cookie banners.

The hosted version is perfect for small to medium websites and comes with a generous free tier. For most personal blogs and small business sites, you'll never need to pay anything.

Option 2: Self-Hosted (The Power User Route)

This is where it gets interesting you can selfhost umami entirely for free except your server expenses

Here's the Docker Compose setup I use for self-hosting:

version: '3.8'

services:  
  umami:  
    image: ghcr.io/umami-software/umami:postgresql-latest  
    ports:  
      - "3000:3000"  
    environment:  
      DATABASE_URL: postgres://umami:umami@127.0.0.1:5432/umami  
      DATABASE_TYPE: postgresql  
      APP_SECRET: your-secret-key-here  
    depends_on:  
      - db  
    restart: always

  db:  
    image: postgres:15-alpine  
    environment:  
      POSTGRES_DB: umami  
      POSTGRES_USER: umami  
      POSTGRES_PASSWORD: umami  
    volumes:  
      - umami-db-data:/var/lib/postgresql/data  
    restart: always

volumes:  
  umami-db-data:

Just save this as docker-compose.yml, run docker-compose up -d, and you'll have Umami running on port 3000. The setup process takes about 5 minutes, and you're completely in control of your data.