How much does Matomo Cloud cost at 100K, 1M and 5M hits?
Matomo Cloud costs $42 a month for 100,000 hits, $204 for 1 million and $975 for 5 million on monthly billing, as of November 2026. invisit costs $14, $49 and $199 for the same number of events. Every Cloud step is the same Business plan with a larger allowance, and Matomo publishes prices up to 5 million hits, then quotes (Matomo’s pricing).
The units are close but not identical. A Matomo hit is any tracking request: page views, events, downloads, outlinks, site searches and content impressions (what counts as a hit). Matomo’s rule of thumb is 110 to 120 hits per 100 page views. Hits from bots and internal traffic count toward the quota unless you filter them before they reach Matomo; invisit never bills bot and crawler reads.
Going over the allowance on Matomo Cloud adds overage fees: each extra tenth of the allowance costs a tenth of the plan price, so the 1M plan’s next 100,000 hits cost $21. A year paid up front costs ten months’ price on Matomo Cloud and nine months’ price on invisit. Matomo Cloud Business includes 30 websites and 30 team members at every step; invisit’s paid plans have unlimited sites.
A worked example: a SaaS site with 300,000 page views and 100,000 custom events a month. By Matomo’s rule of thumb that is roughly 430,000 to 460,000 hits, which needs the 600K plan at $139 a month, or $1,390 a year. On invisit it is 400,000 events, Pro at $49 a month, or $441 a year.
Is Matomo On-Premise free, and what does self-hosting cost?
Matomo On-Premise is free: the software is GPL v3 and tracks unlimited hits on servers you run (source on GitHub). The cost is the stack and the premium features. invisit is hosted only.
Matomo 5 needs PHP 8 and MySQL or MariaDB. Matomo 6, at release candidate in November 2026, needs PHP 8.1 and MySQL 8.0 or MariaDB 10.6. Past 1 million actions a month, Matomo recommends at least two servers, one of them for report processing (requirements). On Cloud, Matomo handles hosting, updates, security monitoring and daily backups; On-Premise, they are yours.
The free edition covers visits, events, goals, ecommerce, segments, Tag Manager, scheduled reports and custom alerts. Most of what sets Matomo apart is sold as premium plugins, priced per year by number of users (Matomo marketplace), or as bundles from $330 a month (Team, up to 4 users and 5M hits).
| Feature | Matomo Cloud Business | On-Premise, 1 to 4 users |
|---|---|---|
| Funnels | Included | $239 a year |
| Heatmaps and session recordings | Monthly quota | $269 a year |
| A/B testing | Included | $269 a year |
| Custom reports | 100 | $269 a year |
| Roll-Up reporting | Included | $269 a year |
| Media analytics | Included | $219 a year |
| White label | Logo and colours | $199 a year |
| Cohorts | Included | $99 a year |
| GA importer, Tag Manager, MCP server | Included | Free |
Does Matomo use cookies or need a consent banner?
Matomo sets first-party cookies by default; invisit sets none. Matomo’s standard tracking code stores a visitor ID in _pk_id for 13 months, a session in _pk_ses for 30 minutes and the referrer in _pk_ref for 6 months (Matomo’s cookie list). One line, _paq.push(['disableCookies']), or a privacy setting turns them off, at the cost of less accurate unique visitor counts (going cookieless).
For consent-free tracking in France, Matomo says Cloud and On-Premise meet the criteria the CNIL published in July 2025 once you enforce its CNIL mode under Administration, Privacy, Compliance (Matomo’s CNIL guide). The mode turns off the Visits Log, visitor profiles, User ID, heatmaps, session recordings and A/B tests (deleting past experiment data). It discards UTM and campaign parameters, masks three bytes of each IP address and deletes raw data after 744 days. You must also offer an opt-out on your site. Cookies of up to 13 months remain allowed.
invisit uses no cookies, no fingerprinting and no device identifiers. Visitors are told apart with a hash that rotates every day, raw IP addresses are never stored, and Global Privacy Control and Do Not Track can be honoured with respectGpc and respectDnt. Per-visit timelines and heatmaps work under those defaults. If your policy wants consent anyway, requireConsent waits for it.
Both keep data in Germany: Matomo Cloud on AWS in Frankfurt, with backups in Dublin (sub-processors), invisit at Hetzner in Falkenstein, with Cloudflare in front and a DPA.
How big is matomo.js, and can it load from your own domain?
The core matomo.js in Matomo 5.14.2 is 68 KB, about 22 KB gzipped, measured on November 3, 2026. invisit.js is about 8.5 KB gzipped, and its heatmap, feedback and interaction modules load only when used. On Matomo Cloud the file also carries the trackers of premium features: the public demo instance serves 225 KB, about 65 KB gzipped, with heatmap, media, form and crash tracking inside.
On Matomo Cloud Business, serving tracking from your own domain means hosting tracker-proxy, a PHP script that needs PHP 7.2 or newer; a custom domain is an Enterprise feature. Matomo On-Premise runs on your domain already. invisit’s @invisitdev/server serves the script and endpoint from your domain.
Does Matomo track AI assistants and AI crawlers?
Matomo reports AI assistant referrals, AI agents and AI chatbot fetches, but not search or training crawlers; invisit reports AI referrals and every crawler read. As of November 2026, Matomo has an AI Assistants acquisition channel for visitors who click through from ChatGPT, Claude, Gemini, Copilot or Perplexity, an AI Agents report since Matomo 5.6 and AI Chatbot reports since 5.8 (AI in Matomo).
Matomo’s chatbot reports need a server-side integration on Cloudflare, Amazon CloudFront, WordPress or the HTTP Tracking API, and crawlers that collect content for search indexes or model training are left out. On Matomo Cloud each AI request counts as a billed hit.
invisit recognises 19 assistants, from ChatGPT and Claude to Qwen, Doubao and NotebookLM, by referrer and by utm_source, in their own AI tab (AI assistant traffic). With @invisitdev/server it records crawler reads from search engines, AI training and search crawlers, and user-triggered fetches like ChatGPT-User. Crawler reads are never billed.
Revenue, alerts, web vitals and MCP in Matomo and invisit
Both Matomo and invisit have an official MCP server and traffic alerts. They differ on where revenue comes from, on web vitals, and on short links and feedback, which only invisit has.
| Capability | Matomo | invisit |
|---|---|---|
| Revenue | trackEcommerceOrder from your checkout or a store plugin, with product and abandoned cart reports (docs) |
Read from Stripe, Paddle, Polar and others: payments, refunds, disputes, fees, net |
| Alerts | Any of 70+ reports, by email, SMS or Slack, checked around midnight (docs) | Spikes, drops and silence, to Slack, Discord, ntfy or a webhook |
| Web vitals | Load timings on Cloud; Core Web Vitals plugin On-Premise only (docs) | LCP, INP, CLS, FCP and TTFB from real visitors |
| MCP | Official since May 2026 (docs) | Remote, OAuth or a personal token (docs) |
When Matomo is the better choice
Matomo is the better choice when you have to self-host, or when you need analytics depth that invisit does not have. Matomo On-Premise runs on your own servers under GPL v3, which suits intranets and policies that rule out a hosted processor. invisit cannot be self-hosted.
Matomo Cloud Business includes session recordings, A/B testing, retention cohorts, form analytics, media analytics, Roll-Up reporting across sites and multi-channel attribution. It allows 100 segments, 150 goals, 100 custom reports, 30 custom dimensions, 30 Tag Manager containers and white labelling with your logo and colours. invisit has no session recordings, retention cohorts or A/B tests.
Matomo imports Google Analytics history from Universal Analytics and GA4 (GA importer); invisit cannot import history from any tool. Matomo also sends scheduled email reports, has official SDKs for iOS and Android, and offers SAML and LDAP sign-in on Enterprise. invisit has no scheduled email reports and no mobile SDKs: it is web analytics.
Switching from Matomo to invisit
Switching from Matomo to invisit takes one script, a few renamed calls and an export of your Matomo history, which invisit cannot import. Run both side by side before you remove Matomo.
// Matomo: _paq.push(['trackEvent', category, action, name, value])
_paq.push(['trackEvent', 'Videos', 'Play', 'Intro', 30])
_paq.push(['setUserId', user.id])
// invisit
import { identify, init, track } from '@invisitdev/web'
init({ site: '<site id>' })
track('video_play', { category: 'Videos', name: 'Intro', value: 30 })
identify(user.id)
// trackEcommerceOrder: connect your payment provider instead
// disableCookies: not needed, invisit sets no cookiesMatomo’s docs suggest an email address or username for setUserId. identify() stores your own user id hashed, so pass the id from your database.
- Add invisit with the package or script tag (installation) and keep the Matomo snippet.
- Move your
trackEventandsetUserIdcalls as above (events and users). - Rebuild Matomo goals as conversions, and Matomo funnels as funnels from the same pages and events.
- Replace ecommerce tracking with a payment provider connection.
- Export your Matomo history. Reports export as CSV, JSON or XML, and raw visits come out of
Live.getLastVisitsDetails, paged 10,000 at a time (raw data export). On Matomo Cloud, raw data goes back 24 months while reports are kept forever, and Matomo support can provide a full export. - Run both for a few weeks, compare, then remove the Matomo snippet. Expect unique visitor counts to differ: Matomo’s cookie recognises a returning visitor for up to 13 months, while invisit’s hash rotates every day.