See where people click, how far they scroll and what they ignore.

Heatlens adds click, mouse-movement and scroll heatmaps to your self-hosted Matomo. It works with the tracker you already have, keeps the data in your own database, and costs €299 once.

For self-hosted Matomo 5.14.1 or later, or Matomo 6. Not available on Matomo Cloud.

0 clicks recorded

Every click on the page above lands on the heatmap. This is a demo running in your browser: nothing is sent anywhere.

No new tracking code: it extends matomo.js.

Your data stays in your Matomo database.

Pay once, keep it.

Up and running before your coffee cools

Three steps, all inside the Matomo you already run.

  1. Install the plugin

    Unzip Heatlens.zip into Matomo's plugins/ folder, then activate Heatlens under Administration → Plugins. If your Matomo allows plugin uploads, you can also upload the zip from the Marketplace page.

  2. Create a heatmap campaign

    Pick the pages, the devices and the share of visits to sample.

  3. Open the report

    Once visits come in, open Heatmaps → Manage heatmaps and pick your campaign.

Three heatmaps, every screen, only the pages you choose

Clicks, mouse movement and scroll depth

Switch views on the same page to see what people tap, where their cursor wanders and how far down they get. The average fold line shows what most visitors see before they scroll.

  • Click map. The buttons that work, and the pictures people wrongly think are buttons.
  • Movement map. Where attention drifts while people read.
  • Scroll map. The share of visitors who reach each part of the page.
Average fold
100% 71% 38% 12%

Desktop, tablet and mobile

Each device gets its own heatmap, because a phone visitor and a laptop visitor read the same page differently. You set the width breakpoints.

Single-page app?

Heatlens follows Matomo virtual page views. For views you load yourself, call:

_paq.push(['Heatlens.trackPageView'])

Campaigns that pick the pages

Target pages four ways:

  • Exact path /pricing
  • Path prefix /blog/
  • Exact URL https://shop.example/checkout
  • URL contains spring-sale

Set a sampling rate, a cap on recorded pages and, if you like, how many days to keep the data. Pause, resume or delete a campaign any time.

Real snapshots of your pages

Heatlens captures each page in the visitor's browser, masks it, and shows it in an isolated frame so the heatmap sits on what people actually saw.

Take it to the meeting

Export a JSON report, or a PNG of the heatmap overlay to drop into a slide.

Feels like Matomo, because it is

Find it under Heatmaps → Manage heatmaps, with Matomo's own cards and buttons, light and dark theme, in English and French. Site admins manage campaigns; anyone with view access can read the reports.

Private by default, not by checkbox

Heatlens is built so personal data never needs to leave the visitor's browser.

  • Nothing is recorded without consent

    Consent is required by default. Heatlens follows Matomo's requireConsent and setConsentGiven, or your consent banner can call _paq.push(['Heatlens.setConsentGiven']) and _paq.push(['Heatlens.forgetConsentGiven']).

  • Data stays on your server

    Everything lands in your own Matomo database. GDPR deletion requests and your Matomo retention settings purge heatmap data too.

  • No phone home

    Heatlens never contacts our servers: no online license check, no update check, no usage reporting. It keeps working on a server with no internet access.

  • You decide what else to hide

    Add data-matomo-mask or data-heatlens-mask to any element and it is masked before it leaves the page.

What leaves the browser

Inputs, textareas, selects and editable areas are masked on the visitor's device. Emails and runs of four or more digits are masked as a fallback, even in plain text.

On the pageVisitor seesYour Matomo stores
Email fieldjane@mail.example•••••••
Delivery noteRing twice•••••
Order textOrder 58213Order •••••
Never collected Keystrokes, field values, scripts and external stylesheets.

Pay once. Keep your heatmaps.

One license, no yearly subscription to keep the lights on. Add priority support if you want someone on call.

Heatlens license

Your Matomo version

For Matomo 5.14.1 or later, with PHP 8.1+.

€299

One-time payment, perpetual license

  • 1 Matomo instance plus 1 staging copy, unlimited websites of your own
  • Free updates within your edition
  • Support through our portal, best effort
Buy Heatlens €299FOREVER

Card payment through Stripe. Excludes VAT. You get an invoice.

Priority support

Add-on for Heatlens license holders.

  • Priority ticketsIncluded
  • First response, 24/7Under 4 h*
  • Installation helpIncluded
  • Matomo upgrade helpIncluded
Per license, per year€99
Add priority support

*Counted from when your ticket reaches our support portal. Requires a license. Cancel any time.

Sold to businesses and organisations. Prices exclude VAT: French customers pay 20% VAT, other EU businesses with a valid VAT number are invoiced under reverse charge.

Invoice with every purchase. Bank transfer on request.

Not working on your setup? Refund within 14 days.

Agency tracking client websites? Add €10 per client website, once.

Questions people ask before buying

Something missing? Write to us and a person at Coderise will answer.

Does it work with Matomo Cloud?

No. Matomo Cloud doesn't allow third-party plugins, so Heatlens needs self-hosted Matomo: 5.14.1 or later, or Matomo 6.

Which edition should I buy?

The one that matches your Matomo version: Heatlens for Matomo 5 or Heatlens for Matomo 6. Both cost €299. If you move from Matomo 5 to Matomo 6 later, the upgrade is paid, with a discount for existing customers.

What does one license cover?

One production Matomo instance plus one staging copy, and every website you run yourself. Moving to a new server is fine once you remove Heatlens from the old one. Agencies and hosting providers add a client website license for each website they track for a client: €10 per website, paid once. Buy client websites.

How do I install it?

Unzip Heatlens.zip into the plugins/ folder of your Matomo, then activate Heatlens under Administration → Plugins.

To upload the zip from Matomo instead, Matomo must allow plugin uploads. It doesn't by default, for security reasons. A server administrator adds this line under [General] in config/config.ini.php:

enable_plugin_upload = 1

The upload button then appears under Administration → Marketplace. You can remove the line again once Heatlens is installed.

What do I need to run it?

A self-hosted Matomo 5.14.1 or later with PHP 8.1+, or a self-hosted Matomo 6. You need a Matomo super user to install the plugin. Nothing changes on your websites: Heatlens uses the Matomo tracker they already load.

Do I need to add a new tracking code?

No. Heatlens extends the Matomo tracker (matomo.js) that's already on your site.

Is it GDPR compliant?

It's built for it: consent is required by default, form fields are masked in the browser, data stays on your server, and deletion requests purge heatmap data. You remain the data controller, so mark any personal information shown as plain text on your pages with data-heatlens-mask.

What does "perpetual" mean?

You pay once and keep using Heatlens forever. Updates within the edition you bought are free. A new major edition, for example the one for Matomo 6, is a paid upgrade at half the license price for existing customers. Each edition gets updates for at least three years after its Matomo version reaches end of life.

What's the difference between best-effort and priority support?

Both go through our support portal. With the license, we answer as soon as we can, without a guaranteed time. Priority support guarantees a first response within 4 hours of your ticket, 24/7, and adds hands-on help installing Heatlens and upgrading Matomo.

Can I get an invoice or pay by bank transfer?

Every purchase comes with an invoice. Card payment goes through Stripe; bank transfer is available on request.

Can I get a refund?

Yes, within 14 days if Heatlens doesn't work on your setup.

Does it record sessions?

Not today. Heatlens draws heatmaps; it doesn't record or replay individual visits.