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.
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
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
Best for: brochure sites and small shops that want simple page views, referrers, events and goals without cookies or heavy scripts.
version: '3'
services:
umami:
image: ghcr.io/umami-software/umami
env_file: .env
ports: ["3000:3000"]
db:
image: postgres:14
Ackee
Best for: basic pageview analytics, especially if you want a minimalist UI and to self-host on a small VPS.
Matomo
Best for: businesses that want advanced segments, campaign tracking and migrations from Google Analytics. Heavier but very powerful.
GoatCounter
Best for: content sites and blogs where you only need pageviews, referrers and simple filters. Ideal when speed is your top priority.
PostHog
Best for: businesses that want deep event tracking (clicks, signups) and funnel analysis. More complex to run than Umami/Ackee.
- 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)
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)
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.
A 30-day measurement plan for small businesses
Follow this simple plan to turn analytics into action.
- Week 0 — Install & verify: deploy and confirm data; set up Google Search Console and link both sources in a spreadsheet.
- Week 1 — Baseline metrics: record top 10 landing pages, top 5 referral sources, and LCP/CLS baseline.
- Week 2 — Set 3 goals: phone clicks, form submissions, and a micro-conversion (e.g., pricing page view). Implement event tracking.
- Week 3 — Run experiments: change CTA copy, compress images, or defer a heavy script. Keep tests small and only one change at a time.
- Week 4 — Report & act: compare baseline vs week results. Keep the winning changes and plan the next cycle.
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.
Frequently asked questions
Are these analytics truly free?
Will self-hosted analytics hurt my SEO?
Can I use both Google Analytics and a GitHub tool?
I don't want to self-host — what's the easiest option?
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.