Matomo vs GoatCounter: Full Analytics or Just Enough?

The 100x Resource Difference

Here’s the uncomfortable truth about analytics tools: most website owners check three things — total visitors, top pages, and where traffic came from. Matomo gives you those three things, plus 200 more reports, e-commerce tracking, heatmaps, session recordings, A/B testing, and a plugin marketplace. GoatCounter gives you those three things and that’s basically it.

Updated March 2026: Verified with latest Docker images and configurations.

Matomo uses 2-4 GB of RAM. GoatCounter uses 25 MB.

Which do you actually need?

Feature Comparison

FeatureMatomo 5.7.1GoatCounter 2.7
ArchitecturePHP + MySQL/MariaDBGo binary + SQLite
Pageview trackingYesYes
Visitor trackingYes (first-party cookies optional)Approximated (no cookies)
Real-timeYesNear real-time
E-commerce trackingYes (built-in)No
HeatmapsYes (premium plugin)No
Session recordingsYes (premium plugin)No
A/B testingYes (premium plugin)No
Funnel analysisYes (premium plugin)No
Custom dimensionsYesLimited
Custom eventsYes (full event model)Basic
Goal/conversion trackingYesNo
SegmentsAdvanced (any dimension)None
Data importGoogle Analytics, CSV, logsCSV
APIFull REST + reporting APIBasic REST API
Plugin systemYes (marketplace with 100+ plugins)No
Multi-siteYes (unlimited)Yes
Team/rolesYes (granular permissions)Single admin
Cookieless modeYes (configurable)Always cookieless
GDPR complianceConfigurable (varies by setup)By default (no PII collected)
Docker imagematomo:5.8.0-apachearp242/goatcounter:2.7
LicenseGPL-3.0 (premium features paid)EUPL-1.2

Resource Usage

ResourceMatomoGoatCounter
RAM (idle)500 MB-1 GB20-30 MB
RAM (active)2-4 GB30-50 MB
CPUModerate-high (PHP + MySQL)Minimal
Disk (application)~500 MB~15 MB
External databaseMySQL or MariaDB requiredSQLite built-in
Containers2 (app + database)1
Minimum VPS2 GB RAM256 MB RAM
Monthly hosting cost$12-20/month$3-5/month

Matomo’s MySQL dependency and PHP runtime make it one of the heavier self-hosted analytics options. GoatCounter’s Go binary with SQLite is among the lightest.

Who Actually Needs Matomo’s Features?

Be honest with yourself about this list:

You need Matomo if:

  • You run an e-commerce store and track purchase funnels
  • You do A/B testing and need statistical significance calculations
  • You have a marketing team that needs segmented reports
  • You’re migrating from Google Analytics and want feature parity
  • You need to track authenticated user journeys across sessions
  • You have compliance requirements that demand detailed audit logs

GoatCounter is sufficient if:

  • You want to know how many people visited your site
  • You care about which pages are popular
  • You want referrer data to understand traffic sources
  • You run a blog, portfolio, documentation site, or side project
  • You value simplicity and low resource usage over feature depth

Most self-hosters fall in the second category. There’s no shame in admitting you don’t need funnel analysis for your homelab documentation site.

Setup Comparison

Matomo:

services:
  matomo:
    image: matomo:5.8.0-apache
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - matomo-html:/var/www/html
    environment:
      MATOMO_DATABASE_HOST: db
      MATOMO_DATABASE_DBNAME: matomo
      MATOMO_DATABASE_USERNAME: matomo
      MATOMO_DATABASE_PASSWORD: your-db-password
    depends_on:
      db:
        condition: service_healthy

  db:
    image: mariadb:11.7
    restart: unless-stopped
    environment:
      MARIADB_ROOT_PASSWORD: root-password-change-this
      MARIADB_DATABASE: matomo
      MARIADB_USER: matomo
      MARIADB_PASSWORD: your-db-password
    volumes:
      - matomo-db:/var/lib/mysql
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  matomo-html:
  matomo-db:

After starting, Matomo requires a web-based setup wizard: configure database, create admin account, add first website, install tracking code.

GoatCounter:

services:
  goatcounter:
    image: arp242/goatcounter:2.7
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - goatcounter-data:/data
    command: serve -listen :8080 -tls none -db sqlite3+/data/goatcounter.sqlite3

volumes:
  goatcounter-data:

Create site from CLI, add the script tag, done.

Migration from Google Analytics

Matomo has a direct Google Analytics import tool. It pulls historical data from GA3/GA4 into Matomo’s database, preserving traffic trends, top pages, and referrer data. If you’ve been running GA for years and want to keep that history, Matomo is the only self-hosted option that makes this easy.

GoatCounter has no GA import. You start fresh. For many people this is fine — historical analytics from a different tool aren’t that useful in practice. But if continuity matters to your reporting, this is a real limitation.

Privacy Comparison

Both can operate without cookies, but the defaults differ:

GoatCounter never sets cookies. Visitor counting uses a hash of IP + User-Agent + date, rotated daily. No consent banner needed. Zero configuration required for privacy compliance.

Matomo offers configurable privacy levels:

  • Default: first-party cookies (needs consent banner in EU)
  • Cookieless mode: similar to GoatCounter’s approach
  • Full anonymization: IP masking, no fingerprinting

Matomo’s flexibility means you can be GDPR-compliant, but you have to configure it correctly. GoatCounter is compliant by default because it never collects personal data.

FAQ

Yes, with a small JavaScript addition. Matomo tracks outbound links automatically via its tracking script.

Does Matomo have a free tier?

The core platform (self-hosted) is free and open source. Premium features (heatmaps, session recordings, A/B testing, funnel analysis) require a paid license. Many users run Matomo without premium features.

How much traffic can GoatCounter handle on SQLite?

~100K pageviews/day comfortably. The author runs the hosted service (goatcounter.com) on SQLite for many sites. Switch to PostgreSQL for higher volumes.

Can I run both temporarily?

Yes. Add both tracking scripts to your site during a transition period. GoatCounter’s ~3.5 KB script adds negligible load.

Final Verdict

GoatCounter for most self-hosters. If you’re replacing Google Analytics on a blog, documentation site, or personal project, GoatCounter gives you everything you’ll actually look at — in 25 MB of RAM with zero maintenance.

Matomo for businesses and marketers. If you need e-commerce tracking, conversion funnels, GA data import, segmented audiences, or a plugin ecosystem, Matomo is the only self-hosted option with that feature depth. Accept the resource cost as the price of feature parity with Google Analytics.

The gap between these tools is intentional. GoatCounter’s author explicitly rejects feature bloat. Matomo’s mission is to replace Google Analytics completely. Choose based on which philosophy matches your needs.

Comments