Privacy

Matomo without cookies: cookieless and cookie-free tracking

Matomo can measure entirely without cookies, and that is quickly switched on. To fit running without consent, though, it takes more than one switch. Here are the calls and settings you need, what is missing from the reports and how to verify in the browser that really nothing is stored.

Without cookies, Matomo cannot recognise a visitor over days. Everything else remains: page views, entry pages, channels, campaigns, events and goals within a visit. For many websites that is exactly the right amount of data, and it takes only a few lines to set up.

The two calls

Matomo’s tracking code needs two additional lines for this, before trackPageView:

_paq.push(['requireCookieConsent']);
_paq.push(['disableBrowserFeatureDetection']);

With requireCookieConsent, Matomo sets no cookies as long as there is no consent. That is more flexible than the better-known disableCookies: if a visitor consents later, for example through a consent tool, Matomo uses cookies from then on without you rebuilding the tracking code. If you never want to set cookies, stay with disableCookies.

Call Without consent After consent
disableCookies no cookies still no cookies
requireCookieConsent no cookies cookies as soon as the consent tool calls rememberCookieConsentGiven

Why feature detection should be off

The second call is often forgotten and is at least as important. By default, Matomo uses browser feature detection to determine, for example, the screen resolution and supported browser features, and in newer versions it requests additional device information through client hints. That is an access to information on the device, and in Germany § 25 TDDDG applies to it just as it does to cookies. Why that is so and which second question the GDPR asks is described under Matomo and privacy.

Without feature detection, details such as screen resolution and browser plugins are missing from the reports. Browser, operating system and device type remain, because Matomo derives them from the user agent the browser sends with every request anyway.

In Matomo Tag Manager

If you use Matomo Tag Manager, set the same in the Matomo Configuration variable of your container:

  • Require cookie consent corresponds to requireCookieConsent.
  • Disable cookies corresponds to disableCookies.
  • Disable Browser Feature Detection corresponds to disableBrowserFeatureDetection.

The change only takes effect once you publish a new version of the container. A screenshot of these settings is on Matomo cookies, how preview and versions work under Matomo Tag Manager. Also check whether tags in the container store anything in the browser: the fire limit “Once per 24 hours”, for example, uses local storage.

Enforcing it for all websites

If you have many websites or old tracking codes you cannot access, there is a global switch: Administration > Privacy > Anonymize data > Force tracking without cookies. According to Matomo, it changes the file matomo.js so that the tracker sets no cookies, and Matomo additionally ignores tracking cookies on the server. That applies even if a tracking code reports consent. Using cookies with consent is then no longer possible.

This switch does not turn off feature detection. For that you still need disableBrowserFeatureDetection in the tracking code or in Tag Manager.

If you use a consent tool anyway, you can also run Matomo with cookies after consent. That is exactly what requireCookieConsent is for: without consent, Matomo measures cookieless and without feature detection; after consent, the consent tool calls rememberCookieConsentGiven, and Matomo sets cookies from then on. The basic numbers stay complete, and whoever consents is recognised across visits.

One tracking code for both cases: without consent, Matomo measures cookieless and without feature detection; after consent, with cookies.

With consent, Matomo also turns feature detection back on; that is how the tracker is written. Whoever consents is therefore measured with cookies and with device properties. Without consent, both stay off.

What is missing without cookies

Stays reliable Becomes less precise Missing
Visits and page views Unique visitors over weeks and months Recognition over days
Entry pages, channels, campaigns Returning visitors Cohorts
Events and goals within the same visit Days to conversion Attribution across several visits
Bounce rate and visit duration Visits per visitor Screen resolution and plugin reports

You notice it most with campaigns: if someone comes through a newsletter, leaves and buys two hours later, the purchase counts for direct entry. How Matomo recognises visitors without a cookie and why the number of unique visitors then comes close to the number of visits is described under Unique visitors.

Without cookies, but not without an identifier

To keep the page views of a visit together, Matomo creates a hash on the server without a cookie, the config_id. It is built from attributes such as operating system, browser and version, IP address and language, contains a value that changes every day, and by default Matomo only looks back 30 minutes with it. With feature detection off, no plugin details go into it, because the browser does not send them in the first place.

How the identifier is created on the server: attributes of the request and a value that changes daily produce the hash config_id. Without feature detection no plugin details arrive; the hash values are examples.

If even that is too much for you, switch on Randomize config_ID for enhanced privacy under Anonymize data. Matomo then creates a new identifier for every request, and every action counts as a visit of its own. Visits, bounce rate and visit duration lose their meaning.

Checking in the browser

Settings are one thing, what the browser actually does is another. Here is how to check it in a few minutes:

  1. Open a private window and visit the website without clicking anything in the consent tool.
  2. Look at the cookies: in the developer tools under Application or Storage, there must be no cookies starting with _pk_.
  3. Look at local storage: nothing from Matomo or Tag Manager should be there.
  4. Look at the tracking request: in the network view, find the request to matomo.php, or to js/ depending on the setup. With feature detection off, the parameters res for the screen resolution, uadata for client hints and plugin flags such as pdf are missing.
  5. Repeat with consent if you use a consent tool: the _pk_ cookies may only appear after consent.
This is what you should see in the developer tools; the numbers match steps 2 to 5: no cookies starting with _pk_, empty local storage and a request to matomo.php without res, uadata and pdf. Only after consent do cookies and device properties come in.

Whether the website already sends data to third parties before consent is also shown by the free website check.

Technology is not law

This page describes the technical side. Whether your setup is permissible without consent is for your data protection or legal adviser to answer. I take care of a clean implementation and documentation that makes this assessment possible, described under cookieless & privacy settings.

Read on at feinwerk.io: Cookieless Matomo: settings, opt-out and limits

Sources

As of 11 November 2026

FAQ

Frequently asked questions

Without cookies, do I no longer need a cookie banner?

It is not only about cookies. Under § 25 TDDDG in Germany, any storing on or reading from the device counts, including reading device properties. Matomo can be configured to measure without such access. Whether that is enough for your website is for your data protection or legal adviser to decide.

What is the difference between disableCookies and requireCookieConsent?

Both prevent cookies as long as there is no consent. With disableCookies it stays that way, even after consent. With requireCookieConsent, Matomo sets cookies as soon as your consent tool reports consent. Without a consent tool, both behave the same.

Does Matomo count visitors twice without cookies?

Not within a visit. But if the same person comes back after more than 30 minutes or the next day, Matomo usually counts them as a new visitor without a cookie. Visits and page views stay reliable, returning visitors do not.

Is cookieless tracking with Matomo fingerprinting?

Without a cookie, Matomo creates a short-lived identifier on the server from attributes such as IP address, browser and language. It contains a value that changes every day, and Matomo only looks back 30 minutes with it. With feature detection off, Matomo reads nothing extra in the browser for it.

Does Matomo really set no cookies at all without cookies?

Almost. If a visitor objects through Matomo's opt-out, Matomo stores that in the cookie mtm_consent_removed so that the objection applies. It contains no identifier. All other cookies stay off.

Questions about your setup?

In an intro call we'll look at your situation together.

Book an intro call

Newsletter

Matomo know-how, once a month.

Practical tips on tracking, privacy settings and performance, plus notes on important Matomo updates. No spam, unsubscribe any time.