Open-source tools on GitHub

best free website analytics for small business github

A practical, non-technical guide to picking, installing and using free GitHub-hosted analytics (Umami, Ackee, Matomo, GoatCounter, PostHog) to improve SEO and site performance.

Self-hosted analytics give privacy, control, and leaner scripts that boost SEO and Core Web Vitals. This guide walks you through which tools fit small businesses, how to deploy them quickly, and how to turn data into SEO & performance wins.

0–$0
Software cost (open-source)
10–60 mins
Quick deploy with Docker
Privacy-friendly (no third-party trackers)
Improves
SEO, Core Web Vitals, conversion tracking

Why choose GitHub-hosted (open-source) analytics?

Small businesses care about cost, privacy, and performance. Open-source analytics from GitHub let you:

  • Run analytics without monthly SaaS fees
  • Serve a small, fast tracking script that improves Core Web Vitals vs heavy 3rd-party tags
  • Control data retention and privacy (GDPR/Australia-friendly)
  • Inspect and adapt the code — useful if you need custom events
Quick trade-offs:
Self-hosting = cheap + private + flexible, but requires a small amount of maintenance. If you prefer fully-managed analytics, Congero includes actionable monthly analytics as part of the website subscription; no setup or hosting required.
checking analytics
Tools referenced in this guide
Umami · Ackee · Matomo · GoatCounter · PostHog

Which GitHub-hosted analytics tool is right for my small business?

Here are the best open-source options that fit small, budget-conscious sites. Each entry shows the typical use-case and one-line deployment.

Umami

Lightweight, privacy-focused, easy Docker deploy
https://github.com/umami-software/umami

Best for: brochure sites and small shops that want simple page views, referrers, events and goals without cookies or heavy scripts.

Quick deploy: Docker + Postgres (10–30 mins). Minimal tracking script (~2KB gzipped).
Example docker-compose (summary)
version: '3'
services:
  umami:
    image: ghcr.io/umami-software/umami
    env_file: .env
    ports: ["3000:3000"]
  db:
    image: postgres:14

Ackee

Privacy-first, simple dashboard and event tracking
https://github.com/electerious/Ackee

Best for: basic pageview analytics, especially if you want a minimalist UI and to self-host on a small VPS.

Quick deploy: Node + MongoDB or Docker. Lightweight tracking and easy to embed.
Example: start with Docker or deploy to Railway/Render in minutes

Matomo

Full-featured, self-hosted Google Analytics alternative
https://github.com/matomo-org/matomo

Best for: businesses that want advanced segments, campaign tracking and migrations from Google Analytics. Heavier but very powerful.

Quick deploy: Docker or installer on Ubuntu (requires more resources than Umami/Ackee).

GoatCounter

Extremely simple, privacy-first and very small script
https://github.com/zgoat/goatcounter

Best for: content sites and blogs where you only need pageviews, referrers and simple filters. Ideal when speed is your top priority.

Quick deploy: single binary or Docker; script is ~1KB gzipped.

PostHog

Product & event analytics (open-source), advanced funnels
https://github.com/PostHog/posthog

Best for: businesses that want deep event tracking (clicks, signups) and funnel analysis. More complex to run than Umami/Ackee.

Quick selection rule:
  • Minimal + fastest: GoatCounter or Umami
  • Event tracking + light: Ackee or Umami
  • Full analytics & migrations: Matomo or PostHog

Quick deploy: get analytics running in 30–60 minutes

These steps assume you have a small VPS (DigitalOcean, Linode) or a Docker-friendly host (Render, Railway, Fly). If not, use a free-tier Postgres or MongoDB provider for small sites.

1) Pick a hostname & SSL

Choose analytics.yourdomain.com and point an A/CAA record to your server. Use Let's Encrypt for SSL (certbot) or your host's automatic TLS — HTTPS is required for modern browsers and to avoid mixed-content issues.

2) Docker compose (Umami example)

Save this as docker-compose.yml and add an .env with DB, SECRET keys. Then docker compose up -d.
version: '3'
services:
  db:
    image: postgres:14
    environment:
      POSTGRES_PASSWORD: example
    volumes:
      - db-data:/var/lib/postgresql/data
  umami:
    image: ghcr.io/umami-software/umami
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: postgres://postgres:example@db:5432/postgres
      UMAMI_DATA_FOLDER: /data
volumes:
  db-data:

3) Add the tracking script to your site

Most of these tools give a single-line script you paste before the closing <head> or at the end of <body>. Example Umami snippet:

<script async defer src="https://analytics.yourdomain.com/umami.js"></script>
<script>umami('setWebsiteId', 'YOUR_WEBSITE_ID')</script>

4) Verify and block internal traffic

Visit your site in an incognito window. The dashboard should show a visit within minutes. Configure IP exclusions to avoid counting your own visits.

5) Backups & updates

Back up the database weekly and apply updates monthly. For tiny sites, a VPS snapshot + DB dump is sufficient.

SEO metrics to track and how to act on them

An analytics tool is only useful when you use the data. Here are the core SEO metrics and concrete actions you can take.

1) Landing page performance (by URL)

Track top landing pages, bounce rate and time-on-page.

  • Action: Improve meta title & description for low-traffic pages with high bounce.
  • Action: Add clear CTA above the fold to reduce bounce and increase leads.

2) Organic search sources & keywords

Open-source analytics won't give keyword-level accuracy like Google Search Console — connect GSC for exact queries. Use analytics to confirm which landing pages receive organic clicks.

  • Action: For pages receiving organic visits but low conversions, add schema, local NAP and FAQ to improve relevance.

3) Conversion tracking (contact clicks, phone taps)

Define event goals: phone link clicks, "get quote" clicks, form submissions.

  • Action: Add event tracking for tel: links and form submissions. If an important page has traffic but no events, test new CTAs.

4) Referral & campaign UTM analysis

Tag your marketing links with UTM parameters. Your self-hosted analytics will record campaign performance.

  • Action: Double down on channels (e.g., Facebook group posts, local directories) that provide highest leads per visit.

Performance & Core Web Vitals: measuring and improving

Use analytics alongside Lighthouse, PageSpeed Insights, and Real User Monitoring (RUM) data to prioritise improvements.

Key metrics to track

  • LCP (Largest Contentful Paint)
  • CLS (Cumulative Layout Shift)
  • FID or INP (Interaction to Next Paint)
  • TTFB (Time to First Byte)
Note: many open-source analytics tools can capture RUM metrics via an additional small script or plugin.

Concrete fixes that improve SEO

  • Serve images in WebP/AVIF and use responsive srcset to cut load time.
  • Defer non-essential JS and inline critical CSS.
  • Use a fast CDN and enable HTTP/2 or HTTP/3.
  • Reduce third-party tags — prefer a single small analytics script like Umami or GoatCounter.
Practical test: Measure LCP before/after removing heavy analytics tags or deferring them. If LCP improves by >0.2s, your simpler analytics script is helping SEO.

A 30-day measurement plan for small businesses

Follow this simple plan to turn analytics into action.

  1. Week 0 — Install & verify: deploy and confirm data; set up Google Search Console and link both sources in a spreadsheet.
  2. Week 1 — Baseline metrics: record top 10 landing pages, top 5 referral sources, and LCP/CLS baseline.
  3. Week 2 — Set 3 goals: phone clicks, form submissions, and a micro-conversion (e.g., pricing page view). Implement event tracking.
  4. Week 3 — Run experiments: change CTA copy, compress images, or defer a heavy script. Keep tests small and only one change at a time.
  5. Week 4 — Report & act: compare baseline vs week results. Keep the winning changes and plan the next cycle.
Tip: schedule a monthly 30-minute review to check the dashboard, top pages, and conversion events. That small recurring habit drives consistent SEO improvements.

Advanced tips & integrations

1) Combine with Google Search Console

Use GSC for query data and your self-hosted analytics for behavioural signals. Match landing pages and prioritise pages that rank but underperform.

2) Use server-side event capture for forms

If your site already has a backend, fire events to the analytics API from the server when a lead is created to prevent ad-blocking from hiding conversions.

3) Export CSVs for deeper analysis

All the listed tools allow CSV export. Import into Sheets and join with Search Console data for quick SEO tests and A/B analysis.

4) Monitor uptime & alerts

Set simple alerts for big traffic drops (e.g., -50% day-on-day) — a drop often indicates indexing issues, robots.txt changes, or server problems.

Pro tip: If you don't want to self-host, Congero includes ready-to-read monthly analytics (visitor sources, top pages, conversion tracking) and will show you which pages to optimise for SEO — no technical maintenance required.

Frequently asked questions

Are these analytics truly free?
The software is open-source and free. You pay for hosting (VPS, container host) and a small amount of maintenance time. For tiny sites, hosting costs can be ~$5–10/month.
Will self-hosted analytics hurt my SEO?
No. In fact, replacing heavy third-party tags with a small, self-hosted script usually helps Core Web Vitals and can improve SEO. Ensure your analytics script loads async and is small.
Can I use both Google Analytics and a GitHub tool?
Yes. Use Google Analytics for deep organic/keyword integrations and BigQuery export if needed, and a lightweight open-source tool for privacy-first RUM and event validation. Be mindful of duplicate event counting.
I don't want to self-host — what's the easiest option?
Choose a hosted plan (some projects offer hosted versions) or use a service like Congero where analytics and monthly actionable reports are included with the website plan — no Docker, no maintenance.

Start tracking what matters — simply and privately

If you want control and a tiny script that improves site speed, pick Umami or GoatCounter and follow the quick-deploy section above. If you prefer a managed service with clear monthly analytics and recommendations, Congero includes built-in analytics as part of the website subscription — we handle the setup, reporting and SEO guidance.

Want help choosing? If you're a busy trades or service business, text us and we'll recommend the right setup or include analytics in your Congero site build.

Explore Our Topics

Business Types

Explore our business types articles and expert advice.

View Articles

Comparisons

Explore our comparisons articles and expert advice.

View Articles

Features

Explore our features articles and expert advice.

View Articles

Guides

Explore our guides articles and expert advice.

View Articles

Regions

Explore our regions articles and expert advice.

View Articles

Recent Articles

Get Started Right Now!

Enter your name and number and we'll get you started immediately. Get your demo in 60 seconds.

100% FREE TO TRY - We text once. No spam. No payment required.