GoatCounter

Active

GoatCounter is an open-source web analytics tool under the EUPL-1.2 license, available as a free hosted service funded by donations or for self-hosting, which its author suggests for heavy traffic. It counts visitors without cookies, and the hosted service stores data in the EU.

  • Web analytics
  • Cloud or self-hosted
  • Based in Ireland
  • Founded 2019
  • Checked 17 Sep 2026

Tracking script

3.24 KB compressed

9.00 KB uncompressed · measured 17 Sep 2026

0.5 KB1 KB5 KB10 KB50 KB100 KBAckee: 8.08 KBAdobe Analytics: 52.0 KBAmplitude: 64.0 KBAptabase: 1.27 KBCabin: 1.17 KBCounter.dev: 0.43 KBCountly: 36.4 KBCrazy Egg: 2.65 KBDataFast: 5.13 KBDatabuddy: 11.0 KBFathom Analytics: 2.04 KBFullstory: 93.7 KBGoogle Analytics 4: 145.9 KBHeap: 6.01 KB (loader file)Humblytics: 16.2 KBKoko Analytics: 0.81 KBLite Analytics: 1.09 KBLitlyx: 1.17 KBMatomo: 21.6 KBMicroanalytics: 1.15 KBMicrosoft Clarity: 0.51 KB (loader file)Mixpanel: 32.7 KBOpenPanel: 3.20 KBOvertracking: 4.80 KBPendo: 233.1 KBPirsch: 3.42 KBPiwik PRO: 22.9 KBPlausible: 2.43 KBPostHog: 95.3 KBPretty Insights: 6.83 KBRybbit: 10.6 KBSeline: 1.89 KBSentinelPro: 5.19 KBSimple Analytics: 3.74 KBStatable: 2.18 KBSwetrix: 6.05 KBTelemetryDeck: 0.47 KBTinyAnalytics: 6.99 KBUmami: 2.26 KBVemetric: 2.71 KBVisitors: 6.99 KBGoatCounter: 3.24 KB3.24 KB
Lighter than 23 of the 39 other measured scripts. Each line is one tool; hover to see which.

Price

FromFree
At 100k pageviewsFree

Billed by pageviews · checked 17 Sep 2026

  • Free (donation-supported)Free

Privacy and data

Cookies
None
no cookies or stored ID by default
Data location
EU
Cloud or self-hosted
Self-hosting
Available
Source code
Open source

Plans

Free plan
Yes
no fixed limit published
Billing unit
Pageviews
Sites on entry plan
Unlimited
Data retention
Configurable

Strengths

  • Stores nothing in the visitor’s browser: the privacy policy says GoatCounter uses no cookies, local storage or cache and keeps IP addresses and user agents only in memory, for up to eight hours.
  • Statistics are saved as separate hourly and daily aggregates, so, according to the vendor, browser data cannot be linked to screen sizes or locations. Individual pageviews are stored only if you switch them on.
  • In the site settings, Data collection lets you turn off referrers, browser details, screen sizes, countries, regions and sessions one by one, and language collection is off by default.
  • Pageviews can also come from an image pixel without JavaScript, from your backend through the API or from web server log files sent with the goatcounter import command.
  • The dashboard can stay private, open with a secret token or be public, and each user can choose email reports daily, weekly, every two weeks or monthly.

Watch-outs

  • Most ad blockers block goatcounter.com, and the author estimates that about a third of pageviews are missed. According to the FAQ, a custom domain does not change that, while self-hosting or log import does.
  • Events are recorded like pages under a name you choose, without event properties, and the page where an event happened is kept only if you add it to the name.
  • By default, regions are collected only for the United States, Russia and China, and a self-hosted server needs a City GeoIP database for them because the built-in one covers countries.
  • Do Not Track signals are ignored by design; the FAQ provides a snippet that keeps the script from sending pageviews when a browser sends one.
  • The WordPress plugin in the integration list is the author’s GitHub project, last updated in May 2020.

Who it suits

GoatCounter is open-source web analytics that you can use as a hosted service at no charge or run on your own server. GoatCounter.com is offered free for reasonable public use: the terms say a personal website or a small-to-medium business is fine, while millions of pageviews a day are not, and the homepage suggests self-hosting for more serious purposes.

The dashboard lists pages, referrers, campaigns, browsers, operating systems, screen sizes and locations. By default it counts visits rather than every page load, and it has no goals, funnels, time on site or bounce rate.

The code is licensed under a slightly modified EUPL 1.2; see what “cookieless” means here for how tools like this count visitors.

Setup

On GoatCounter.com, sign up with an account name, which becomes your subdomain, and an email address, then copy the script tag from the Site code link in the dashboard menu into your pages. The integration list also covers Gatsby, Publii, schlix, Write.as and WordPress, and new pageviews appear within about ten seconds.

To self-host, download a release binary for Linux or FreeBSD or use the official Docker image. The only dependency is an SQLite file or a PostgreSQL database. The serve command listens on port 8080 and can obtain TLS certificates through ACME, and you create the first site in the web wizard or on the command line.

  • Single snippet
  • WordPress plugin (partly)
  • First-party proxy
  • Public API
  • Data export
  • Email reports
  • Public dashboard

Moving from another tool

GoatCounter imports its own CSV exports on the Import/Export tab of the settings, with an option to clear existing pageviews first, and the goatcounter import command sends a CSV export or web server log files to any GoatCounter server through the API. A CSV export contains only pageviews stored while individual pageviews were switched on, which is off by default.

GoatCounter.com also offers a JSON export and import of the aggregated statistics, which the changelog lists as not yet part of a release. From Google Analytics, only a report of totals per path can be uploaded, and those totals go to the visitor counter, not to the dashboard.

Features

As documented on the vendor’s own pages. “Partly” means the feature has limits or is only on some plans.

Tracking & Reporting

  • Pageviews & visitors: yes
  • Live visitor count: no
  • Top pages report: yes
  • Top referrers: yes
  • UTM campaign tracking: yes
  • Country & city breakdownPartly
  • Device, browser, OS: yes
  • Bounce / engagement: no
  • Time on site: no
  • Custom eventsPartly
  • Goals / conversions: no
  • Funnels: no
  • Outbound link tracking: no
  • File download tracking: no
  • 404 / error tracking: no

Pricing & Plans

  • Unlimited sites on entry plan: yes

Privacy & Compliance

  • Cookieless by default: yes
  • No personal data collected (vendor’s position): yes
  • No consent banner needed (vendor’s position): yes
  • Data hosted in EU: yes
  • Data hosted in US: no
  • Self-hostable: yes
  • Open source: yes
  • Data retentionConfigurable
  • Bot & spam filtering: yes

Setup & Integrations

  • Single-snippet install: yes
  • WordPress pluginPartly
  • Proxy / first-party domain: yes
  • Public API: yes
  • Data export (CSV/JSON): yes
  • Google Search Console connector: no
  • Email digests: yes
  • Slack / webhook alerts: no
  • Public shareable dashboard: yes

Platforms & frameworks

What the vendor documents. A platform that is not listed has no guide, plugin or package from the vendor.

  • Next.jsPartly
  • Static sites (GitHub / GitLab Pages)Partly
  • Server-side tracking: yes

Questions and answers

Does GoatCounter use cookies?

No. The privacy policy says GoatCounter stores nothing in the visitor’s browser and keeps the IP address and user agent only in memory, for up to eight hours, to count visits. The author argues that a consent notice is probably not needed, adds that he is not a lawyer and suggests consulting one for detailed advice.

Is GoatCounter free?

Yes. GoatCounter.com is free for reasonable public use and is funded by donations; the terms say a personal site or a small-to-medium business is fine, but millions of pageviews a day are not. Self-hosting is free under the open-source license.

Where does GoatCounter store data?

In Finland and Germany. GoatCounter.com stores data on Hetzner servers there, according to the privacy policy, and the service is operated from Ireland. A self-hosted installation keeps data in its own SQLite file or PostgreSQL database.

Can I run GoatCounter on my own server?

Yes. Release binaries and a Docker image are available, and the only dependency is an SQLite file or a PostgreSQL database, which the README recommends for larger sites. The FAQ adds that a self-hosted installation loads nothing from goatcounter.com, so ad blockers do not block it.

Sources and checks

Status
Active, checked 17 Sep 2026
Prices
Checked 17 Sep 2026 on the vendor’s pricing page ↗
Tracking script
Measured 17 Sep 2026: downloaded and compressed the same way for every tool
Features
From the vendor’s pages, checked 18 Sep 2026
This page
Text updated 17 Sep 2026

How each value is collected: methodology. Why tools get no overall score: our reasoning.

Similar tools

Same category, ordered by how many traits they share with GoatCounter: cookie handling, self-hosting and open code.

Compare GoatCounter with another tool →