OmniFeed Search

GoatCounter

Small open-source web analytics app that runs as a single binary

Visit goatcounter.com

Our verdict

#3 of 4 in Self-hosted web analytics · Lightest to run

Pros

  • Nothing to run beside the program itself
  • No cookies, and the README says it doesn't need a GDPR notice
  • Counts visitors without JavaScript through an image tracker or server logs
  • Exports every individual page view as CSV

Cons

  • Goals, funnels, revenue reports and a view of current visitors aren't documented; statistics refresh every 10 seconds
  • No release in almost a year
  • The changelog says imported Google Analytics reports only correct the visitor counter and don't show on the dashboard

Who should skip:Sites that need conversion or revenue reports, which GoatCounter's documentation doesn't cover.

Read the full review →

Rankings and alternatives

Self-hosted web analytics scores

Evaluated Nov 7, 2026 Evidence ↓
  • Setup and upkeep 5

    5/5 means: One program with nothing else to run; data can live in a local file

    One statically compiled binary (or Docker image) whose only dependency is a SQLite database file or a PostgreSQL connection, so nothing else has to run.

  • Reports beyond page views 2

    2/5 means: Two of the six

    Two of the six: click and custom events, and campaigns from UTM parameters. Goals, funnels and revenue tracking are not documented, and statistics refresh every 10 seconds with no view of current visitors.

    Rests partly on what the sources don't mention, which is a weaker signal than what they say.

  • Ways to collect data 4

    4/5 means: Three of the four

    Three of the four: a 1×1 image tracker, the /api/v0/count API for backends, and log file import with the goatcounter import command. No official mobile SDK is documented.

  • Import from other tools 2

    2/5 means: Imports only files in the product's own format: its own exports, or other data converted to that format first

    Imports its own CSV exports, which can carry data from other systems converted to that format. Google Analytics reports can be imported, but the changelog says they only fix totals on the visitor counter and don't show on the dashboard.

  • Export and API 4

    4/5 means: Three of the four

    Three of the four: a CSV export of every pageview, an API for dashboard statistics, and an API to manage sites. No download of the dashboard's reports as files is documented.

  • Team access 4

    4/5 means: Four of the five

    Four of the five: several users, a read-only access level, a dashboard anyone with a secret token can view, and TOTP two-factor login. No single sign-on is documented.

    Rests partly on what the sources don't mention, which is a weaker signal than what they say.

  • Interface languages 4

    4/5 means: 25 to 44 languages

    The repository has 27 translation files besides the template, which make 26 languages once Chinese counts once (Norwegian Bokmål and Nynorsk are separate written languages). How complete each translation is isn't documented.

  • Active maintenance 2

    2/5 means: Within the last 12 months

    Latest release v2.7.0 on 2025-12-15, within twelve months but not six months of this evaluation.

Evidence and sources

Self-hosted web analytics scores

Setup and upkeep 3 quotes
  • “The release page has binaries for several platforms. These are statically compiled and contain everything you need.”
    github.com/arp242/goatcounter · checked
  • “The only dependency is somewhere to store a SQLite database file or a PostgreSQL connection.”
    github.com/arp242/goatcounter · checked
  • “GoatCounter is available on DockerHub at arp242/goatcounter.”
    github.com/arp242/goatcounter · checked
Tracking without a consent banner 3 quotes
  • “Privacy-aware; doesn’t track users with unique identifiers and doesn't need a GDPR notice.”
    github.com/arp242/goatcounter · checked
  • “Identify unique visits without cookies using a non-identifiable hash”
    github.com/arp242/goatcounter · checked
  • “The short version is that GoatCounter probably doesn’t require a GDPR consent notice, on the basis that 1) no personally identifiable information is collected, and 2) it is in the legitimate interest of a site’s owner to see how many people are visiting their site.”
    goatcounter.com/help/gdpr · checked
Reports beyond page views 3 quotes
  • “GoatCounter will automatically bind a click event on any element with the data-goatcounter-click attribute”
    goatcounter.com/help/events · checked
  • “Campaigns are tracked automatically based on URL query parameters:”
    goatcounter.com/help/campaigns · checked
  • “For reasons of efficiency the statistics are updated once every 10 seconds.”
    goatcounter.com/help/faq · checked
Ways to collect data 3 quotes
Import from other tools 3 quotes
Export and API 3 quotes
  • “GoatCounter can export a CSV of all pageviews.”
    goatcounter.com/help/export · checked
  • “The GoatCounter API can be used to manage sites, users, export data, or build your own dashboard.”
    goatcounter.com/help/api · checked
  • “With the /api/v0/stats/* endpoint you get retrieve the dashboard statistics.”
    goatcounter.com/help/api · checked
Team access 4 quotes
Interface languages 1 quote
  • “28 files: be-BY.toml bg-BG.toml cs-CZ.toml da-DK.toml de-DE.toml en-GB.toml es-CL.toml fi_FI.toml fr-FR.toml hi.toml id-ID.toml it-IT.toml ja-JP.toml ko-KR.toml nb-NO.toml nl-NL.toml nn-NO.toml pl-PL.toml pt-BR.toml ro-RO.toml ru-RU.toml sk-SK.toml template.toml th-TH.toml tr-TR.toml uk-UA.toml zh-CN.toml zh-TW.toml”
    api.github.com/repos/arp242/goatcounter/contents/i18n · checked
Active maintenance 1 quote

Facts

License 2 quotes
Runs on 2 quotes
  • “The release page has binaries for several platforms. These are statically compiled and contain everything you need.”
    github.com/arp242/goatcounter · checked
  • “GoatCounter is available on DockerHub at arp242/goatcounter.”
    github.com/arp242/goatcounter · checked
Needs 1 quote
  • “The only dependency is somewhere to store a SQLite database file or a PostgreSQL connection.”
    github.com/arp242/goatcounter · checked

Other quotes

Not cited by a score or fact 3 quotes
  • “SQLite should work well for most smaller sites, but PostgreSQL gives better performance especially for larger sites.”
    github.com/arp242/goatcounter · checked
  • “Accessibility is a high-priority feature, and the interface works well with assistive technology such as screen readers.”
    github.com/arp242/goatcounter · checked
  • “By my estimate about a third of pageviews are missed due to adblockers”
    goatcounter.com/help/faq · checked