Umami vs Google Analytics
Umami is open source and free to run on your own server, and its cloud plan is free for one site up to 100,000 events a month. Google Analytics 4 is free at any size and does far more, but it sets two cookies, its tag weighs 154 KB to Umami's 2.3 KB, and it sent a page view for every bot in our lab. Here's what each one costs, takes to run and counts.
What each script weighs
Kilobytes a visitor downloads, compressed. Less is faster.
Measured in our tracker lab on 13 October 2026; Google's tag is at its lightest here, with nothing configured.
Umami is free the way a puppy is free. Nobody charges you for it, but you feed it, house it and take it to the vet. Run it on your own server and the software costs nothing; the server, the upgrades and the security patches are yours. Umami's cloud has a free plan too, for one small site.
Google Analytics 4 is free in a different way. It costs nothing at any size and does far more, and in return it sets two cookies, ships a heavy script and takes a while to learn.
We put both in our tracker lab on 13 October 2026, along with Nora Analytics, which we make, and read both makers' pages and Umami's code that day. Umami's script weighs 2.3 KB. Google's tag weighs 154 KB, about 67 times as much.
Which one should you use?
Umami
If you'll run your own server, or have one small site
It's open source (MIT), free to self-host on Node.js and PostgreSQL, and free in the cloud for one site up to 100,000 events a month. No cookies, and a 2.3 KB script. Its bot filter reads only the user agent.
Google Analytics 4
If you need Google Ads, Search Console or BigQuery
It's free at any size and goes far deeper. It also sets two cookies that need consent in Europe, ships a 154 KB tag, and sent a page view for every automated visitor in our lab.
Nora Analytics
If you want free hosting past 100k, with bots labelled
Free up to 1 million visitors a month, nothing to run, and every page view labelled person, AI agent or bot. It's new: it launches on 1 November 2026, is hosted in the US and can't be self-hosted.
We make Nora Analytics. Everything about Umami and Google Analytics links to their own pages or code, and every number we measured comes from our tracker lab, run the same way for all three.
Umami and GA4 side by side
| Umami | Google Analytics 4 | Nora Analytics | |
|---|---|---|---|
| Price at 100k page views | $0 on Hobby if nothing else is counted; $20 on Pro | Free | Free |
| Free option | Cloud Hobby: 1 site, 100k events, kept 6 months; self-hosting | Free | Free to 1M visitors a month |
| Where the data lives | Cloud in the US or Germany, chosen at sign-up; self-hosted wherever you run it | Google's data centres | United States, Google Cloud |
| Run it on your own server | Yes: Node.js and PostgreSQL | No | No |
| Cookiesmeasured | None | _ga_<property>, _ga | None |
| Script weightmeasured | 2.3 KB | 154 KB | 2.7 KB |
| Ad blockersmeasured | Script blocked | Script blocked | Not blocked |
| Bot filtering | Known bot user agents only | Known-bot list; the number removed is never shown | Every page view labelled, with the test that caught it |
| Import Google Analytics history | No | Not applicable | No |
| Traffic from AI assistants | LLM channel, since June 2026 | AI Assistant channel, since May 2026 | Yes |
| AI agents told apart from people | No | No | Yes, on every page view |
Notice the row about your own server. It's the one thing on this table that only Umami offers.
What Umami costs, and what "free" covers
Umami is free in two ways, and they cover different things. Umami Cloud's Hobby plan costs nothing and needs no server. Self-hosting costs nothing in licences, but you run the server. Pro, at $20 a month, sits between them (pricing, Cloud and self-hosted). Umami Software, Inc. runs Cloud in the United States or Germany, and you pick one at sign-up (terms).
| Cloud Hobby, $0 | Cloud Pro, $20 a month | Self-hosted, $0 plus your server | |
|---|---|---|---|
| Events a month | 100,000 | 1 million, then $0.00003 each | No plan limit; your server sets it |
| Websites | 1 | Up to 20 | No plan limit |
| Team members | None | Up to 10 | Your own users and teams |
| Data kept | 6 months | 2 years | Until you delete it |
| API | No | Yes | Yes |
| Email reports | No | Yes | No, Cloud only |
| Session replays and heatmaps | No | No; Business plan, $200 a month | Yes, since v3.1 and v3.2 |
| Importing data | No | Yes, by Umami's team | It is your database |
Notice the replays row. Self-hosting gets you the session replays and heatmaps that Cloud keeps for its $200 Business plan, while email reports go the other way.
What counts as an event. On Cloud, each page view is one event, each custom event is one, and each property stored with an event is one more (Cloud FAQ). Say you send a sign-up click with two properties, the plan and the source. That's three events on top of its page view. So Hobby's 100,000 events hold 100,000 page views only if you track nothing else.
Umami doesn't say what happens when Hobby goes over. Paid plans keep collecting and bill the extra. They come with a 14-day trial, and prices are published per month only.
Free hosting for self-hosters. Developers often try to run Umami on free tiers. Vercel's free Hobby plan is for personal, non-commercial use only (Vercel). Supabase's free database holds 500 MB (Supabase), and Neon's free plan gives you 1 GB per project (Neon). A self-hosted Umami keeps every event until you delete it (FAQ), so the database is what runs out. We haven't measured how many events fit in a gigabyte.
Agencies outgrow Hobby first. It allows one site and no team; Pro covers 20 sites and 10 people.
What it costs at three sizes of site
Umami at three sizes of site
Its cheapest plan at each size, in US dollars a month, billed monthly
Google Analytics 4 and Nora Analytics: free at all three.
| Page views a month | Umami | Google Analytics 4 | Nora Analytics |
|---|---|---|---|
| About 10,000 | $0 | $0 | $0 |
| About 100,000 | $0 | $0 | $0 |
| About 1 million | $20 | $0 | $0 |
| Free plan | Cloud Hobby plan free for 1 site and 100k events a month, kept 6 months; free to self-host | Free. GA4 360, the paid edition, is sold through Google sales; third parties put it from about $50,000 a year | Free forever up to 1 million visitors a month, no card |
| What is counted | events (page views, custom events and each stored property)Hobby is free up to exactly 100k events; Pro is $20 a month for 1 million, then $0.00003 an event | eventsFree with no monthly event cap; BigQuery daily export is capped at 1 million events a day on the free edition | visitorsFree up to 1 million visitors a month; Pro, for up to 100 million and agencies, is coming |
US dollars a month, billed monthly, from each maker's pricing page on 13 October 2026.
Notice what each one counts, in the last row. Umami's "free" at 100,000 holds only on Hobby with nothing but page views counted, and Nora counts visitors, where Umami counts events.
What it takes to run Umami yourself
| Part | What Umami needs or does |
|---|---|
| Software | A Next.js app on Node.js 18.18 or newer, from source, Docker Compose or a prebuilt image (install) |
| Database | PostgreSQL 12.14 or newer, the only one since v3.0 in November 2025; MySQL users move their data on v2.19.0 first (release, guide) |
| First login | A default admin account whose password you change at once (install) |
| Updates | Pull, rebuild and restart, or pull the new image; run ANALYZE in PostgreSQL after a major upgrade (updates) |
| Optional parts | Redis for caching, and a GeoIP database when no CDN sends location headers (environment variables) |
| Telemetry | Anonymous usage data is sent by default; DISABLE_TELEMETRY turns it off (environment variables) |
| Included at no cost | Session replays (v3.1), heatmaps (v3.2), the API, and a read-only MCP server for AI assistants (v3.4, off by default) |
| Not included | Email reports, which are Cloud only (Cloud and self-hosted) |
Read the first six rows as a to-do list. The install, the database, the first password, the updates, the optional parts and the telemetry switch are all yours to handle.
Umami publishes no server sizes, and we haven't benchmarked it. The upgrade threads are the best guide to the upkeep.
- A failed migration. After v3.0, a migration failed on databases that already held data (#3729).
- A busy database. One self-hoster on Hetzner with Coolify watched PostgreSQL take 3 cores and 2.6 GB of RAM after upgrading, until a fresh install restored from backup fixed it (#3777).
- Broken logins. Logins broke for some Docker users after v3.2 (#4352).
All three are closed now.
Security is yours too. In December 2025, a flaw in Next.js (CVE-2025-66478) let attackers run code on unpatched servers, and people running Umami v2 found crypto miners on theirs. Umami shipped a patched v2 within a day, and its maintainer told affected users to change every secret in their environment (#3839). If you self-host, watch the releases.
Our read: the software is free and the upkeep is real. If nobody on your team will watch Umami's releases, Cloud is the easier way to run it.
What we found when we tested both
We installed each tool alone on a test page and opened it in Chrome four ways: as a person who moves the mouse and scrolls, and as three kinds of bot. One announces it's automated. One hides that. One clicks without moving the mouse, the way AI agents click. No data reached Umami or Google; our lab answered every request itself.
| Measured | Umami | Google Analytics 4 | Nora Analytics |
|---|---|---|---|
| Script weightgzip, as downloaded | 2.3 KB | 154 KB | 2.7 KB |
| Requests per page viewopening and leaving, for a person | 1 | 2 | 3 |
| Cookies left behind | None | _ga_<property>· 13 months_ga· 13 months | None |
| Other browser storage | None | None | None |
| Ad blockersEasyPrivacy, the list most use | Script blocked||umami.is^$third-party | Script blocked/gtag/js? | Not blocked |
| Automated Chrome, as shipped | SentIts user agent says HeadlessChrome; a server list can drop it | SentIts user agent says HeadlessChrome; a server list can drop it | Labelled a botKept out of the people counts |
| Automated Chrome, disguised | Sent as a visitorNothing marked it as automated | Sent as a visitorNothing marked it as automated | Counted as a personNothing in the browser gave it away |
| Disguised, clicking without moving | Sent as a visitorNothing marked it as automated | Sent as a visitorNothing marked it as automated | Labelled an AI agentKept out of the people counts |
◆ Kept out of the people counts◐ Sent, but marked or named as automated● Sent as an ordinary visit
Our tracker lab, 13 October 2026: each tool alone on a test page, opened in Chrome by a person and by three kinds of automated browser. "Sent" means the script sent a page view; the maker's servers may still drop it. Ad blockers: EasyPrivacy version 202610140311, checked against each script and the requests it made.
Start with weight. Umami's own comparison page puts its script at about 2 KB against about 45 KB for GA4, "over 20x" (Umami). Other pages ranking for this search give GA4 as 28 KB, 45 KB or 74 KB. All of them understate it today. We measured 154 KB as downloaded, about 67 times Umami's 2.3 KB. That's GA4 at its lightest, with a property that has nothing configured; the tags we fetched from real sites were heavier still.
Then the requests. Umami made 1 request per page view, when the page opened. GA4 made 2 requests, one of them as the visitor left. That matters for time on site. Umami's docs say it's counted only for visitors who view more than one page (metric definitions), so a reader who spends ten minutes on one article adds no time, and every one-page visit is a bounce.
Notice the cookie row. GA4 left _ga and _ga_<property>, each for 400
days, which is Chrome's limit; Google sets two years. Umami and Nora left nothing, in cookies or
in storage.
Ad blockers stop Umami as well as GA4. EasyPrivacy blocks Umami Cloud's script with a rule for the whole
umami.is domain, and GA4's tag too. Self-hosting doesn't escape it by default: the list also blocks any script named umami.js, and script.js on any host whose name starts with "umami."
(EasyPrivacy). Umami documents renaming the script and its endpoint
(TRACKER_SCRIPT_NAME, COLLECT_API_ENDPOINT) or serving both through your own domain
(Umami). Nora isn't on it.
Now the bot rows. Umami's script has no checks for automation, so it sent all three. Its server checks each user agent against the isbot list (code), which includes the word "headless" (isbot). So Chrome as shipped, which announces itself as HeadlessChrome, would most likely be dropped there. The disguised browser and the agent-style click carry an ordinary Chrome user agent, and nothing in Umami sets them apart.
GA4 sent a page view for every visitor and filters known bots later, on its servers (Google). Nora labelled the as-shipped browser a bot and the agent-style click an AI agent. The disguised browser that never touched the page passed as a person, as it did everywhere.
Nora Analytics is free for up to 1 million visitors a month. No cookies, a 2.7 KB script, and every page view sorted into people, AI agents and bots.
Start freeWhat happens with bots, AI agents and the Singapore visitors
Umami drops a request when its user agent matches the isbot list, and, since v2.18, when the user agent
is empty (code, release). DISABLE_BOT_CHECK turns the check off
(docs). There's no list of data-centre networks and no check in the script. You can exclude IP
addresses and ranges by hand, with IGNORE_IP when self-hosting or IP filters on Cloud from the Pro plan
(IP filters). A pull request to flag sessions from data-centre cities was closed without being
merged (#3853).
That gap shows up as visitors from Singapore. In one thread, self-hosters found requests from Singapore data-centre addresses with an ordinary Windows Chrome user agent, which no user-agent list can tell from a person. One cut about 80% of them by challenging a single address range at Cloudflare. A user who'd just moved client sites from Matomo found Singapore among their top countries. The thread was closed in December 2025 while users kept reporting (#3862).
A newer thread, open since August 2026, shows rows of near-identical Singapore sessions on Cloud and self-hosted alike. A maintainer says it looks like bot activity, and another user matched them to Alibaba Cloud and other data-centre addresses (#4448).
Google Analytics 4 drops known bots using Google's research and the IAB spiders and bots list. The filter is always on, you can't turn it off, and you never see how many it removed (Google).
AI assistants. Umami's LLM channel, released in v3.2.0 on 24 June 2026 (release), groups visits referred by six domains: chatgpt.com, claude.ai, copilot.microsoft.com, gemini.google.com, meta.ai and perplexity.ai (code). GA4's AI Assistant channel, since 13 May 2026, matches AI assistants by referrer, ChatGPT, Gemini, DeepSeek, Copilot and Grok among them (Google).
Neither labels AI agents. In GA4, visits from ChatGPT Atlas and Perplexity Comet show up as ordinary Chrome, often as Direct (MarTech), and Umami's user-agent check can't tell them apart either.
Nora keeps every page view and labels it: a person, an AI agent or a bot, with the test that caught it (a signature check, the name it gives, how it behaves, machine signs). A bot that a test catches is counted apart from the people, so it doesn't swell a country. One that behaves like a person and gives nothing away still passes.
Our read: Umami's user-agent check is a fair first filter for bots that say what they are. It does nothing for the ones that don't, and that's where the Singapore visitors get through.
None of the three sees crawlers such as GPTBot or ClaudeBot, which fetch pages without running scripts. That takes your server or CDN logs.
Why Umami and GA4 won't show the same numbers
Run both and the totals will differ, often by a lot. On one developer's blog over two weeks in 2025, GA4 logged 242 page views and Umami 491, in a test Rybbit sponsored (Tsykin). Four things cause most of the gap.
- Consent. In the EEA, the UK and Switzerland, GA4 needs consent to set its cookies (Google), and visitors who decline go uncounted or estimated. Google models them only once a site has 1,000 declined events a day for a week and 1,000 consenting users a day. Most small sites never get there. In one study, GA missed 55.6% of visits when a banner was shown (Orbit Media).
- Blocking. EasyPrivacy blocks both by default. A self-hosted Umami with a renamed script and endpoint slips past those rules, so it keeps visitors that blockers take from GA4.
- What a visitor is. Umami hashes the site, IP address and browser with a salt that changes each month (sessions, metric definitions, SALT_ROTATION). A phone that changes network is a new visitor. A regular reader on one laptop at home is one visitor a month, three over a quarter. GA4 keeps one user per cookie for up to 400 days in Chrome.
- Bots. Bots with ordinary user agents get through Umami's check, as the Singapore threads show, while GA4's list removes some of them. On the first site running Nora, 3.3% of the page views its script saw over nine days in October 2026 were bots or AI agents.
What GA4 does that Umami can't, and the reverse
| Feature | Umami | Google Analytics 4 | Nora Analytics |
|---|---|---|---|
| Real-time view | Yes | YesLast 30 minutes | YesLive, last 30 minutes |
| Goals or key events | Yes | Yes30 key events | YesGoal pages |
| Funnels | Yes | YesIn Explorations | No |
| Ecommerce revenue | Yes | Yes | YesPro |
| Custom events with properties | Yes | Yes25 parameters per event | YesPro |
| UTM campaigns | Yes | Yes | Partlyutm_source as the source |
| Google Search Console data | No | Yes | No |
| Countries | Yes | Yes | Yes |
| Heatmaps | YesBusiness plan, or self-hosted | No | No |
| Session recordings | YesBusiness plan, or self-hosted | No | NoNever: nothing typed or watched |
| Stats API | YesPro plan, or self-hosted | YesData API | No |
| CSV export | Yes | Yes100,000 rows; raw data via BigQuery | YesEvery page view |
| Scheduled email reports | YesPro plan, Cloud only | YesAdmins only | YesWeekly |
| Shared or public dashboards | YesShare URLs | PartlyShared with users of the property | YesReport links |
| Many sites and clients in one account | Yes20 sites on Pro | YesAccounts and properties | YesPro |
| AI assistants as a traffic source | YesLLM channel, June 2026 | YesAI Assistant channel, May 2026, by referrer only | Yes |
| AI agents told apart from people | No | No | YesBy name, signature or behaviour |
Where GA4 is ahead
- Google Ads. Import conversions, build audiences, report spend against results.
- Search Console queries inside the reports. Umami lists no Search Console integration.
- Raw data. A free daily export to BigQuery, up to 1 million events a day (Google).
- Age, gender and interests, though small reports are hidden by thresholds.
- No event cap at any price. Umami Cloud charges past 100,000 a month.
Where Umami is ahead
- Open source under MIT. You can read it, change it and run it where your data must stay.
- Funnels, journeys, retention, revenue and attribution on every plan, Hobby included (pricing).
- Session replays and heatmaps at no cost when you self-host. GA4 has neither.
- No cookies and nothing stored in the browser, so there's no consent to wait for.
- Data kept longer. 6 months to 5 years on Cloud, and as long as you like on your own server. GA4 keeps the event-level data behind its explorations 2 or 14 months (Google).
- Short links and tracking pixels for downloads and email opens, since v3.0 (release).
From each maker's pages on 13 October 2026. Umami's API needs Pro on Cloud; replays and heatmaps need Business on Cloud.
What people say about each
We read reviews and threads from the past two years. The same few things come up again and again. Here they are, in our words, with links to where people said them.
Umami
What they like
What they complain about
Google Analytics 4
What they like
What they complain about
How to switch without losing your history
- Keep your history where it is. Umami can't import GA4. Leave the property open, or export it to BigQuery first (Google). Cloud imports, from Pro up, take only Umami databases and CSV files (import).
- Run both for two to four weeks. Compare Monday with Monday; weekends and campaigns move the totals.
- Rebuild your key events as Umami events. On Cloud, count each property as an event when you size your plan.
- Keep Search Console open on its own. Umami doesn't bring its queries in.
- Keep Google's tag for Ads if you buy Google Ads and rely on its conversions.
- Self-hosting? Rename the script and endpoint, change the default admin password, and turn off telemetry if you'd rather not send it (environment variables).
- Remove GA4, then check whether your cookie banner still has anything to ask about.
Where Nora Analytics fits
Nora is for you if you like Umami's simplicity but don't want to run a server or fit under 100,000 events, and you want to know how much of your traffic is people. It's free up to 1 million visitors a month, sets no cookies, weighs 2.7 KB, and labels every page view person, AI agent or bot, with the test that caught it. You also get live visitors, pages, sources (AI assistants among them), countries, goals, a weekly email and CSV export.
It gives up a lot that Umami has. Nora isn't open source and can't be self-hosted, so your data sits with us in the US. It has no funnels, no heatmaps and no session recordings, and it can't import data. It launches on 1 November 2026, so it has no track record yet. If you need the code on your own server, or replays and funnels, Umami is the better pick.
Questions people ask
Is Umami free?
Yes, in two ways. Self-hosting is free under the MIT licence; you pay only for the server. Umami Cloud's Hobby plan is free for one site and up to 100,000 events a month, kept for 6 months. Pro costs $20 a month for 1 million events and up to 20 sites.
On Cloud, an event is each page view, each custom event and each property stored with an event. A page view plus a sign-up event carrying two properties is four events, so a site with 100,000 page views a month has no room left on Hobby.
Can I host Umami for free on Vercel, Supabase or Neon?
Yes, within their limits. Vercel's free Hobby plan is for personal, non-commercial use only. Supabase's free database holds 500 MB, and Neon's free plan 1 GB per project. Umami keeps every event until you delete it, so the database is what fills up. We haven't measured how fast.
What server does self-hosted Umami need?
Node.js 18.18 or newer and PostgreSQL 12.14 or newer. Umami publishes no sizes, and Docker Compose runs both on one machine. After the v3 upgrade, one self-hoster on Hetzner saw PostgreSQL use 3 cores and 2.6 GB of RAM until a fresh install restored from backup fixed it.
Does Umami still support MySQL?
No. Version 3.0, released on 7 November 2025, supports PostgreSQL only. Umami's guide moves a MySQL database to PostgreSQL on v2.19.0, before you upgrade.
Does Umami need a cookie banner?
No, by Umami's own account: it says no cookie notice is needed. It sets no cookies and left nothing in the browser in our lab. GA4 sets two cookies, and Google requires consent from visitors in the EEA, the UK and Switzerland. Other tools on your site may still need a banner.
How does Umami count unique visitors without cookies?
By hashing the site, the visitor's IP address and browser with a salt that changes at the start of each month. A new device, browser or network makes a new visitor, and the same person becomes a new visitor each month. Two people on one network with the same browser can count as one.
Can I import my Google Analytics data into Umami?
No. Umami has no Google Analytics import. On Cloud, from the Pro plan, Umami's team imports data from a self-hosted Umami database or from CSV files. Keep your GA4 history in GA4, or export it to BigQuery, before you switch.
Why does Umami show so many visitors from Singapore?
Bots, by the look of Umami's GitHub threads. They trace the visits to Singapore data-centre networks that send an ordinary Chrome user agent, and Umami's bot check reads only the user agent, so they get through. You can exclude address ranges by hand: IGNORE_IP when self-hosting, IP filters on Cloud from the Pro plan.
Do ad blockers block Umami?
Yes. EasyPrivacy, the list most ad blockers use, blocks cloud.umami.is. For self-hosted copies, it blocks scripts named umami.js, and script.js on hosts that start with "umami." (checked 13 October 2026). Umami documents renaming the script and its endpoint, or serving both from your own domain.
Umami or Nora Analytics?
Umami, if you want open source on your own server, with funnels, revenue, replays and heatmaps. Nora, if you'd rather run nothing: it's hosted only, free up to 1 million visitors a month, and labels every page view person, AI agent or bot. It's new: it launches on 1 November 2026 and is hosted in the US.
How we tested this
Nora Lab, the research team at Nora Analytics, ran every test on this page the same way for each tool. Here is exactly how, so you can judge the results yourself.
- When
- The lab ran on 13 October 2026. We read every source below on the same day.
- What we tested
- Umami, Google Analytics 4 and Nora Analytics, each installed alone on a blank test page with its maker's own install code and a made-up site ID. Nora Analytics ran version 1.5.0 of its script, from our own build.
- Browser
- Chrome 155.0.8059.79, headless, on a Mac on a home internet connection, driven by our own script through the Chrome DevTools Protocol.
- Visitors
- Four on every tool: a scripted reader that moves the mouse and scrolls on a 1440×900 laptop screen; automated Chrome as shipped, which says it's automated; the same browser disguised as normal Chrome, which never touches the page; and the disguised browser clicking without moving the mouse first, the way AI agents click.
- What we measured
- Script weight, each script fetched once and gzipped at level 6. Every request sent while the page was open and as it was left, and which one carried the page view. The cookies, localStorage and sessionStorage left in the browser.
- Ad blockers
- Every script and request matched against the EasyPrivacy list, version 202610140311. It's the tracker list uBlock Origin turns on by default.
- Prices and features
- From each maker's own pricing pages, documentation, changelogs and code. Prices are monthly, in US dollars, at about 10,000, 100,000 and 1 million page views a month. 49 sources, listed below.
- What people say
- Ratings from Product Hunt, each with its number of reviews. Praise and complaints from 24 public posts and reviews on Hacker News, AlternativeTo, GitHub, Product Hunt, SaaSHub and Google's Analytics help forum, read on 13 October 2026. We put them in our own words and link to every one.
- No data sent
- Apart from fetching each script, nothing reached any maker. The lab answered every other request itself, so no test visit landed in anyone's dashboard.
- What we didn't test
- What a maker's servers do once a page view arrives: the lab says "sent", never "counted". Real AI agents: the fourth visitor copies how they click. Crawlers that don't run JavaScript, which no script sees. The other tools on a live site over weeks, their dashboards and their paid plans: we signed up for none of them.
- Our stake
- We make Nora Analytics. It's in every test and tested the same way, and every comparison says when another tool is the better pick. No maker paid to be included, and our links to other tools aren't affiliate links.
- Corrections
- Write to hello@noraanalytics.io. We'll fix the page and say what changed.
The exact scripts we loaded
| Tool | Script | Gzipped |
|---|---|---|
| Umami | cloud.umami.is/script.js | 2.3 KB |
| Google Analytics 4 | www.googletagmanager.com/gtag/js?id=G-NORALAB01 | 154 KB |
| Nora Analytics | Nora Analytics script 1.5.0 | 2.7 KB, loader and core, two files |
The full method, with what each visitor stands for, is on How we test. Every result from the lab run is public as JSON.
Sources
- Umami pricing: umami.is/pricing
- Umami Cloud FAQ (how usage is measured): umami.is/docs/cloud/faq
- Umami Cloud and self-hosted differences: umami.is/docs/cloud
- Umami Cloud data import: umami.is/docs/cloud/import-data
- Umami Cloud IP filters: umami.is/docs/cloud/ip-filters
- Umami terms (company, hosting): umami.is/terms
- Umami FAQ: umami.is/docs/faq
- Umami installation: umami.is/docs/install
- Umami getting updates: umami.is/docs/updates
- Umami environment variables: umami.is/docs/environment-variables
- Umami metric definitions: umami.is/docs/metric-definitions
- Umami sessions: umami.is/docs/sessions
- Umami: bypass ad blockers: umami.is/docs/bypass-ad-blockers
- Umami vs Google Analytics (Umami): umami.is/compare/google-analytics
- Umami v2.18.0 release (empty user agents ignored): github.com/umami-software/umami/releases/tag/v2.18.0
- Umami v3.0.0 release (MySQL dropped): github.com/umami-software/umami/releases/tag/v3.0.0
- Umami MySQL to PostgreSQL guide: umami.is/docs/guides/migrate-mysql-postgresql
- Umami v3.1.0 release (session replay): github.com/umami-software/umami/releases/tag/v3.1.0
- Umami v3.2.0 release (heatmaps, LLM channel): github.com/umami-software/umami/releases/tag/v3.2.0
- Umami v3.4.0 release (MCP): github.com/umami-software/umami/releases/tag/v3.4.0
- Umami LLM referrer list (source): github.com/umami-software/umami/blob/master/src/lib/constants.ts
- Umami bot check (source): github.com/umami-software/umami/blob/master/src/app/api/send/route.ts
- isbot pattern list: github.com/omrilotan/isbot/blob/main/src/patterns.json
- Umami issue #4448, Singapore sessions: github.com/umami-software/umami/issues/4448
- Umami issue #3862, Singapore bot traffic: github.com/umami-software/umami/issues/3862
- Umami pull request #3853, closed: github.com/umami-software/umami/pull/3853
- Umami issue #3729, v3 upgrade failing: github.com/umami-software/umami/issues/3729
- Umami issue #3777, PostgreSQL load after v3: github.com/umami-software/umami/issues/3777
- Umami issue #4352, login after v3.2: github.com/umami-software/umami/issues/4352
- Umami issue #3839, crypto miners on v2: github.com/umami-software/umami/issues/3839
- Next.js CVE-2025-66478: nextjs.org/blog/CVE-2025-66478
- Vercel Hobby plan: vercel.com/docs/plans/hobby
- Supabase pricing: supabase.com/pricing
- Neon pricing: neon.com/pricing
- InstaPods, Umami vs Google Analytics: instapods.com/apps/umami/vs/google-analytics/
- Swetrix, Umami vs Google Analytics: swetrix.com/comparison/umami/vs-google-analytics
- Charles Jones, Umami to replace GA: charlesjones.dev/blog/umami-analytics-replace-google-analytics-enterprise
- Tsykin, two-week test sponsored by Rybbit (2025): tsykin.com/blog/rybbit-analytics-vs-google-analytics-vs-umami-vs-plausible
- GA4 cookies: support.google.com/analytics/answer/11397207
- Google EU user consent policy: www.google.com/about/company/user-consent-policy/
- GA4 known bot traffic exclusion: support.google.com/analytics/answer/9888366
- GA4 AI Assistant channel: support.google.com/analytics/answer/9756891
- GA4 data thresholds: support.google.com/analytics/answer/9383630
- GA4 data retention: support.google.com/analytics/answer/7667196
- GA4 behavioural modelling for consent mode: support.google.com/analytics/answer/11161109
- GA4 BigQuery export: support.google.com/analytics/answer/9358801
- How GA4 records Comet and Atlas visits (MarTech): martech.org/how-ga4-records-traffic-from-perplexity-comet-and-chatgpt-atlas/
- Orbit Media, inaccurate GA traffic sources: www.orbitmedia.com/blog/inaccurate-google-analytics-traffic-sources/
- EasyPrivacy list: easylist.to/easylist/easyprivacy.txt
Nora Analytics is free for up to 1 million visitors a month. No cookies, a 2.7 KB script, and every page view sorted into people, AI agents and bots.
Start free