invisit
All posts

By Miraç Berk23 min read

8 best Fathom Analytics alternatives in 2026, priced at your tier

Umami, Pirsch, Simple Analytics, invisit and 4 more Fathom alternatives priced at 100K, 1M and 2M pageviews, and which import your Fathom history.

A soft 3D price tag resting on a stack of light analytics cards beside a small balance scale, lit by violet dithered light with soft shadows.

The best Fathom Analytics alternative depends on whether you want to pay less than Fathom or see more than its counts. As of November 2026, Umami Cloud is the cheapest tool with events and funnels at Fathom’s own tiers (free to 100K events, $20 at 1M against Fathom’s $60), Pirsch is the only one that imports your Fathom history, and Cloudflare Web Analytics and GoatCounter cost nothing if page views are all you read.

The short answer, by the reason you are leaving:

Stay on Fathom if the reasons you picked it still hold. Fathom’s $15 plan includes 50 sites, unlimited email reports and a share link per client; its script measured 2,086 bytes gzipped, the smallest in this list; every plan has every feature; and when you go over, Fathom locks the dashboard but never stops collecting. Below 100K page views, the most any switch here saves you is $15 a month.

Why do people look for Fathom Analytics alternatives?

People leave Fathom Analytics for two kinds of reasons: the bill, and what the dashboard cannot show. Both are documented on Fathom’s own pages, and both are trade-offs Fathom makes on purpose.

The bill:

What Fathom cannot show:

Our Fathom vs invisit comparison goes through Fathom plan by plan; this post covers the whole field.

What to look for in a Fathom alternative

Someone leaving Fathom should compare alternatives on the price at their own tier and on what Fathom already gave them: many sites, a short-lived visitor hash, a tiny script and collection that never stops.

How much do Fathom alternatives cost at 100K, 1M and 2M pageviews?

At Fathom’s own tiers, Umami Cloud costs the least of the tools with events (free, $20 and $50 against Fathom’s $15, $60 and $100), Pirsch Standard and invisit undercut Fathom by $1 to $11, and Plausible and Rybbit cost more than Fathom at 100K and 1M. Prices are monthly on monthly billing, as of November 2026, each in the vendor’s own unit:

Tool 100K a month 1M a month 2M a month What counts toward the limit Source
Fathom (reference) $15 $60 $100 Pageviews, custom events, API requests Fathom
Umami Cloud Free (Hobby) $20 (Pro) $50 (Pro, overage) Page views, custom events, each stored property Umami
Pirsch Standard, Plus $12, $27 $54, $159 $99, $299 (5M step) Page views, custom events, 10% of session extensions Pirsch
Simple Analytics (Simple plan) $20 $60 $80 Pageviews and events Simple Analytics
Cloudflare Web Analytics Free Free Free No traffic limit Cloudflare
GoatCounter Free Free Free Fair use, no published number GoatCounter
invisit $14 $49 $99 (3M step) Page views, custom events, conversions, short-link clicks invisit
Plausible Starter, Business $19, $39 $69, $139 $89, $179 Pageviews and custom events Plausible
Rybbit Standard, Pro $19, $39 $69, $139 $99, $199 Page views, custom events, web vitals, outbound and autocaptured clicks Rybbit

Pirsch has no 2M step, so 2M is priced at its 5M step; invisit’s next step after 1M is 3M. Umami Pro bills $0.00003 for each event past 1M, so 2M is $20 plus $30.

The units change what the same site costs. A site with 900K page views and 50K checkout events that each carry an amount fits Fathom’s 1M plan at $60. On Umami Cloud, a checkout sent with revenue and currency properties is three events, so that month is 1.05M events: $21.50. On Rybbit, web vitals and autocaptured clicks fill the allowance alongside page views.

Fathom has no funnels at any price. At 100K, 1M and 2M, plans with funnels cost: Umami free, $20 and $50; invisit $14, $49 and $99; Rybbit Standard $19, $69 and $99; Pirsch Plus $27, $159 and $299; Plausible Business $39, $139 and $179.

A year paid up front costs ten months’ price on Fathom, Pirsch, Simple Analytics and Plausible, nine on invisit, and eight on Rybbit.

Fathom alternatives compared: sites, logins, history and privacy

Tool Free plan Sites Logins Funnels Visit view, heatmaps Imports Fathom history Visitor recognisable for Data stored Script, gzip
Fathom No, 7-day trial with a card 50 to 350, more in packs 1, plus share links No No, no Exports CSV 1 day US 2,086 B
Umami Cloud 100K events, 1 site 1, 20, unlimited by plan Owner, 10, unlimited Every plan Sessions; heatmaps $200 CSV by request, Pro Up to a month EU or US, chosen at signup 3,913 B
Pirsch No, 30-day trial, no card 50; unlimited on Plus Unlimited Plus Session analysis, no Yes, built in 24 hours Germany 3,498 B
Simple Analytics Yes, no events, 30 days 5 free, 10 on Simple 1, then $20 each Steps not tied to a visit No, no No, GA4 only Not at all Netherlands, Germany 4,793 B
Cloudflare Yes, no traffic cap 10 unproxied Account members No No, no No Not at all No EU-only option 10,253 B
GoatCounter Yes, donation-funded One site per domain Several, with roles No Optional pageview log, no No 8 hours, in memory Finland, Germany 3,319 B
invisit 20K events, 4 sites 4 free; no cap on paid Unlimited, three roles Every plan Yes, yes No 1 day Germany 8,542 B
Plausible No, 30-day trial, no card 1, 3, 10 by plan 1, 3, 10 by plan Business No, no CSV in its own format 24 hours Germany, EU-owned providers 2,485 B
Rybbit No, 7-day trial 5; unlimited on Pro 3; 100 on Pro Every plan Sessions, no No Across days unless salted Germany, Finland 11,753 B

Script sizes are the core tracker each tool’s standard snippet loads, compressed with GNU gzip 1.14 at -9 -n on November 3, 2026. Umami’s heatmaps and replays need its Business plan and a second recorder script.

What happens when you go over your plan?

Fathom never stops collecting when you go over: it emails you, sends reminders and a final notice, and then locks the dashboard and API until you upgrade or your usage falls back (plan limits). Plausible works the same way, Umami and Simple Analytics bill the extra instead, and Pirsch, Rybbit and invisit stop recording at some point.

Tool When you go over
Fathom Reminders, then dashboard and API locked; collection continues
Umami Cloud Pro $0.00003 per extra event, billed automatically; an optional spending budget stops recording instead (subscription)
Pirsch Dashboard stops at the day you hit the limit; collection continues for five more days, then stops until you upgrade or the limit resets
Simple Analytics On monthly billing the fee follows usage: last month, then the average of the previous three
Cloudflare No traffic limit
GoatCounter Free for “reasonable public usage”; “millions of pageviews/day” is not
invisit First month over recorded in full; in a second month over in a row, new events stop at the limit until you upgrade or the month turns
Plausible One month over is free; after two in a row, upgrade within a week or dashboards lock, and collection continues (plans)
Rybbit Sites stop collecting until the next month or an upgrade (billing)

If spikes are your worry, Fathom, Plausible, Umami (without a budget) and Simple Analytics keep every event. invisit’s tracker keeps answering normally while recording is paused, so your site is unaffected, but the gap in your data is real.

1. Umami Cloud: best for paying a third of Fathom’s price, with funnels

Umami Cloud costs a third of Fathom’s price at 1M page views and nothing below 100K, and it adds funnels, journeys, retention and sessions that Fathom does not have. Umami is MIT-licensed open source, so you can move to your own Node.js and PostgreSQL server later.

As of November 2026, Umami’s pricing has Hobby free up to 100K events (1 site, 6 months of data, no teammates, no API), Pro at $20 a month for 1M events and $0.00003 per event after that (20 sites, 10 members, 2 years of data), and Business at $200 for 10M with heatmaps, session replays and unlimited sites and members. Paid plans start with a 14-day trial.

What Umami does better than Fathom: funnels, journeys, retention, goals and attribution on every plan, free included, and sessions you can open one by one. Revenue comes from revenue and currency properties on every plan, and from Stripe, Paddle, Lemon Squeezy, Dodo Payments, Polar or WooCommerce from Pro (payment providers). Pro adds the API, an official MCP server and logins for ten people.

What Umami does worse: each stored property bills as one more event, so amounts and labels cost allowance. Umami’s visitor hash uses a salt that rotates monthly by default, so a returning visitor stays linked for up to a month (metric definitions), against a day on Fathom. Pro allows 20 sites against Fathom’s 50, data is kept 2 years on Pro where Fathom keeps it while you subscribe, and the EU or US region is picked at signup (FAQ).

Moving from Fathom: Umami has no Fathom importer. From Pro, Umami’s team imports CSV exports by request (import data), and the docs do not name Fathom as a source, so ask before counting on it. fathom.trackEvent('Checkout', { _value: 4900 }) becomes umami.track('Checkout', { revenue: 49, currency: 'USD' }): units, not cents (revenue).

Choose Umami Cloud to cut the bill and gain funnels, if 20 sites are enough. See Umami vs invisit.

2. Pirsch: best for keeping your Fathom history and your sites

Pirsch is the only tool here that imports Fathom’s export, and its Standard plan keeps what agencies like about Fathom (50 sites, email reports, access links) while adding unlimited members, for a little less money. Pirsch is a cookieless service from Emvi Software GmbH, made and hosted in Germany.

Pirsch counts page views, custom events and 10% of session-extension events. As of November 2026, Pirsch’s pricing puts Standard at $12 a month for 100K, $54 for 1M and $99 for 5M (there is no 2M step), and Plus at $27, $159 and $299. A year costs ten months’ price, and the trial runs 30 days without a card.

What Pirsch does better than Fathom: unlimited members with roles and unlimited data retention on Standard, events with up to 20 metadata pairs (events), session analysis, traffic spike notifications, a Search Console plugin, a URL shortener and webhooks. At 5M page views Standard costs $99 against Fathom’s $140. Pirsch hashes the IP address, User-Agent, date and a per-site salt, so a visitor is recognisable for 24 hours at most, and the IP address is never stored (privacy).

What Pirsch does worse: funnels, A/B tests, segmentation and revenue tracking need Plus, which costs $159 at 1M, more than two and a half times Fathom. The pricing page lists no heatmaps. At the limit, Pirsch limits your dashboard to the day you hit it and collects for five more days, so waiting leaves a gap where Fathom would keep counting. pa.js measured 3,498 bytes gzipped against Fathom’s 2,086.

Moving from Fathom: zip Fathom’s per-dimension CSV exports with their file names intact (pageviews-browser-...csv) and upload the ZIP under Import / Export, up to 100 MB at a time (Fathom import). Imported days are daily totals: filters are disabled when results include them, and they cannot be exported again (import limits). fathom.trackEvent('Newsletter Signup') becomes pirsch('Newsletter Signup'), and access links with an expiry date replace client share links.

Choose Pirsch for many sites, a team that reads the numbers, and history that comes with you.

3. Simple Analytics: best for one person at high volume who wants no identifier

Simple Analytics costs less than Fathom from 2M page views up, for one user, and it goes further on privacy: it keeps no visitor identifier at all, not even a daily hash. Simple Analytics is a Dutch company that stores data in the Netherlands and Germany (subprocessors).

Simple Analytics bills pageviews plus events. As of November 2026, the Simple plan costs $20 a month at 100K, $60 at 1M, $80 at 2M, $120 at 5M and $160 at 10M, against Fathom’s $15, $60, $100, $140 and $200 (plan details). On monthly billing the fee follows usage, set by last month and then by the average of the previous three (pricing FAQ). A year costs ten months’ price and the trial is 14 days without a card. The Free plan covers 5 sites with 30 days of history and a required badge, without events, goals or APIs.

What Simple Analytics does better than Fathom: a free plan, a lower price at high volume, an EU-owned vendor with EU storage, and no identifier. A page view counts as a visit when it arrives with no referrer or one from another site (unique visits).

What Simple Analytics does worse: one user is included and each extra one costs $20 a month, the Simple plan covers 10 sites against Fathom’s 50, and data is kept 3 years. Without an identifier, its visitors figure counts visits rather than people, and goals with several steps are not tied to one session. There is no revenue report. latest.js measured 4,793 bytes gzipped, more than twice Fathom’s.

Moving from Fathom: Simple Analytics imports Google Analytics 4 page views only (GA4 import), so keep your Fathom CSV files. Event names allow letters, digits and underscores, and other characters become underscores (events), so fathom.trackEvent('Newsletter Signup') becomes sa_event('newsletter_signup').

Choose Simple Analytics if you work alone at 2M page views or more and want no identifier at all. See Simple Analytics vs invisit.

4. Cloudflare Web Analytics: best free option for page views and Core Web Vitals

If page views, referrers, countries and page speed are all you read in Fathom, Cloudflare Web Analytics gives you those for nothing, with no traffic cap. It needs a Cloudflare account and one script tag, and your DNS can stay where it is (about).

Cloudflare’s limits page caps sites, not traffic: 10 per account for sites not proxied through Cloudflare, no limit for proxied ones. What Cloudflare does better than Fathom: it costs nothing at any volume, it reports Core Web Vitals, which Fathom does not measure, and any Cloudflare account can add members with their own roles (members).

What Cloudflare does worse: nearly everything Fathom adds on top of page views. Cloudflare’s FAQ lists no custom events and no UTM parameters, six months of data, and only the last 7 days kept unsampled before data is aggregated to around 10%. A visit is a page view whose referrer is not your own hostname (metrics), so there are no unique visitors. The beacon measured 10,253 bytes gzipped, about five times Fathom’s, ad blockers block it, and Web Analytics is not covered by Cloudflare’s EU Customer Metadata Boundary.

Moving from Fathom: there is no import and nothing to map. Events, goals and revenue have no home.

Choose Cloudflare Web Analytics for docs, a personal site or a side project where page views and page speed are all you read.

5. GoatCounter: best free counter for a personal site or small business

GoatCounter is the closest thing to Fathom’s plain dashboard that costs nothing: an open-source counter of pages, referrers, campaigns, browsers, systems, locations and screen sizes. GoatCounter.com is donation-supported and run by one developer, Martin Tournoij, from Ireland.

GoatCounter’s terms say the service is free for “reasonable public usage”: a personal website or a small-to-medium business is fine, “millions of pageviews/day” is not. There is no paid plan and no published monthly number. Data is stored at Hetzner in Finland and Germany (privacy policy), and the code is under a lightly modified EUPL 1.2, so you can self-host it if you outgrow fair use.

What GoatCounter does better than Fathom: the price, the license, and a stricter storage model. GoatCounter stores aggregate tables per hour or day, never the IP address or full User-Agent, and keeps the session key (site, User-Agent and IP) in memory for 8 hours only (sessions). count.js measured 3,319 bytes gzipped.

What GoatCounter does worse: an event is a path flagged as an event, with no properties and no value (events), and there are no funnels, revenue or heatmaps. Each domain needs its own site, and support is one developer answering GitHub issues and email. GoatCounter’s FAQ says most ad blockers block goatcounter.com and estimates that about a third of pageviews are missed.

Moving from Fathom: GoatCounter can import server log files, and documents no import from Fathom. fathom.trackEvent('Newsletter Signup') becomes window.goatcounter.count({ path: 'newsletter-signup', event: true }).

Choose GoatCounter if your Fathom bill pays for a personal site’s counts, and a one-person service is an acceptable risk.

6. invisit: best for funnels, heatmaps, visit timelines and payment revenue

invisit, the tool we build, keeps Fathom’s cookieless approach and adds what Fathom leaves out: funnels, every visit step by step, heatmaps, and revenue read from your payment provider, with a login for every teammate. invisit is a hosted service with an MIT tracker and SDKs and a proprietary backend, and it stores data in Falkenstein, Germany.

invisit never bills bots, crawler reads, web vitals or heatmap clicks. As of November 2026 the free plan covers 20,000 events a month on 4 sites, commercial use allowed, and paid plans cost $14 for 100K, $49 for 1M and $99 for 3M (pricing). A year costs nine months’ price, and the trial is 14 days without a card.

What invisit does better than Fathom: events with up to 32 properties, funnels of 2 to 8 steps inside one visit, and every visit’s pages and events in order, live in the dashboard and at any age through the REST API and MCP server. Heatmaps show clicks, rage clicks and dead clicks per element, and scroll depth in 5% bands. Revenue comes from Stripe, Paddle, Polar, Lemon Squeezy, Creem or Dodo Payments, with refunds, disputes, fees and net, and the last 90 days backfilled on connect (connect a provider). Workspaces give unlimited members viewer, member or owner roles, and traffic alerts go to Slack, Discord, ntfy or a webhook.

What invisit does worse: the core script is about 8.5 KB gzipped, about four times Fathom’s 2.1 KB. invisit cannot import your Fathom history, sends no scheduled email reports, has no Search Console integration or GA4 import, no self-hosting and no session recordings, and it does not attribute revenue to sources or campaigns. In a second month over the limit, new events stop being recorded, where Fathom keeps collecting. Cloudflare, a US company, runs invisit’s DNS and CDN.

Moving from Fathom: fathom.trackEvent('Newsletter Signup') becomes track('newsletter_signup') (custom events), and _value gives way to a payment provider connection. See Fathom vs invisit for the plan-by-plan comparison.

Choose invisit when the questions Fathom cannot answer are why you are leaving, and a script about four times larger is acceptable.

7. Plausible: best for EU-stored analytics and a team, at about Fathom’s price

Plausible fixes Fathom’s storage question: it keeps visitor data at Hetzner in Falkenstein, Germany, and uses only European-owned providers, CDN included (EU hosting). Plausible is cookieless, open source under AGPLv3, and close to Fathom in spirit and script weight.

Plausible bills pageviews plus custom events, and outbound clicks, downloads and form submissions count as custom events (plans). As of November 2026, Plausible’s pricing is $19, $69 and $89 at 100K, 1M and 2M on Starter (1 site, 1 person), $29, $104 and $134 on Growth (3 sites, 3 people), and $39, $139 and $179 on Business (10 sites, 10 people), the plan with funnels, custom properties, revenue goals and the Stats API. A year costs ten months’ price, and the 30-day trial needs no card.

What Plausible does better than Fathom: EU storage with EU-owned providers, team seats from Growth, funnels and properties on Business, and revenue goals credited to the campaign and landing page of the visit. Plausible sends email and Slack reports, imports GA4, can be self-hosted as Community Edition, and its per-site script measured 2,485 bytes gzipped, 399 bytes more than Fathom’s.

What Plausible does worse: it costs more than Fathom at 100K and 1M on every plan, and Business at 1M is $139, 2.3 times Fathom’s $60. Business stops at 10 sites, so an agency with 40 client sites on Fathom has no self-serve Plausible plan. Plausible rules out individual visit views and heatmaps by design (when not to use Plausible), and revenue still comes from your code.

Moving from Fathom: Plausible has no Fathom importer, but its CSV import accepts files from other tools in its own format: ten imported_* tables, one row per day. Reshaping Fathom’s daily CSVs into that format is possible and manual. fathom.trackEvent('Checkout', { _value: 4900 }) becomes plausible('Checkout', { revenue: { amount: 49, currency: 'USD' } }) on Business (revenue).

Choose Plausible if storage in the EU decides it and 10 sites are enough. See Plausible vs invisit and our Plausible alternatives.

8. Rybbit: best for session replay and funnels in one cookieless tool

Rybbit is the pick when “more than counts” means watching sessions: funnels, journeys, retention, sessions and user profiles on Standard, and session replay on Pro. Rybbit is open source under AGPL-3.0, hosted as Rybbit Cloud on Hetzner in Germany and Finland (subprocessors), or self-hosted.

Rybbit counts events per organization: page views, custom events, web vitals, outbound clicks and autocaptured clicks, copies, form submits and input changes (billing). As of November 2026, Rybbit’s pricing is $19, $69 and $99 at 100K, 1M and 2M on Standard (5 sites, 3 members, 3 years of data) and $39, $139 and $199 on Pro (unlimited sites, session replay, 5 years). A year costs eight months’ price and the trial lasts 7 days.

What Rybbit does better than Fathom: every session with its pages and events, funnels, web vitals and error tracking on its cheapest plan, and replay at $139 for 1M.

What Rybbit does worse: by default the visitor ID is a hash of IP address and User-Agent that persists across days unless you turn on User ID Salting, and Rybbit’s site settings docs say the unsalted ID may count as personal data under the GDPR. Fathom’s daily hash is stricter. Rybbit’s script measured 11,753 bytes gzipped, 5.6 times Fathom’s, autocaptured clicks fill the allowance, sites stop collecting at the limit, and its docs describe no heatmaps or revenue reports.

Moving from Fathom: Rybbit imports Umami, Simple Analytics and Plausible exports, not Fathom’s (data import). fathom.trackEvent('Newsletter Signup') becomes window.rybbit.event('Newsletter Signup').

Choose Rybbit if you want replay next to traffic and will configure salting.

When should you stay on Fathom?

Stay on Fathom when one of its strengths is a requirement. No alternative here has all of them at once.

If saving money is the only reason, the like-for-like savings are small: at 1M, Pirsch Standard saves $6 a month and invisit $11, and at 2M both save $1. The large savings, Umami Cloud and the free tools, come with fewer sites or fewer reports.

How do you switch from Fathom without losing your history?

Export from Fathom while your subscription is active, import where your new tool accepts it, run both trackers for two to four weeks, then remove Fathom’s script and cancel. When the paid period ends, Fathom queues your sites and data for deletion within up to 60 days (cancel).

  1. Export each site. In Fathom’s custom export, choose Pageviews, All Time and Daily, and export once per dimension (Page, Referrer, Country, Browser, Device Type, Operating System, UTM parameters) with every metric, plus once with no dimension for totals. Repeat with Events and Event Name. Use the dashboard, not the API, since every API request counts toward your pageviews.
  2. Save Download Dashboard for All Time too: a ZIP with one readable CSV per report.
  3. Import where you can. Pirsch takes the per-dimension ZIP as is. Plausible takes CSV files reshaped into its imported_* format. Umami Cloud imports CSV by request from Pro. Everywhere else, the CSV files are your archive.
  4. Install the new tracker next to Fathom’s. Both can run on the same pages.
  5. Rewrite each fathom.trackEvent() call with the table below, and convert _value from cents.
  6. Replace what clients relied on: share links and email reports.
  7. Compare both dashboards for two to four weeks. Expect differences: Fathom counts people with a daily hash, Simple Analytics and Cloudflare count referrer-based visits, and Umami links a visitor for a month.
  8. Remove Fathom’s script and cancel under Settings, Billing.
Tool fathom.trackEvent('Newsletter Signup') becomes Where _value goes
Umami umami.track('Newsletter Signup') revenue and currency properties, two more events
Pirsch pirsch('Newsletter Signup') Event metadata; revenue tracking needs Plus
Simple Analytics sa_event('newsletter_signup') Event metadata; no revenue report
Cloudflare Nothing Nowhere; no custom events
GoatCounter window.goatcounter.count({ path: 'newsletter-signup', event: true }) Nowhere; events carry no value
invisit track('newsletter_signup') Read from your payment provider instead
Plausible plausible('Newsletter Signup') revenue: { amount, currency }, on Business
Rybbit window.rybbit.event('Newsletter Signup') An event property; no revenue report

The amount itself is the easiest thing to get wrong. Fathom takes cents; Umami and Plausible take units with a currency:

src/checkout.ts
const cents = 4900 // a $49.00 order

// Before: Fathom, value in cents
fathom.trackEvent('Checkout', { _value: cents })

// After: Umami, value in units (each property bills as one more event)
umami.track('Checkout', { revenue: cents / 100, currency: 'USD' })

// After: Plausible Business, value in units
plausible('Checkout', { revenue: { amount: cents / 100, currency: 'USD' } })

Before you cancel Fathom