Replayowl vs Hotjar

Hotjar is a hosted behaviour analytics suite with heatmaps, funnels, surveys and replay, now sold by Contentsquare. Replayowl only does session replay, hosted by us or self-hosted by you. If you need heatmaps and surveys, Hotjar does far more.

Facts about other products on this page were last checked against their own websites on . Prices and limits change; follow the source links before you decide.

Replayowl player paused on an uncaught error, with the activity list showing the click and the console errors next to the recorded page
The Replayowl dashboard. Try the live demo.

We build Replayowl, so we are not neutral. Every Hotjar figure on this page comes from Hotjar’s or Contentsquare’s own pages, linked below, as they read on the date above. Prices are the US dollar prices the pricing page showed us; European customers are billed in euros.

Hotjar (Contentsquare Experience Analytics) Replayowl
Scope Replays, heatmaps, funnels, journey analysis, error and performance monitoring, AI summaries; surveys and feedback in a separate Voice of Customer product Web session replay with console errors, rage clicks and search
Free plan Up to 200k monthly sessions, 1 project, 1 month of data access; replay capture is “5% sessions captured (max. 10k)” Hosted: 1,000 sessions a month, all recorded, kept 30 days, 1 project, 3 members. Self-hosted: free, no limits
Paid plans Growth from $49 per month, or $39 per month billed yearly, for 7k sessions; Pro and Enterprise priced by sales Hosted Pro $29 per month for 10,000 sessions; Business $149 per month for 100,000. Yearly: $290 and $1,490
Replay sampling Free 5% (max. 10k), Growth “15% sessions captured (min. 20k)”, which means every session up to 20k a month; Pro and Enterprise up to 100% None. Every session within the plan allowance is recorded in full
What a session is A visitor’s full journey, ending after 30 minutes away or idle; maximum 4 hours; sessions under 30 seconds ignored by default One visitor in one browser tab, across page loads within 30 minutes; no length limit
Replay access Free 1 month, Growth 2 months, Pro 2 months (up to 24), Enterprise 3 months (up to 24) Hosted: 30, 90 or 365 days by plan. Self-hosted: until you delete it (no automatic retention yet)
Filter by your user ID Growth and up Every plan, hosted and self-hosted
Heatmaps Yes, every plan; zone-based heatmaps and comparisons on Growth and up No
Funnels and journeys Funnels on every plan; journey analysis on Growth and up No
Surveys and feedback Voice of Customer: free with 100 responses a month and 3 widgets or surveys; Growth from $99 per month, or $79 per month billed yearly No
Errors JavaScript errors and basic error metrics on Free and Growth; error analysis and alerts on Pro (add-on) and Enterprise Console errors, warnings, uncaught exceptions and rejected promises with stack traces on the timeline
API Pro and Enterprise; the documented API covers survey responses, user lookup and deletion requests HTTP API for searching and deleting sessions; recordings are plain gzipped JSON in a bucket
Team User permissions on every plan; Google sign-in on Free and Growth, SAML on Pro and Enterprise Hosted: 3, 10 or 100 members with roles, Google or GitHub sign-in. Self-hosted: one admin password, no multiple users yet
Where data lives Per Hotjar’s help center: AWS eu-west-1, Ireland; some sub-processors outside the EU Hosted: our storage, or your own S3-compatible bucket on Pro and Business. Self-hosted: your bucket and your database only
Data role Hotjar describes itself as the processor of the data Hosted: we process recordings for you. Self-hosted: only you; nothing is sent to us
Self-hosting No Yes, AGPL-3.0
Source code Closed Open source, AGPL-3.0
Recorder Script size not published; loads asynchronously in two parts from a CDN and sends data over a WebSocket About 7.8 KB gzipped, no dependencies; one gzipped batch every 4 seconds over HTTPS

Sources: Contentsquare pricing (where hotjar.com/pricing redirects), Hotjar is now part of Contentsquare, What is a session, How sampling works, Does Hotjar track all your users, How long Hotjar keeps data, Data safety, privacy and security, Privacy FAQs, Suppressing content, iframes, Troubleshooting recordings, Will Hotjar slow down my site, The Hotjar API, Sharing and exporting data. Replayowl: pricing, limitations.

What Hotjar is today

As of 1 July 2025, Hotjar Ltd. merged into the Contentsquare Group. Hotjar’s heatmaps, recordings and surveys are now sold as Contentsquare products: Experience Analytics (replay, heatmaps, funnels, journeys), Voice of Customer (feedback, surveys, usability testing) and Product Analytics. Each has its own Free, Growth, Pro and Enterprise plans, and hotjar.com/pricing redirects to Contentsquare’s pricing page.

So “Hotjar” is no longer one product with one price. If you want replay and heatmaps, you are buying Experience Analytics. If you also want surveys beyond the basic ones in the free plan, Voice of Customer is a second subscription, with 10% off the cheaper of two paid Growth plans.

Some of Hotjar’s help center still uses the older plan names (Observe, Ask, Scale) and describes a daily session cap. The pricing page describes monthly sessions. Where the two disagree, this page follows the pricing page, and you should check the traffic coverage widget in your own account.

Replayowl is much narrower. It records sessions, plays them back, shows console errors on the timeline and lets you search. There are no heatmaps, funnels, surveys or dashboards. The same open source code runs as our hosted service or on your own Cloudflare Workers or Node server.

How Hotjar counts and samples sessions

This is the part most comparisons get wrong. The 200k figure on Hotjar’s free plan is monthly sessions for analytics, which Hotjar collects at 100% on every plan. Session replays are a different number. The pricing table lists monthly replay capture as:

  • Free: “5% sessions captured (max. 10k)”
  • Growth: “15% sessions captured (min. 20k)”
  • Pro and Enterprise: “Up to 100% sessions captured”

So a site with 200k sessions a month on the free plan gets heatmaps and funnels from all of them, but at most 10k replays. On Growth, the plan builder on the same page shows how the minimum works: up to 20k sessions a month, every session is replayable (7k replays at 7k sessions, 10k at 10k); from 20k to about 133k sessions, replays stay at 20k; above that they follow the 15% share (22k at 150k, 30k at 200k). Source: contentsquare.com/pricing, plan builder, checked on November 8, 2026.

When traffic is above what a plan covers, Hotjar samples: it spreads captures evenly over a moving 24-hour window rather than recording the first visitors of the day. When the monthly limit is reached on Free or Growth, no new heatmap or funnel data is collected until the next reset. Hotjar also ignores sessions shorter than 30 seconds by default, honours Do Not Track, and cannot track visitors whose browser blocks its script, cookies or WebSocket.

Replayowl does not sample. On the hosted plans, every new session is recorded in full until the monthly allowance is used; after that, sessions already running finish and new ones are not recorded until the next month or an upgrade. Self-hosted, there is no allowance at all. Replayowl does not honour Do Not Track or skip short sessions by itself; if you want that, start the recorder from your own code with ReplayOwl.start() only when it should run.

The two products also define a session differently. A Hotjar session can span several tabs and is capped at four hours. A Replayowl session is one tab, merged across page loads within 30 minutes, with no length limit. Counts are close for typical traffic but not identical.

What it costs at 10k and 100k sessions a month

Hotjar’s Growth price depends on the session tier you pick. These are the prices the pricing page showed for Experience Analytics, monthly and billed yearly:

Monthly sessions Hotjar Growth Replays Hotjar captures at that tier Replayowl hosted Replayowl self-hosted
1k Free plan Up to 5% Free plan, all 1,000 recorded Your infrastructure only
7k $49, or $39 billed yearly 7k replays, every session Pro, $29, or $290 a year Your infrastructure only
10k $69, or $55 billed yearly 10k replays, every session Pro, $29, or $290 a year Your infrastructure only
100k $409, or $327 billed yearly 20k replays, as the plan builder shows Business, $149, or $1,490 a year Your infrastructure only
200k $739, or $591 billed yearly 30k replays, as the plan builder shows Above our largest plan; self-host Your infrastructure only
More than 240k “Let’s talk”

Two honest caveats. First, if you only need heatmaps and funnels, Hotjar’s free plan covers 200k sessions a month and costs nothing, which no Replayowl plan matches because Replayowl has no heatmaps. Second, the prices are not like for like: Hotjar Growth includes heatmaps, funnels, journey analysis and AI summaries, and 13 months of analytics data. Replayowl’s price buys replay only, but every session in the allowance is a full replay.

Self-hosted Replayowl has no licence fee. On Cloudflare you pay for Worker requests, D1 or Postgres, and object storage. The recorder uploads one batch every 4 seconds, so requests are the number to watch, and the Workers paid plan is recommended. See pricing for details, and the Hotjar pricing breakdown for every Hotjar plan.

Retention

Hotjar’s pricing page lists replay access of 1 month on Free, 2 months on Growth, 2 months extendable to 24 on Pro, and 3 months extendable to 24 on Enterprise, with 13 months of analytics data on paid plans. Separately, Hotjar’s help center says recordings and heatmaps are retained for 365 days from capture on all plans and then deleted, including from backups, and that survey responses are never deleted automatically. Access is what you can see in the product; check with Contentsquare if you need to know how long data is stored behind it.

Replayowl hosted keeps recordings for 30, 90 or 365 days depending on the plan. Self-hosted Replayowl keeps recordings until you delete them; there is no automatic retention limit yet, so you set one with bucket lifecycle rules and a scheduled query, as described in storage.

Recording and privacy

Both tools mask in the visitor’s browser, so masked text never reaches the server.

  • Hotjar suppresses keystrokes in all input fields by default, as well as on-page numbers and email addresses. Numbers of 9 digits or more are always suppressed. Text and images are not suppressed unless you turn that on or mark elements with data-hj-suppress. Inputs can be unmasked with data-hj-allow, which does not apply to child elements.
  • Replayowl masks every text input, email addresses in page text and runs of 12 to 19 digits by default. Password fields always show eight dots. Mark elements with data-ro-mask or data-ro-block, or unmask an input with data-ro-unmask, which is ignored on password, card, CVV and IBAN fields. maskAllText and maskDigits mask more. See masking and privacy.

What neither records well:

  • iframes. Hotjar blocks iframes by default and shows a message in their place. With data-hj-allow-iframe it can show static content, but JavaScript inside is blocked and interactions are not tracked. Replayowl does not record iframe contents at all.
  • Canvas. Hotjar says canvas content, including WebGL, is not exposed to the DOM, so it cannot capture it. Replayowl does not record canvas either.
  • Other gaps. Hotjar recordings stop at third-party payment gateways and when a visitor moves between top-level domains; interaction with video player controls is not replicated. Replayowl does not record closed shadow roots, and in single-page apps it reads the URL only on full page loads. The full list is in limitations.

Both replay pages by loading some assets again at playback time. Hotjar plays recordings on insights.hotjar.com and needs CORS access to your fonts and CSS. Replayowl copies same-origin stylesheets and CSS-in-JS rules into the recording, but loads images, fonts and cross-origin stylesheets without CORS from your site when a replay plays.

Hotjar’s help center says user and usage data is stored in Ireland on AWS eu-west-1, that some sub-processors are outside the EU, and that Hotjar is the processor of the data collected on your site. It also says recording data is not backed up. It does not store end-user IP addresses unless you send them through its Identify API.

With Replayowl hosted, recordings are stored by us, or in your own S3-compatible bucket on Pro and Business. With Replayowl self-hosted, sessions go from the visitor’s browser to your server and your bucket, and nowhere else. That is the main reason to choose it over any hosted tool: some contracts, security reviews and internal policies do not allow visitor sessions with a third party at all.

Whether you need consent before recording depends on your jurisdiction and how you use the recordings, not on the tool. Both can be started only after consent: Hotjar has consent features, and Replayowl starts from code with ReplayOwl.start(). Our session replay and GDPR checklist covers the questions to ask.

Page weight

Hotjar does not publish its script size. Its help center says the script loads asynchronously in two parts from a CDN, records cursor and scroll position every 100 ms, and sends data over a WebSocket; in its own example the page became interactive about 0.01 seconds later and finished loading about 0.3 seconds later. The Replayowl recorder is about 7.8 KB gzipped with no dependencies. Measure both on your own pages before deciding.

Pick Hotjar if

  • You want heatmaps, funnels and journey analysis, not only replays. Replayowl has none of these.
  • You want on-page surveys and feedback widgets next to the recordings.
  • You want a lot for free: 200k monthly sessions of analytics, heatmaps and funnels, and up to 10k replays, at no cost.
  • Marketing, product or UX people will use it without engineering help. Hotjar is a polished, mature product with integrations for Google Analytics, Jira, HubSpot, Slack and Teams on every plan.
  • Storing visitor sessions with Contentsquare in the EU is acceptable to you.

Pick Replayowl if

  • You use replay to see what one visitor did before something broke, and you want console errors with stack traces on the same timeline.
  • You want every session recorded, not a sample, and to find it by your own user ID on any plan.
  • Replay is all you need and you want a lower price for it: 10,000 full replays for $29 a month, or 100,000 for $149.
  • Recordings must stay in your own bucket (hosted Pro and Business) or never leave your infrastructure at all (self-hosted).
  • You want the code: Replayowl is AGPL-3.0, and recordings are plain gzipped JSON files you can back up, export or delete with your own tools.

Many teams need parts of both. Hotjar’s free plan for heatmaps on marketing pages and Replayowl inside the signed-in app work side by side. If cost is the only reason you are leaving Hotjar, also look at Hotjar vs Microsoft Clarity and the wider list of Hotjar alternatives.

Moving over

Replayowl cannot import Hotjar recordings, and Hotjar’s export covers recording metadata as CSV or XLSX, not the recordings themselves. Run both for a while instead:

  1. Add the Replayowl script tag next to Hotjar’s tracking code.
  2. Pass the same user ID to both: Hotjar’s Identify API on one side, ReplayOwl.identify() or data-user-id on the other.
  3. Compare replays of the same visits, especially pages with Shadow DOM, CSS-in-JS or hover menus.
  4. If you still need heatmaps or surveys, keep Hotjar’s free plan for those. Otherwise remove Hotjar’s tracking code and let its retention run out.

Try replay quality first in the live demo, and read what Replayowl does not do before you switch.

Try Replayowl on your own site

Hosted

Free for 1,000 sessions a month

Then $29 a month for 10,000. Paste one script tag and watch your first session a minute later.

Start free

Self-hosted

Free, no session caps

One Cloudflare Worker with your own R2 bucket and D1 database. Nothing is sent to us.

Self-host on Cloudflare

Or watch it record you first in the live demo, no sign-up.

Spotted something out of date? Open an issue and we will fix it.