Microsoft Clarity alternative: heatmaps that come with uptime checks
4 min read ยท published 2026-10-07
The pitch
Microsoft Clarity is free behavior analytics: heatmaps, session recordings and automatic insights such as rage clicks and dead clicks, all from one script tag, and it needs no cookies. A price of zero is hard to argue with, and this post does not try. It is for the part of the question Clarity leaves open: while the site is down or checkout throws a 502, an analytics tool has nothing to record, and it has no way to tell your customers anything either. UpControl's script tag records pageviews, clicks, rage clicks, mouse movement and scroll depth for heatmaps, and it sits next to uptime checks, application logs and product events, so the traffic dip and the outage that caused it land on the same page. A coding agent wires all of it with one npx command. The table carries the facts; the two lists say where each side wins; the last section is the move, and it takes about five minutes.
| Microsoft Clarity (as of 2026-10) | UpControl | |
|---|---|---|
| Free tier | the whole product is free | 3 checks every 5 minutes, status page, 3,000 visits a month |
| Paid from | nothing, there is no paid tier | $9/month annual ($11 monthly) |
| The tag | one script tag; data lives in Microsoft's cloud | one script tag in the head; its key works only from the site addresses listed on it |
| Cookies | none, no cookies required | none, nothing stored on the visitor's device |
| Heatmaps | yes, click and scroll maps in the dashboard | yes, per device, drawn over your live page, for your plan's busiest pages |
| Session recordings | yes | no |
| Uptime and status page | no | checks from every 5 minutes (every minute on paid), free public status page |
| Self-hosting | no | yes, AGPL-3.0, one compose file |
Where UpControl is better
- An incident with a cause, not a dip. In Clarity a checkout that dies on Tuesday shows up as fewer conversions, with no reason attached. Here the check opens an incident titled with the cause, "Checkout returning 502" or "DNS error", and the same page carries the deploy that landed before it and the log lines around the failure. The graph tells you less money arrived; the incident tells you why.
- Your coding agent does the wiring. Run
npx upcontroland the agent you already use (Claude Code, Cursor, Codex, Gemini CLI, Copilot, Windsurf, Amp, Aider, Cline, opencode) adds the tag, the checks and the logging. Ask it in plain words to track signups from first visit to purchase, and the funnel is on the dashboard. No tracking code written by hand. - Heatmaps over your own live page. We record clicks, rage clicks, mouse movement and scroll depth, then draw the map on the page itself, per device: phones under 768px, tablets under 1024px, desktops above. You see the map where the page actually renders, next to the check that watches the same URL.
- A public status page from the first minute, free. Type a domain on the landing page and a status page for that host exists, with components, incidents and uptime history; the owner claims it with one click. While your site is down, Clarity is silent and your status page is talking to the customers.
- Self-hosting, and your data stays yours. The whole core is AGPL-3.0 and runs from one compose file on a 1GB RAM box, with zero telemetry in the OSS build. With Clarity the data lives in Microsoft's cloud, and how long the product stays free is Microsoft's call.
Where Microsoft Clarity is better
- The price, full stop. The whole product is free as of 2026-10, with no traffic limit, and it has been for years. Our free tier is real but metered: 3,000 visits a month, and past that recording pauses until the 1st. If the budget is zero and stays zero, nobody beats that column.
- Session recordings and replays. Watch one visitor scroll, stall and leave, with the mouse trail and the rage clicks in sequence. We have none of that: no recordings, and heatmaps only for your plan's busiest pages. When the question is "show me what this one user did", Clarity answers and we do not.
- The insight engine flags problems for you. Dead clicks, rage clicks, quick-backs and excessive scrolling get named per page without you reading a heatmap first. We give you the map and the counts; you do the reading.
- Analytics is its whole job, with Microsoft behind it. Engagement and scroll-depth metrics per page, an audience that already lives in the Microsoft toolchain. Our web analytics is young: pageviews with path, referrer, UTM tags, country, device, operating system and browser, plus the heatmaps above, and web history reaches back at most 31 days. Tools built for analytics alone go deeper and further back.
Switching from Microsoft Clarity in five minutes
- Open upcontrol.io and type your domain. The public status page exists from that moment.
- Claim the page from its link to move it into your account.
- Add an HTTP check for the site and one for the API behind it. Alerts go to Telegram, Slack, Discord or email.
- Paste our script tag into the head of every page, the same place Clarity's sits. The two run side by side while you compare.
- Optional, for the reason behind the numbers: run
npx upcontrolin your repo and tell your agent what to log and which events to track.