Does Matomo support clickpath or clickstream analytics?

Yes. Clickstreams or clickpaths represent the sequences of actions performed (clicks, etc.) and webpages visited by a website user. Matomo can track many kind of clickstream activities:

  • Pageviews
  • Clicks on files (Downloads)
  • Clicks on links (Outlinks)
  • Viewing and Clicking on specific content blocks with Content Tracking
  • Any other kind of clicks with custom Events

This click information can be then visualised for each individual visitor under the Visitor > Visits log menu in the Matomo (Piwik) dashboard, and can also be visualised with:

You can also create advanced Click, Move, and Scroll Heatmaps as well as record sessions using the Session Recording premium feature. Session Recordings let you replay exactly what your visitors did on your website in a video so you can improve for example the usability.

Are Matomo reports in real time?

By default, Matomo (Piwik) reports are in real time (learn more in our “Visits log and Real Time Analytics” guide) when you are viewing reports for “today” or any date range that includes today. Matomo will look at all your logs for today in the database and process the reports every time that you request them.

By default, reports for today are processed every 15 minutes (900 seconds). The Matomo Super User can change this value in the “General Settings” admin panel. For high traffic websites, we recommend processing the reports once every hour (3600 seconds) or more, which is a “near real time” approach. Please read the Setup auto archiving page for more information.

Matomo also provides a real time view of your visits on your site… right now! You can see all new page views, actions and new visits coming to your site, refreshing automatically. This feature is enabled by the Live! plugin which is enabled by default in the Matomo dashboard (check out the demo).

For any report where the date range includes “Today”, you can see within Matomo the freshness of any report (when was a report generated, how many minutes or how many hours ago).

You can also easily access all your data using either the API or via direct SQL access: Accessing Matomo Analytics RAW data via API or SQL queries.

How is a ‘unique visitor’ counted in Matomo?

The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.

Unique visitors are determined using first party cookies stored in your visitor browser. When a same person visits your website on two different devices (for example their laptop and on their mobile phone) then Matomo (Piwik) will detect two unique visitors.

If the visitor’s browser does not accept the Matomo cookie (if they have disabled, blocked or deleted cookies), a simple rule of thumb is used to try to match the visitor to a previous visitor with the same features (IP, browser, plugins, OS, etc). Read about all details in this other FAQ.

Note that by default, unique visitors are available for days, weeks and months periods, but unique visits are not processed for the “year” period nor for a “date range” period (for performance reasons). Learn how to enable unique visitors for all date ranges.

See also our glossary of analytics terms.

How is a ‘visit’ defined in Matomo?

If a visitor enters to your website or application for the first time, or if they visit a page (or take any action that is tracked in Matomo) more than 30 minutes after his last action Matomo will record it in a new Visit.

A Unique Visitor that returns several times in one day can be recorded as multiple visits.
In their first visit to your website or application, the visitor is considered a New Visitor. From their second visit (possibly on the same day or even days or weeks later) they will be tracked as a Returning Visitor.

By default any action taken by a visitor within 30 minutes of their last action will be tracked to the same visit, this 30 minute default timeout can be changed by adjust the following in your config file:

visit_standard_length = 1800

Actions tracked in a new visit will not change any of the data tracked in the previous visit. For example, if a customer adds an item to their cart but does not complete the order within the same visit then that visit will always have an abandoned cart. Even if the visitor returns at a later time (In a new visit) and completes the order, the previously tracked abandoned cart will remain in the tracked data and reports.

See also our glossary of analytics terms.

What is an ‘Entry page’?

Entry page is the first page of a visit.

For each Entry Page URL, Matomo (Piwik) reports the number of Entrances (Visits that started on this page), Bounces (Visits that started on this page but left the website straight away) and Bounce rate.

You can see all entry pages in the report at Behaviour > Entry pages.

See also our glossary of analytics terms.

Visitors are not finishing the process of converting the goals, how can I learn more and increase my conversions?

Have you ever wondered why the visitors of your website are not finishing the process of completing the goals. Matomo and its valuable features make it easy to analyze and learn more about the Visitor’s behaviour. Through optimizing your messaging, content or your page layouts, you will increase conversions by getting your visitors through a clear pathway to meet your website’s goal. In this guide we cover the most important features.

Table of contents

  1. Tracking Goals
  2. Funnel
  3. Users Flow
  4. Transitions
  5. Exit Page
  6. Visitor Engagement
  7. Conversion Rate Optimization

Tracking your Goals

A Goal in Matomo is your strategy and priority. It can entail many things: “Sold item”, “New customer”, “Downloaded brochure”, “Contacted us”, etc. What do you want your users to do on your website?

Goal conversion tracking is one of the most efficient ways to measure and improve your business objectives: Learn how to create Goals in Matomo.

For Ecommerce shops, you can use Analytics Ecommerce reporting.

Goals Funnel

A Funnel defines a series of actions that you expect your visitors to take on their way to converting a goal. By defining a funnel for your goals, you can improve your conversion rates, sales and revenue as you can determine where you lose your visitors in converting your goal. Learn more

Users Flow

Users Flow helps you find out which paths your visitors or users take in your website or app. Find out if your call to actions really work, find bugs, find the parts of your website or app where your users get confused, understand your visitors path to conversion or purchase, discover high drop-offs on pages and more. Learn more


Matomo Transitions gives you a report that shows the things your visitors did directly before and after viewing a certain page. It is not focused on the path, instead it shows the transitions through a page. With this feature, you can see everything that happened before and after a page, not only the internal pageviews. Learn more

Exit Page

The Exit Page is the last page accessed during a visit. Matomo reports the top Exit Page URLs, the number of Exits, Unique Pageviews and Exit Rate. This can help you identify the patterns or behaviour followed by your visitors when they exit your website. Learn more

Visitor Engagement

It’s vital to measure engagement if you have anything content related that plays a role in your customer’s journey. Matomo gives your website a fighting chance to make a lasting impression. Discover how engaged people are with your website by uncovering behavioural patterns that tell you how well your site and content is or isn’t performing. Learn more

Conversion Rate Optimization

When we talk about optimizing websites to improve and increase conversions, we’re really talking about conversion rate optimization (CRO). CRO is the process of learning what the most valuable content/aspect of your website is and how to best optimize this for your visitors to increase its chance to convert. Learn more

What is an ‘Exit Page’?

The Exit Page is the last page accessed during a visit.

Matomo (Piwik) reports the top Exit Page URLs, the number of Exits, Unique Pageviews and Exit Rate. Exit rate (sometimes called “Page Exit Ratio”) is the number of Exits from a page divided by total number of Page views of that page.

You can see all exit pages in the report at Behaviour > Exit pages.

See also our glossary of analytics terms.

What is the ‘super user’ in Matomo?

Super Users are the only users that can perform all administrative tasks such as adding new websites to monitor, adding users, changing user permissions, activating and deactivating plugins and even installing new plugins from the Marketplace.

By default in Matomo (Piwik) there is one super user which was created during the installation process. As of Matomo 2.1, you may give Super User permission to other users.

The Super User has superpower!

What is the ‘admin’ permission in Matomo?

Super users can create new users and assign them the ‘admin’ permission on a given set of websites. Users with the ‘admin’ permission can edit the website settings (Name, URLs, Timezone, etc.). They can also create, manage and delete entities for the website(s) such as Goals, Funnels, Forms, A/B Tests, Heatmaps, Session Recordings, Delete visits using the GDPR privacy tools, Invalidate reports, etc.

Users with ‘admin’ permission can also create new users and grant the new users the ‘view’ or ‘write’ or ‘admin’ permission on the website(s) the user has ‘admin’ permission.

Users with ‘admin’ permission cannot add other websites and they cannot manage plugins or other global settings.

What is the ‘write’ permission in Matomo?

Super Users and users with ‘admin’ permission can create users and assign them the ‘write’ permission on a given set of websites.

Users with the ‘write’ permission can view all reports in Matomo for the website(s) the user is set to ‘write’, and they can also create, update and delete website entities such as Goals, Funnels, Forms, A/B Tests, Heatmaps, Session Recordings, etc.

A user with ‘write’ permission is similar to a user with ‘admin’ permission but a ‘write’ user cannot edit or delete the website, and they cannot add new users and give them permission to view the website(s).

Also the user cannot add other users, websites, and they cannot manage plugins (only Super Users can).

What is the ‘view’ permission in Matomo?

Super Users and ‘Admin’ users can create users and assign them the ‘view’ permission on a given set of websites.

Users with the ‘view’ permission can view all reports in Matomo (Piwik) for the website(s) the user is set to ‘view’.

The user cannot add other users, websites, and they cannot manage plugins. They also cannot create, update or delete any website entities such as Goals, Funnels, Custom reports, Forms, A/B Tests, Heatmaps, Session Recordings. However they can view all these reports.

What is the token_auth and where can I find this token to use in the API calls?

The token_auth acts as your password and is used to authenticate in API requests.

Security considerations

The token_auth is secret and should be handled very carefully: do not share it with anyone. Each Matomo user has a different token_auth.

Matomo 4 and newer

To generate a token_auth follow these steps:

  • Log in to Matomo
  • Go to the Matomo Admin through the top menu
  • Click on Personal -> Security
  • In the bottom of the page click on “Create new token”
  • Confirm your account password
  • Enter the purpose for this plugin as a description
  • Click on “Create new token”

You will now see the newly created token. Save it somewhere safe as you won’t be able to see it anymore once you leave that screen. For example in a password manager. If you lose it, you will need to generate a new token.

We recommend you create a new token for every app or purpose. This way, you can easily delete or regenerate the token for specific purposes and see which ones are still being used etc.

Matomo 3 and older

You can find the token_auth by logging in Matomo (Piwik), then click on Administration in the top menu, then click the link “API” in the left menu.

The token_auth value can be re-generated on request by any user under Administration > Personal Settings.

Matomo for WordPress

The token_auth feature as well as Matomo’s HTTP Reporting API is not available in Matomo for WordPress because Matomo supports the WordPress REST API.

How do I find the website ID, also called idSite or Site ID?

Matomo (Piwik) lets you measure several websites within one Matomo server. Each website added into Matomo has its very own ID Site (or Website ID).

To find out the idSite value for a given website, you can follow these steps:

  1. Log into your Matomo.
  2. Go to Administration (click on the gear icon in the top right of the screen).
  3. Click on the Measurables(or Websites) > Manage page. You will find a list of all websites on this page.
  4. The website ID is on the left of the table listing all websites directly below the website name.

If you are using Matomo for WordPress, your Site ID should be 1 and you can double check this ID in Matomo Analytics > System Report > Matomo Blog idSite.

Can I install Matomo on one server and track visits on websites that are hosted on other servers?

You can track as many websites as you like that are hosted on the same server as Matomo (Piwik), or hosted on several external servers. Only the server that hosts Matomo needs to run PHP and MySQL.

There is nothing special to do to track websites from different domains. You simply need to create new websites by going to the admin area when logged in as Super User, and then click ‘View the javascript tracking code’ (help) to install on the websites you wish to track. For example, consider the following use case:

  • You have a website built in Java hosted on server1
  • You have a website built in Python hosted on server2
  • You can install Matomo on server3, and track visits from the two other websites

Note about https: Matomo automatically detect if the page being tracked is https (SSL) and would include the piwik.js in secure mode from your Matomo server.

How long does the Matomo archiving process take for high traffic websites – or hundreds of websites?

Every night, if you setup auto-archiving, Matomo (Piwik) will run through the logs and compile all your reports for each day, week, month and year. How long the process will take depends on your traffic, number of visits and pages, on the number of websites you have setup in Matomo… and of course on your server performance.
For example, using version 1.3 on a single core duo2 server with 3GB of ram, Matomo archiving process takes about 2 hours for 500,000 pages per day (and more than 1,000 websites). We are constantly improving Matomo performance: making Matomo faster is a top priority. Stay tuned… or come and help us if you know how to design software to make it faster.

Also, if you have a medium or high traffic website, we would be interested to hear your experience with Matomo archiving. How long does archiving take for your traffic, how many visitors/pages, how many websites, what type of server; Please post your numbers in the High traffic Matomo servers forum post, and let us know by email.

For practical information about managing Matomo for high traffic websites, see this FAQ: Matomo web analytics for high traffic websites check list.

How many users are registered on my Matomo?

To find out the total number of registered users on your Matomo (Piwik), first log in to your Matomo as a Super User. If your user has the Matomo “Admin” role then you might not see all the users.

In Matomo 3 and newer

When you are logged in, click on the “Administration” icon in the top right corner to load the admin area.

The number of users is shown in the widget “System Summary” in the top left of the administration home page.

In Matomo 2

When you are logged in, click on the “Administration” icon in the top right corner to load the admin area.

Click on “Users” in the left menu of the administration area, then scroll down to the “Users Management” section. It will show you the total number of users registered on your Matomo in the first paragraph of that section.

Is the Matomo Javascript Tracking Code XHTML 1.0 compatible?

Yes, Matomo (Piwik) Javascript Tracking code is valid XHTML 1.0 Strict. See an example on

What are “actions” in Matomo? How do I find my number of actions per month?

An ‘Action’ in Matomo (Piwik) is counted whenever a visitor:

  • visits a Page,
  • clicks on a Download or on an external link,
  • when a visitor searches on your website search engine,
  • whenever an event is tracked.

In Matomo reporting interface, all reports related to your visitors’ actions are listed under the left menu category “Behavior”.

To find the number of actions tracked per month, go to Matomo, and open the “All Websites” dashboard. In the calendar, select “Month”, then click on the previous month, and click “Apply”. The number of actions per month is displayed at the top next to the “All Websites dashboard” title.

Why are there sometimes 0 visits, but some conversions recorded, for example for a Keyword, a Website or a Custom Dimension?

Imagine the following use case:

1) User comes to your website via the campaign “Emailing November”, via a click on a link in an email tagged with Matomo (Piwik) (or Google Analytics) campaign parameters
2) He browses around and exits after 3 pages
3) He comes back the next day (on 2011-01-01), via a direct entry, and buys a product on your site (which you track as a Goal Conversion)

In this case, if you select the date 2011-01-01 in Matomo, it will show that the Campaign “Emailing November” did not have any visit on this day (because the user entered the website directly), but the conversion is attributed to the Last known referrer that the visitor used (which is stored in the first party cookie). On 2010-12-31, there will be one visit from the campaign “Emailing November” but no conversion on this day.

See also the FAQ: Matomo attributes conversions to the last seen referrer by default. How do I credit conversions to the first referrer instead?.

Matomo attributes conversions to the last seen referrer by default. How do I credit conversions to the first referrer instead?

When visitors convert a Goal, Matomo (Piwik) tries to attribute the conversion to the referrer that brought the visit to the site. Matomo will credit each Goal conversion to the last non empty referrer used by the visitor (ie. the last time the visitor came to the website with a referrer that was not a direct entry). In some cases several referrers can lead a same visitor to your website (eg. Search engines, Newsletter link).

Matomo default attribution model lets you choose whether to credit the conversion to the first referrer used or the last referrer used. If you need better visibility of all your channels touched during the customer journey, you can use the premium feature for multi channels attribution reporting.

Attribute conversions to the first referrer instead

To attribute the Goal conversion to the first referrer used instead of the last one, edit your Matomo Javascript Tracking code and add the following line just before the call to trackPageView:

_paq.push(['setConversionAttributionFirstReferrer', true]);

Multi Channel Attribution

Want to know the true value of all your marketing channels including all individual referrers?
Matomo lets you apply attribution models using the Multi Channel Conversion Attribution premium feature. Looking at only the first or the last referrer usually doesn’t let you know which channel is actually the most successful. Why? When a user visits your website several times, you only look at either the first or the last channel. However, you don’t give any credit to all other referrers the same user has used to visit your website. With the multi attribution feature, you can for example choose to give each referrer the same weight or to give all credit to the last non-direct referrer.

A search engine is counted as a website referrer. How can I add the search engine to Matomo?

To add a new search engine in your Matomo (Piwik) server, you can use the ReferrerManager plugin which lets you manage Search Engines and Social networks.

The lists of Search engines and Social networks detected by Matomo are maintained in our searchengine-and-social-list project on github.

Since Matomo 2.16.0 definitions are automatically updated in Matomo installations using a scheduled task. This guarantees your Matomo uses the latest definitions.

To submit a new Search engine to Matomo, please click here to open a Pull request or here to create an Issue in order to suggest it.

You can read more about how to add/edit a search engine or social network definition in the README file of the repository.

(Matomo uses an icon for each search engine and social network, placed in the directory plugins/Referrers/images/)

What is “page title not defined” in the Page titles report?

Matomo (Piwik) provides two reports for your page views: Page Titles and Page URLs. A page title is the content of the HTML <title> tag. If your pages do not define this <title> Matomo will instead report “page title not defined” for the visits on those pages.

We also highly recommend you use the latest version of the Javascript Tracking Tag in case you are still using the old Tracking tag.

What is “page url not defined” in the Pages report?

Matomo (Piwik) provides two reports for your page views: Page Titles and Page URLs. In some rare cases, a visitor’s browser will not let the Matomo Tag request the current URL (generally for privacy reasons). If Matomo could not request the page URL from the browser, Matomo will instead report “page url not defined” for the visits on those pages.

If all your pages report “Page url not defined” then there is a data tracking problem. Here are common reasons for this issue:

  • 1) check that the Javascript code in your pages is correct,
  • 2) if you manually track file downloads using _paq.push(['trackLink', '', 'download']) for example, note that you must use a full valid URL.
  • 3) if you are using Self-hosted Matomo (this issue does not occur on the Matomo Cloud): check that there is no automatic HTTP redirection on the piwik.js and piwik.php requests (for example via an .htaccess). 301 Redirection from http:// to https:// will not decode/encode properly some parameters especially URL parameters that look like a URL. The reason of this issue is still unknown but probably due to a bug in the webserver. Ensuring there is no redirection in your Matomo tracking calls will also ensure better performance. One way to ensure that there is no redirection from http to https is to modify your Matomo JavaScript tracking code and prepend https, here is an example: var u="https://your-piwik-server-url/";
  • 4) If your pages are correctly tracked but you still don’t see any URL being tracked, please investigate/debug the issue with Firebug or ask in the forums posting your site URL so we can help you.

In the Providers report, what does “Unknown” mean?

Matomo (Piwik) uses a special php function (gethostbyaddr) to request the hostname associated to a given IP. For example, the function would return “” and Matomo would categorize the visitor as using the provider “Comcast”. Sometimes however, for specific IPs or when the function times out, Matomo doesn’t know which provider the visitor is using and will simply report “Unknown”.

What does “Keyword not defined” mean in the Referers > Search Engines keywords report?

“Keyword not defined” means the search engine did not pass to your website the keyword used by your visitors — Search engines hide the keyword for privacy reasons. This started in early 2012 but now in 2017 there is now a powerful solution to get back your search keywords reports in Matomo (see below!).

Some search engines may not specify the keyword used to reach your website (for example Google, DuckDuckGo, Firefox latest version now also removes keywords, etc.). Matomo will by default report the search keyword as “Keyword not defined”. It means that Matomo has detected that the visitor came from a search engine, but the keyword was not provided in the Referrer URL. But in 2017 we have developed a new solution which makes it possible to see all your keywords that users used to find you:

–> To access your search Keywords you can now use the Search Engine Keywords Performance plugin created by InnoCraft (the makers of Matomo).

Learn more about how to import your Google, Bing and Yahoo Search keywords into your Matomo Analytics (formerly Piwik Analytics) reports in our Search Keywords Performance user guide.

Can I help translate Matomo into my native language, or improve the existing translation?

Of course you can! We love having people help us make sure Matomo (Piwik) is available to as many people as possible in a language they understand. Please see Matomo Translations for more information.

Does Matomo support IPv6 protocol?

Yes, Matomo (Piwik) works well with any IPv6 addresses. Here is further information:

  • Tracking API will track users with an IPv6 address.

  • Visitor Log and other detailed user reports will display IPv6 addresses.

  • IP Anonymisation privacy feature will anonymise IPv6 addresses. For example if Matomo is configured to anonymise “1 byte” from an IPv4, then the IPv6 address 2001:db8:0:8d3:0:8a2e:70:7344 would be anonymised as 2001:db8:0:8d3:0:0:0:0. When configured to anonymise 2 bytes, then the IPv6 becomes 2001:db8:0:0:0:0:0:0. And when configured to anonymise 3 bytes, then the IPv6 would be 2001:d00:0:0:0:0:0:0.

  • Geolocating IPv6 does not work very well: most IPv6 will not be accurately geo located. A few Ipv6 addresses may be geo-located when using the PHP or Apache geo location driver. IPv6 geo location does not work with the Maxmind PECL driver (issue). Geo locating Ipv6 addresses may improve in the future as DB-IP (our recommended Geo database provider) improves the accuracy of their IPv6 databases.

  • Logs containing IPv6 addresses can be imported in Matomo without any issue and they will be correctly parsed, anonymised (when applicable), stored and processed.

Here is an example of an Ipv6 address: 2001:0db8:85a3:0000:0000:8a2e:0370:7334.

Does the Matomo Tracking tag work on https (SSL) pages?

To track your https pages correctly, your server hosting Matomo (Piwik) should work when called from https. You will need to buy a SSL certificate for your Matomo server.

Many Matomo users successfully use Matomo to report analytics of Ecommerce and SSL secure shops.

The Matomo tag detects the protocol of the page being tracked, and then automatically calls the normal http or secure https Matomo server.

To check whether your Matomo server works over HTTPS, go to: https://url/to/piwik/piwik.php?rec=1&idsite=1 – if it returns a blank page it is working. If https://url/to/piwik/piwik.php?rec=1&idsite=1 returns an error, please contact your sysadmin to ask her to enable SSL on the Matomo server.

On a related note, you can also force the Matomo login form to use secure SSL connections.

To ensure that your visitors and all their actions on SSL HTTPS pages will be correctly tracked in your Matomo, you need to check that your SSL Matomo Server is correctly configured.

Does Matomo support Google Analytics campaign parameters (utm_campaign, utm_medium, utm_source, utm_term)?

Matomo (Piwik) detects URLs tagged with Google Analytics campaign parameters. By default, Matomo offers two dimensions for Campaign tracking: name, and keyword. The parameters utm_campaign, or utm_medium, or utm_source are used as the Campaign name. The parameter utm_term is used as the Campaign keyword. You can learn more about Tracking Campaigns in Matomo or head over to the URL Builder.

If you need to track more than two campaign dimensions in Matomo, for example if you want to enjoy the same campaign reporting as in Google Analytics, you can install the MarketingCampaignsReporting plugin available here on the Marketplace. The Marketing Campaigns Reporting plugin lets you track up to fix Campaigns parameters (name, source, medium, keyword, content and campaign ID) and automatically detects the utm parameters: utm_campaign, utm_source, utm_medium, utm_term, utm_content, utm_id.

Advanced users:

  • you may choose to customise campaign parameters detected by Matomo.
  • you can use campaign parameters in the query string landing?utm_campaign=PaidSearch, and Matomo also detects campaign and keyword in the hash tag string landing.html?q=test#utm_campaign=PaidSearch

Note: you can also import Google Analytics data and reports in Matomo.

What is a Product SKU in the Ecommerce Analytics report?

SKU stands for Stock-keeping unit. A Product SKU is a string representing the Product unique identifier in your Ecommerce shop: for example, SKU for books might be the ISBN identifier for this book such as 8120725247.

A given Product might change its name over time, but the product’s SKU should always be the same. With Ecommerce Analytics, you can track Product SKUs, Product Names and Product categories and get interesting analytics reports about your online ecommerce shop performance.

Reporting by SKU can also help you differentiate between different versions of the same product. For example, if you sell products in multiple sizes or quantities which share the same name, but have unique SKU numbers. Alternatively, if you sell digital memberships you might have a unique SKU for different lengths of membership access even though they are essentially the same product and share the same product name.

What is the difference between Custom Dimensions and Custom Variables?

Custom Dimensions are similar to Custom Variables but they provide several advantages:

  • Each dimension has its own menu item under either “Visitors” or “Behavior” making them first class citizen reports
  • A single Custom Dimension report can be widgetized whereas it is only possible to widgetize all Custom Variables reports combined
  • More metrics are available for Custom Dimensions in scope “Action” (Unique actions, Exit rate, Bounce rate, Average time on dimension, Average generation time) and the row actions Segmented Visitor Log, Overlay and Transitions can be used
  • Custom Dimensions are easier to segment as the segment name will be the name of your Custom Dimension in the UI
  • Custom Dimensions are more efficient as they need less storage and reports can be generated faster
  • Custom Dimensions are easier to track as only the Custom Dimension ID and Value need to be set in the tracker whereas for Custom variables the Name, Scope, Index and Value need to be set during tracking.
  • Custom Dimension values in scope Action can be tracked automatically by extracting the value from the tracked URL or Page Title
  • The name of a Custom Dimension can be changed at any time
  • Values of Custom Dimensions are limited to 255 characters whereas Custom Variables are limited to 200

However, there is also a limitation. Unlike Custom Variables you cannot use the same slot/index for many different names or use cases. While for both Custom Variables and Custom Dimensions 5 slots in scope Action and 5 slots in scope Visit are available, you cannot use a specific slot of a Custom Dimension for something else. Once you have created a new Custom Dimension you can only deactivate it. Deleting a dimension and creating a new one is not possible. However, if you ever run out of available Custom Dimension slots you can make more available at any time. This just might take a while as it requires schema changes in the database.

In general we recommend users to use Custom Dimensions as we will deprecate Custom Variables at some point. With Matomo (Piwik) 3.0 Custom Dimensions will be most likely installed by default.

When I enable “Purge old logs” in the Privacy settings, how do I make sure that no historical data is lost?

If you enable ‘Purge old visitors logs‘ in the Administration > Privacy menu, Matomo (Piwik) will regularly delete your Visitor Logs from the Database. The Logs are used by Matomo to process Reports such as “Top Keywords”, “Top pages”, etc. If some old logs are deleted from your database, but reports have not been yet processed, the data will be lost forever.
We highly recommend that before deleting old visitor logs from your database,

1) you setup the automatic archive processing,
2) and run the console core:archive console command until completion at least one time, making sure there are no errors during the execution.

This will ensure that all daily reports for each website have been pre-processed and the logs are no longer needed for these days.

How many Custom Variables can I set to visitors and/or page views?

Note: If you are not already using Custom Variables to measure your custom data, we recommend to use the Custom Dimensions feature instead. There are many advantages of Custom Dimensions over Custom variables. Custom variables will be deprecated in the future.

Matomo (Piwik) custom variables tracking are an easy way to track custom values and variables about your visits (for example “Username”, “Membership level”) or page views (eg. “Category:Sport”). You can track up to 5 variables for each Visit on your website. On top of these 5 custom variables for each visit you can also track up to 5 custom variables for each page view.

Learn more about Custom Variables Analytics.

Privacy policy: How do I update my privacy policy to explain Matomo Analytics?

When you use Matomo (Piwik) to track your visitors, we recommend to update your Privacy Policy to explain how Matomo is used and what data it gathers. We provide a Privacy Policy template for Matomo users that you can copy on your site.

If you do not already have a Privacy Policy on your page, but gather some information about your users, we highly recommend that you create the privacy policy.

Learn more in: Writing my privacy policy for Matomo Analytics under GDPR.

How do I let visitors opt-out from tracking?

To respect the privacy of your visitors, it is recommended to include the Matomo (Piwik) Opt-out iframe in your website. This iframe will display to your users a short text and let them opt-out in one click.

To find the code for the iframe, login to Matomo, then click Administration and then click Privacy > Users opt-out.

Here is what the opt-out iframe looks like:

You can easily customise the opt-out iframe’s font color, font family, font size, as well as the background color.

Learn more in the Privacy user guide.

See also: How do I exclude / ignore my traffic from Matomo?

Alternatively, if you want to opt-out all your users by default instead and let them opt-in to being tracked, then you can “require consent” and ask for consent by following the steps in Implementing tracking consent in Matomo

What are the cookies created by Matomo JavaScript Tracking client?

To track users on your website(s) or app(s), the default Matomo Tracking code in JavaScript uses 1st party cookies, which are set on the domain of your website.

Cookies created by Matomo start with:

  • _pk_ref
  • _pk_cvar
  • _pk_id
  • _pk_ses
  • mtm_consent, mtm_consent_removed and mtm_cookie_consent: when you’re asking your users for consent
  • matomo_ignore, when you exclude yourself from being tracked (opt-out) using the cookie method or using the iframe opt-out method. (Note: when Matomo is setup on a different domain than the website being tracked, the matomo_ignore cookie will be a third party cookie. This cookie does not contain personal information or any ID and the cookie value is the same for all visitors)
  • matomo_sessid, when you use the opt-out feature (this is called a nonce and helps prevent CSRF security issues)
  • _pk_hsr, when you use the Heatmap or Session Recording)

You can also choose to Disable all first party cookies from being set, for example for privacy reasons.

Matomo by default does not use third party cookies but you can enable a third party _pk_uid cookie if you wish.

Learn more about What data does Matomo track?.

Default expiration times

The cookies described above will eventually expire and be removed from your users’ browsers.

  • _pk_id – 13 months (used to store a few details about the user such as the unique visitor ID)
  • _pk_ref – 6 months (used to store the attribution information, the referrer initially used to visit the website)
  • _pk_ses, _pk_cvar, _pk_hsr – 30 minutes (short lived cookies used to temporarily store data for the visit)
  • _pk_testcookie is created and should be then directly deleted (used to check whether the visitor’s browser supports cookies)
  • mtm_consent (or mtm_consent_removed) are created with an expiry date of 30 years to remember that consent was given (or removed) by the user. It is possible to define a shorter expiry period for your user consent by calling: _paq.push([‘rememberConsentGiven’, optionallyExpireConsentInHours]). Learn more in the Asking for consent developer guide.
  • mtm_cookie_consent is created with an expiry date of 30 years to remember that consent for storing and using cookies was given by the user. It is possible to define a shorter expiry period for your user cookie consent by calling: _paq.push(['rememberCookieConsentGiven', optionallyExpireConsentInHours]);. Learn more in the Asking for consent developer guide.

The default expiration times listed above can be modified via JavaScript. Learn more about setting custom expiration times.

How do I disable all cookies for a visitor?

In some countries, the law requests websites to provide a way for users to opt-out of all tracking, in particular tracking cookies.
Matomo uses cookies to store some information about visitors between visits.

Disable cookies for all sites within Matomo

If you never want to make use of cookies in any of your sites, then you can simply disable cookies for all sites.

Disable cookies for a specific site when you are using Matomo On-Premise or Matomo Cloud

See also: List of cookies used by Matomo (Piwik).
It is easy to disable tracking cookies by adding one line in the Matomo Javascript code. Edit your Matomo Javascript code as follows:

// Call disableCookies before calling trackPageView 

If you are using Matomo for WordPress

Log in to your WordPress Admin Dashboard. Go to “Matomo Analytics -> Settings”. You will see the tracking settings page. To disable cookies enable the option “Disable cookies” and press “Save changes”.

If you are using Matomo Tag Manager

Using Matomo Tag Manager, you can disable tracking cookies by either of these solutions:

  1. in your Matomo Tag, you can check the option “Disable cookies” which will disable all first party tracking cookies for Matomo.
  2. or if you still want to use cookies if user gives consent, then you can create a “Custom HTML” tag, and insert _paq.push(['requireCookieConsent']); in this tag. You would also need to create a Trigger on “DOM Ready” (which will be executed first before the Pageview trigger). Then in your Custom HTML tag, set “Execute this tag when any of these triggers are triggered.” to “DOM Ready”.

Implications on data accuracy

Learn more how cookie affect data accuracy in our FAQ: When cookies are disabled by a visitor, how does it impact Matomo reports accuracy?

Implication on cookie consent banner and asking user for consent

You can avoid the analytics cookie consent banner by disabling all analytics cookies in your JavaScript tracking code (as per instructions above). Learn more about tracking analytics without consent or cookie banner

Essential non-analytics cookies that may still be created

Note: when cookies are disabled, there may still be a few essential cookies created in specific cases:

  • when you exclude yourself from being tracked using the cookie method or using the iframe opt-out method, Matomo will create a cookie piwik_ignore set on the domain of your Matomo server (a temporary short-lived cookie called MATOMO_SESSID will also be created).
  • when you’re asking for consent before tracking visitors, two cookies may be created: mtm_consent and mtm_consent_removed.
  • _pk_testcookie is also created without any identifier and is directly deleted (it is only used to check whether the visitor’s browser supports cookies)

When cookies are disabled by a visitor (cookie-less tracking), how does it impact Matomo reports accuracy?

There are various cases where cookies can be disabled: when the browser has cookies disabled, or when the Matomo JavaScript code runs cookie-less (disabled cookies via call to disableCookies()), or if you are importing server logs in Matomo which do not contain cookie information.

When cookies are disabled, some data in Matomo will be less accurate.

You’ll find below the complete list of metric and reports affected. All other reports which are not mentioned below will still work the same.

Unique Visitors and New VS Returning visitors metrics will be inaccurate

Matomo uses cookies to store a unique visitor ID, used to recognize visitors from previous visits. When cookies are disabled, Matomo will still be able to determine unique visitors based on IP address and other footprints, but this will be inaccurate. So the following metrics will be inaccurate: Unique visitors, New visitors, Returning visitors.

Goals and Ecommerce conversions will be attributed to the channel used in the visit that converts

Ecommerce and Goal tracking attribution is also affected. By default, Matomo stores the website or keyword or campaign used to find your website in a cookie, so that we can credit (attribute) this website when the visitor makes a conversion (Goal conversion or Ecommerce order). When the conversion happens in the same visit, Matomo will be able to credit the website referrer (even if cookies are disabled).

However imagine the following use case: the visitor uses a newsletter link tagged with a campaign parameter, then visits 5 pages on your website but does not buy. She then comes back 2 hours later directly typing your website URL (therefore a Direct Entry visit), then buys during this second visit. When cookies are enabled, Matomo credits the conversion to the initial Campaign. When cookies are disabled, the conversion is not attributed to the original newsletter link as this data is not available.

Multi Attribution and Cohort reports won’t show data

Because all conversions will be attributed to the channel used in the visit that converts, Multi Attribution reports for multiple channels and Cohorts reports won’t be able to show data.

A small limited number of other reports will be inaccurate

The following reports won’t display accurate data anymore, because all visits without cookie will be counted as if they were new visitors, making the report inaccurate:

  • Days since last visit
  • Visits by visit count
  • Visits to Conversion
  • Days to Conversion

See also: How does Matomo detect unique and returning visitors?

How do I enable Secure cookie flags in all tracking cookies?

What are Secure Cookies? Secure cookies is a type of cookie which is transmitted over encrypted HTTP connection. When setting the cookie, the Secure attribute instructs the browser that the cookie should only be returned to the application over encrypted connections.

To enable Secure Cookies, add the following line in your Matomo JavaScript tracking code:

_paq.push(['setSecureCookie', true]);

Then all tracking cookies are created with the Secure cookie attribute.

Note: this security feature should be used only if the website is available under HTTPS only.

How do I get insights in the movers and shakers? (Increasers and Decreasers)

The Movers and Shakers report shows you the elements of a report that have increased or decreased the most in terms of visits or pageviews.

For example you can see at a glance which pages have increased (or decreased) the most in traffic this month compared to the last month (without having to specifically look and compare your reports saving you time). Similarly you can see the websites that used to bring many visits in the last month but have now stopped (and the websites that start sending you visits but didn’t use to).

The Insights feature is available in most reports such as Pages, Page titles, Downloads, Outlinks, Events, Contents, all Custom Dimensions reports, most Software and Devices and Locations reports.

Viewing “Movers and Shakers” in the dashboard

In Matomo 4.x, the default dashboard includes the “Movers and Shakers” widget. This widget will show the movers and shakers across a selected set of reports which are: Pages URLs, Page titles, Downloads, Websites, Campaigns, Social media sites and Search engines.

If you don’t see the “Movers and Shakers” widget in your dashboard:

  1. go to Dashboard,

  2. click on the “Dashboard” selector,

  3. under “Add a widget”, hover on “Insights”,

  4. then click the “Movers and Shakers” widget to add it to your dashboard.

Viewing “Movers and Shakers” in a specific report

You can also view the movers and shakers for any report that supports it.

  1. open your report (for example the “Pages” report),

  2. under the report, click the “Change Visualisation” icon,

  3. then click the light bulb icon labeled “Insights” to open the Insights visualisation

You will now see the trending pages compared to the previous time period.

Below the report you will be able to choose whether to show the Growth compared to the previous period or Growth compared to the same period last year. You can also see the results for a different time period by changing the date in the Date Selector at the top of the page.

The data can also be filtered for example show only movers, only the new elements, or only show those that have disappeared from the report. By default, the report is set to show Increaser and decreaser, or you can update it to show either on its own.

The example below shows the most increased visits by Channel Type over a one-month period. You can see the actual number of additional visits and the percentage increase those visits represent.

Movers and Shakers - Channel Insights Report

Use the Date & Segment comparison feature for more in depth analysis

The Date & segment comparison feature lets you see and compare all the metrics, learn more in this article.

Is there a Matomo Certification program?

At this time we do not offer an official Matomo Certification program. (In May 2020 we have discontinued our older certification program.)

We recommend you start or continue learning Matomo today! You can get a good introduction of Matomo Analytics and Matomo Tag Manager with our training videos program:

And generally you can learn to master Matomo by reading our User Guides, and FAQs, and of course by using Matomo to understand your users better, track your goals, identify and solve problems in your flows and funnels, and find insights in the reports.

You’ll find all resources in the Matomo Help Centre at

When tracking visitors using an image beacon instead of the JavaScript tracker, what are the differences?

When you are using an image beacon to track your visitors instead of the default fully featured JavaScript tracker, there are several data points of the visitors that won’t be tracked:

  • Referrers, including Search Engine Keyword, Referrer Website URL and Social network URL
  • Screen resolutions
  • Browser plugins
  • Page titles
  • Time in local user’s timezone
  • The image tracker code also does not create first party tracking cookies which results in some information being lost.
  • Files that were clicked and downloaded (Download)
  • Links to an outside domain that were clicked (Outlink)
  • Pages generation time (the time it takes for webpages to be generated by the webserver and then downloaded by the user)

Information that will be correctly tracked include:

  • User IP address
  • Date and time of the request
  • URL of the page being viewed (Page URL)
  • Location of the user: country, region, city, approximate latitude and longitude (Geolocation)
  • Main Language of the browser being used (Accept-Language header)
  • Browser, operating system, device used (desktop, tablet, mobile, tv, cars, console, etc.), brand and model

See also: How do I enable tracking for visitors that have disabled Javascript? and How do I track how many users open and read my newsletter emails (using a pixel / beacon)?

What data does Matomo track?

When you use the Matomo (Piwik) JavaScript Tracker Matomo will by default track the following information:

  • User IP address (see also: IP anonymisation)
  • Optional User ID
  • Date and time of the request
  • Title of the page being viewed (Page Title)
  • URL of the page being viewed (Page URL)
  • URL of the page that was viewed prior to the current page (Referrer URL)
  • Screen resolution being used
  • Time in local user’s timezone
  • Files that were clicked and downloaded (Download)
  • Links to an outside domain that were clicked (Outlink)
  • Pages generation time (the time it takes for webpages to be generated by the webserver and then downloaded by the user: Page speed)
  • Location of the user: country, region, city, approximate latitude and longitude (Geolocation)
  • Main Language of the browser being used (Accept-Language header)
  • User Agent of the browser being used (User-Agent header)

From the User-Agent, we use our Universal Device Detection library to detect the browser, operating system, device used (desktop, tablet, mobile, tv, cars, console, etc.), brand and model.

Some information is also stored in first party cookies and then collected by Matomo:

  • Random unique Visitor ID
  • Time of the first visit for this user
  • Time of the previous visit for this user
  • Number of visits for this user

(Note: it is possible to disable tracking cookies)

Data that may be tracked (optional)

You may also configure Matomo to track optional information about your users or how they are using your website and apps:

Data tracked which may be personal data or Personally Identifiable Information (PII)

Some data tracked by Matomo can be personal, private, sensitive and/or confidential. Unsure of what PII is? Read this introduction on personally identifiable information.

The following information may contain such personal data, depending on what pages you track and what data is being collected (see also: how not to process any personal data):

  • IP Address is considered personal data, unless you have enabled the IP anonimisation to at least 2 bytes.
  • User ID may be personal data (you may also activate the privacy feature to replace each User ID with a pseudonym).
  • Custom dimensions and Custom variables may store personal data.
  • Site searches (on your website) may be personal data (for example when users search for their name or postcode on your website search engine).
  • Both Heatmap pages and Session Recordings, may contain personal data (for example, a Profile page on a social media website would include the name and photo of the user which would be recorded in the Heatmap and/or the Session Recording). If you want to not track these data, then you can specifically discard tracking them by using data-matomo-mask attribute on these page elements containing personal data.
  • In Session recordings, please note that by default all form fields values are automatically discarded and not tracked. To track form field values in Session Recordings, you would need to manually mark the form fields to track with data-matomo-unmask attribute.
  • Both Page URLs and Page titles and Custom Events may contain personal data depending on how your website(s) are designed (for example when the Page URL or URL parameters include email, postcode, name, or a physical address).
  • Referrer URLs may contain personal data (for example when your users come from another website which leaks your visitor’s personal data in their page URLs).
  • Tracking cookies IDs may (or may not) be considered personal data, and can be disabled.
  • Geolocation is based on the IP address and may be considered personal data.
  • Ecommerce Order IDs is generally considered personal data as the order ID can be linked back to the customer. You may also activate the privacy feature to replace each Order ID with a pseudonym.

How does Matomo detect unique and returning visitors? (with User ID or Visitor ID from tracking cookie)

This FAQ explains how the Matomo (Piwik) Tracking API detects unique visitors, and returning visitors, depending on how the Tracking API is used.

When a visitor views a page or screen, Matomo will attempt to detect whether this request belongs to an existing visit, and/or whether the visitor has visited the website before.

How does Matomo detect whether the visitor is known?

  • If a User ID is set, either via setUserId in your favorite SDK or via &uid= in the Tracking API, then we will look first for visits where the log_visit.idvisitor matches the Visitor ID (as found in first party tracking cookies). If no visit is matched, we look for visits where either the log_visit.user_id matches the User ID, or where log_visit.config_id matches the visitor config_id.
  • When a Visitor ID was manually set in the Tracking API via &cid= (see: Tracking API reference for cid), we only look for visits where log_visit.idvisitor matches this &cid.
  • When trust_visitors_cookies is set to 1 (see: FAQ about trust_visitor_cookies), and a visitor ID is found either in first party cookie _pk_id (see: first party tracking cookies) or in the third party cookie (see: enabling third party cookies), we only look for visits where log_visit.idvisitor matches the visitor ID from cookie.
  • Otherwise when a visitor ID is found in a first party cookie or in the third party cookie, we look first for visits where the log_visit.idvisitor matches the visitor ID from cookie. If no visit is matched, we look for visits where the log_visit.config_id matches the visitor config_id.
  • Finally, when there is no visitor ID found in first party cookie (nor in the third party cookie) and a visitor ID was not specified via &cid=, we only look for visits where the log_visit.config_id matches the visitor config_id.

When matching visits by visitor/user ID, Matomo looks through the entire history of visits that are currently in the database. When matching visits by device config_id (log_visit.config_id), we only look back window_look_back_for_visitor seconds. By default, this value is set to 30 minutes. This setting can be changed: learn more.

If a visitor is found, then Matomo will assign the current request to this existing visitor, either by updating the current visitor’s visit or by creating a new visit when appropriate (learn more about what Matomo considers a visit)

How does Matomo detect a returning visitor?

A visitor will be marked as ‘Returning visitor’ when:

  • they have visited the website at least once before this visit and both visits were made using the same browser and with tracking cookies enabled (this can be detected via the ‘visit count’ and ‘first visit time’ and ‘last visit time’ found in tracking cookie and sent to Tracking API as &_idvc= and &_idts= and &_viewts=)
  • or they have visited the website but with tracking cookies deleted or lost, Matomo still managed to find a previous visit from this person (applicable when customising window_look_back_for_visitor to a higher value learn more)
  • or they have purchased an item on the website before this visit (according to the ‘last ecommerce order date’ found in tracking cookie and sent to Tracking API as &_ects=)

How are visitors tracked across multiple domain names?

By default, Matomo does not track unique visitors across domain names. But if you track multiple domain names in the same website in Matomo, and you want to track your visitors accurately across all the domains, you can use Cross Domain linking for this: learn more in our Measuring Visitors Across Domains – Cross domain linking FAQ.

Which HTTP request headers are used by Matomo?

When measuring activity with the Matomo (Piwik) Tracking API, the following HTTP headers may be used:

  • Host – the hostname of the HTTP request, the hostname of the Matomo server.
  • Referer – used to track Referrer information such as website, search engine, social network.
  • User-Agent – used to detect the information about browsers, operating system, devices by device-detector library.
  • Cookie – when Opted-out from tracking, or when Third party cookies are used.
  • Origin – used when cross-origin resource sharing is enabled.
  • Accept-Language – used to detect the users’ language
  • X-Forwarded-Proto, X-Forwarded-Host, X-Forwarded-For – when Matomo is setup behind a proxy
  • DNT – used to detect whether a visitor’s device is opted-out from tracking (Matomo privacy)

Is the Matomo JavaScript Tracker CSP (Content Security Policy) compatible and how do I set it up?

Yes, Matomo can be used with CSP. However, you cannot use the standard tracking code generated by the Tracking Code Generator in the Matomo UI as it is not allowed to use inline scripts when having CSP enabled. CSP is a security concept to prevent cross-site scripting (XSS) attacks as well as related attacks.

Setting up the JavaScript Tracker

Instead make sure to put the tracking code into files like this:
<script src=""></script>
<script src="" async defer></script>

The file matomo.js should be loaded from your Matomo server and tracking.js should contain the actual tracking calls like this:

var idSite = 1;
var matomoTrackingApiUrl = '';

var _paq = window._paq = window._paq || [];  
_paq.push(['setTrackerUrl', matomoTrackingApiUrl]);
_paq.push(['setSiteId', idSite]);

Make sure to specify the correct idSite if needed and to replace the Matomo Tracking API URL. You can build this URL by appending /matomo.php to your Matomo domain.

The tracking.js file will be unique for each website that you will be installing the Matomo JavaScript tracking code on and will need to be stored in your webserver root folder.

Setting up Matomo Tag Manager

If you’re using Matomo Tag Manager instead of the standard JavaScript tracking code, you can to set the tracking code up to work with CSP as follows:

<script src=""></script>
<script src="" async defer></script>

The file js/container_XXXXX.js should be loaded from your Matomo server, replacing the container ID with the one generated by Matomo and tracking.js should contain the following:

    var _mtm = window._mtm = window._mtm || [];
    _mtm.push({'mtm.startTime': (new Date().getTime()), 'event': 'mtm.Start'}); 

Important note: The example above assumes that you are using the Matomo Tag Manager as the Default Tracker and that the Matomo Javascript tracker is bundled with the Matomo Tag Manager container. If you are using both the JavaScript tracker and Matomo Tag Manager, you will need to combine both of the above methods.

Configuring Content-Security-Policy

If you load matomo.js from a different domain make sure to allow the Matomo domain like this: script-src 'self' If you load third party JavaScript files or if you have a CDN you might have to add even more domains to the whitelist.

An example response header looks like this:

Header set Content-Security-Policy "default-src 'self'; connect-src; script-src 'self'; img-src 'self'; style-src 'self'; frame-ancestors 'self'; frame-src 'self';"

If CSP should work in all browsers you might have to add further headers. At the time of writing this article you might as well need to set X-WebKit-CSP for Safari and X-Content-Security-Policy for Internet Explorer support. Read more about Content Security Policy.

What is two-factor authentication?

Two-factor authentication increase your account security by adding an additional layer of verification when you log in. Each time you log in, you will not only be asked to provide your login and password, but also an additional authentication token which changes periodically and is generated typically on your mobile device (phone or tablet). This means that even when someone knows your username and password, they still won’t be able to log in unless they have access to your mobile device.

We strongly recommend you to use two-factor authentication for the safety of your account.

You can activate two-factor authentication by going to “Administration => Personal Settings”. There you will find a link to activate it. When you set this up, make sure to backup your recovery codes (ideally in your encrypted password manager) in case you lose your mobile device or if you cannot access it anymore.

A user with super user access can force every user to have two-factor authentication enabled. In this case, you might be forced to set up two-factor authentication and you won’t be able to disable it anymore.

Please note that when you issue an API request, or authenticate using your authentication token (for example when you export widgets), the two-factor authentication code is not being verified.

When the Matomo server is unavailable (down) how does this affect my websites loading speed and tracking data collection?

It may happen that your Matomo (Piwik) analytics platform service is down / unavailable temporarily. Here are some important notes:

  • Your websites will still load correctly and should not be affected by any problem on the Matomo side. In the worst case scenario where Matomo server(s) are completely down and do not serve the /piwik.js file, users’ browser will still render your websites quickly because Matomo uses an asynchronous JavaScript library to measure users. The asynchronous JavaScript means that Matomo piwik.js file is optional for your website to render.

  • Due to the way the Matomo JavaScript tracker works, even if the JS file cannot be loaded in your users’s browsers, then there won’t be any JavaScript error in your website, even when Matomo is down. Your users’ experience should be unaffected.

  • If for a few minutes or a few hours, your Matomo service is down, you may have lost data for this time period. In some cases, it is possible to replay most, or all, of the lost data. Learn more about how to replay your Matomo web server access logs and restore your tracking data that was not imported during the outage.

See also Will the Matomo Analytics JS Tracker slow down my site?

Does Matomo use a fingerprint and how is it processed?

Matomo does not use a fingerprint to track visitors.

Instead of a fingerprint, Matomo uses the most privacy-friendly industry-leading measures to protect users privacy instead of fingerprinting: the config_id is used by Matomo to group different actions into “visits” during a short window of up to 24-hours.

The visitor config_id is a randomly-seeded, privacy-enabled, time-limited hash of a limited set of the visitor’s settings and attributes. The config_id or config hash is a string calculated for a visitor based on their operating system, browser, browser plugins, IP address and browser language. Unlike other tools that use fingerprinting, Matomo does not do fingerprint, and the config_id is only valid for less than 24 hours and only valid for one particular website domain:

  • the config_id is only valid for 24 hours maximum and is then rotated, meaning the same visitor will have a different config_id each day.
  • The config_id randomly changes and is fully anonymised every 24 hours. The randomly-generated seed is discarded each day and cannot be recovered.
  • the website ID is used to process the config_id which means that on your Matomo (Piwik) instance, a given user/visitor will always have a different config_id when browsing your different websites and domains.
  • the IP address used to create the config_id will be the anonymised IP address when you have enabled IP anonymisation which is the default privacy setting in Matomo (when you select “Also use anonymised IP when enriching visit: No” then the full IP address will be used in the hash calculation).

Learn more how does Matomo detect unique and returning visitors with User ID, Visitor ID from cookie.

Will Matomo track users when the web app or mobile app is offline (no internet)?

If you use the iOS SDK or the Android SDK, user interactions and events tracked while the user is offline are queued, and will be tracked in Matomo as soon as the user comes back online.

If you use the JavaScript Tracker in your web application, starting in Matomo 4.0.0, it is possible to enable offline tracking of actions (by default it is disabled). Learn more in How do I set up Matomo offline tracking?

Matomo and phpMyVisites

Matomo (Piwik) is the successor to phpMyVisites, founded by Matthieu. There will be no future development, bug fixing or new releases of the phpmyvisites project.

We strongly encourage users to start using Matomo as soon as possible (check out the online demo or the list of Analytics features).

I have custom needs for a new Matomo functionality, such as a new custom plugin or a new report. Who can build for me a quality solution to solve my requirements?

If you have custom needs and requirements, for example if you need a new functionality in Matomo (Piwik), or a new report in your analytics dashboard, or even a new custom plugin, you can get in touch with the leading Matomo experts by filling in our form:

After you send in the form below we will check the requirements and will get back to you as soon as possible with a proposal and estimate.

We have created many quality solutions for Matomo clients over the years and we look forward to helping you.

In iOS 14.5 Apple introduced a privacy prompt where users need to give permission first before they can be tracked. This is a requirement for all apps that track your activity across your iPhone, iPad or Apple TV. As Matomo does not track behaviour across apps or phones, this privacy prompt is not needed when using Matomo. If you have multiple apps and you are using Matomo’s User ID feature, then this should also not apply to you because you are only tracking a user in your own apps.

You can read more about this on Apple’s User Privacy and Data Use page.

How do I use the console tools in Matomo? Which console tools are available in Matomo by default?

Matomo (Piwik) is an analytics platform that comes with a set of APIs (Tracking API and Reporting & Management API), a web application with a modern user interface, but Matomo also comes with a powerful console tool.

To use the console, connect to your server running Matomo using SSH or your server console. The tool is a script located in Matomo’s root directory and called console. You can run it with the command:

./console help

The Matomo console has many uses and new commands are regularly added to the console. By default, Matomo has commands to enable and disable plugins (plugin:activate and plugin:deactivate), modify the config.ini.php file pragmatically (config:set), clear the cache (cache:clear), run the archiver (core:archive), delete old log data (core:delete-logs-data), invalidate specific old reports (core:invalidate-report-data), run the scheduled tasks (scheduled-tasks:run), update Matomo system and database after the files were updated (core:update), enable the development mode (development:enable), run the system check diagnostics (diagnostics:run), open and watch the content of the Matomo log messages (log:watch), and many others.

List all of the commands available on your Matomo server by running:

./console list

Plugins you use from the Marketplace may also add new console commands. For example the CustomDimensions plugin will add new console commands to list information about custom dimensions (customdimensions:info) or to let you add and remove custom dimensions (customdimensions:add-custom-dimension, customdimensions:remove-custom-dimension).

Read our Matomo console commands guide to learn more about commands.

Visits and clicks data provided by search engines or ad networks or affiliates do not match the acquisition reports in Matomo?

Sometimes you may get reports from search console tools, or from partners, or affiliates, or from ad networks, about how many clicks they have generated from their website to yours.

When you compare your search console reports provided by the search engines, with the acquisition reports in Matomo, you will notice some small differences in the data which is expected. Below you will find the reasons that can explain the differences between your different data sets.

Comparing clicks with visits

For example when you look in the Google Search Console, or in Bing Webmaster Tools, or in Baidu Webmaster Tools, or in Yandex Webmaster Tools, it will list “Clicks” and “Impressions”. But in Matomo Acquisition reports (such as “Overview” and “All channels” reports), it will “Visits”. One particular “Visit” by a visitor may have clicked several times on search results and the search engines count each of these individual “Clicks” whereas Matomo would count only one “Visit” (assuming they searched within the 30 minutes visit duration). Similarly ad network reporting (Google Ads, Bing Ads, Facebook Ads, Twitter Ads, Instagram Ads, LinkedIn Ads, Youtube Ads, AdRoll) will typically provide impressions and clicks.

Matomo may exclude users who asked not to be tracked (DoNotTrack)

Matomo by default respects the DoNotTrack setting. If visitors have selected not to be tracked in their browser, Matomo will not collect information about them. If you suspect many of your users are using DoNotTrack, you can disable it in the Privacy settings. This features works in the JavaScript tracker.

Matomo will not track people using adblockers

Typically some ad blockers will block Matomo tracker from running. But the search engines and affiliates will still report clicks from users that use ad blockers. This could sometimes alone explain 5-10% of discrepancy in the data.

Some users may be excluded from Matomo using IP address or other ways

There are several ways Matomo can be configured to exclude and ignore some traffic, such as if you have setup IP exclusion rules or User-agent exclusions. But the search engines and affiliates will still report clicks from these users that were ignored in Matomo.

Position of your Matomo Tracking code

Matomo will only track users who stay long enough on the page to execute the JavaScript tracking code. Some users may close the browser window before the Matomo Tracking code could execute (for example if the page takes 5 or 10 seconds to load). It is recommended to put the Matomo tracking code at the end of your </head> tag in your pages. And check that there the scripts in your pages are executing quickly. The faster your page loads, the faster the Matomo tracking code will load and will be more likely to track the visits.

Are you using a redirect on your website landing page?

If you are using a redirect on a landing page, the visitor’s browser may lose the referrer information. If you are tracking campaigns, and the landing page has a redirect, the URL loaded after the redirection will have lost the URL parameters. Make sure that your visitors arrive directly on the page with the Matomo tracking code installed.

Is your website using HTTPS (SSL)?

Most websites these days are running over HTTPS. When someone is visiting another website over HTTPS and clicking on a link to your website, you want to make sure that the link to your website also references the HTTPS version of your website. (If a user on a HTTPS website clicks on a link to a HTTP page, the referrer will not be passed to the HTTP page). Therefore to make sure that all your referrers are correctly tracked in Matomo, you need to make sure that your website works on HTTPS and also that your links from other websites to your website use the HTTPS version of your website URLs.

Make sure you are viewing reports for the correct website and date and that timezones match

In Matomo make sure you selected the same date or date period as you selected in the other tool. Also double check that the Timezone of the Website in Matomo matches the timezone of your other tool and data set.

What is a hit?

A hit can be either a tracked page view, an event tracking, a download, an outlink, an onsite search or a content tracking request.

Know how many page views your website is getting?

On average users track around 10-20% hits per page view. So if you track 100 page views, you would be tracking approx. 110 to 120 hits.

Know how many visits your website is getting?

On average our users track around 3 hits per visit. So if you track 100 visits, you would be tracking approx. 300 hits.

If you are using features like event tracking, then the number of hits will be typically higher.

Using Google Analytics?

If you are using Google Analytics and interested in migrating to Matomo, you may want to know how many Hits per year are tracked in Google Analytics.

What other free/libre software projects does the Matomo team create and maintain?

At Matomo (Piwik) we are fond of libre and free and open software! Besides the Matomo platform, we have created and maintain other open source projects:

Our free projects related to Matomo

  • Device Detector: the Universal Device Detection library will parse any User Agent and detect the browser, operating system, device used (desktop, tablet, mobile, tv, cars, console, etc.), brand and model.
  • Mobile SDKs: we created and maintain the iOS SDK for Matomo and the Android SDK for Matomo to let you measure your mobile applications.
  • Tracking API Clients: our core team and community create and maintain Tracking API SDKs in multiple languages: Java, C#, PHP, JavaScript. (we are looking for new creators of SDK for Matomo, ideal if you love open source, Matomo and either Ruby or Node.js or C++ or Go or any other awesome programming language or platform!)
  • Matomo Mobile app: our mobile app running on Android and iOS devices is free/libre software project.
  • Several Plugins for Matomo: all plugins are published on our open Marketplace.

Reusable PHP components

  • Cache component is a PHP caching library based on Doctrine cache.
  • Decompress component is a PHP library that provides several adapters to decompress files.
  • Network component is a PHP library that provides network tools in particular manipulating and anonymising IP addresses.
  • INI component is a PHP library to read and write INI configuration files.

Other Open source projects

  • CI Trigger is a tool for Travis CI that lets you restart your builds automatically on a schedule.
  • Github Changelog Generator: a handy tool that queries the GitHub issues API to create and format a changelog based off the closed Github issues.
  • Github Issues Mirror: we created this tool to let any Github issues users create a read-only mirror of all issues. This has several advantages: Data ownership, Better for SEO in case not all of your GitHub issues are indexed by Google, in case GitHub is down you can still access your issues. Our Issues mirror is here:
  • Github Sync: a tool to let you synchronize labels and milestones accross several GitHub repositories. We use this to synchronise our issues labels and milestones across 50+ repositories.

How are requests with a User ID tracked?

When somebody visits your website, and you associate a User ID with their request, the User ID is associated with their current visit based on a defined set of rules, depending on your specific configuration. You can find details on how this works for common scenarios below.

Note: For clarification on any of the terms used in this FAQ please visit our glossary of analytics terms.

When a User Logs In During a Visit

When a visitor connects to your website but is not initially logged in, their visit is associated with a Visitor ID by default. This is a unique identifier for that specific visit that is not attributed to a specific user. However, once that user logs into their account and you set a User ID for this visitor, then all actions such as page views are linked to the User ID and not the visitor ID. Any previously tracked action for this visitor before the user was logged in is also associated with this User ID.

When a user logs in, Matomo counts all actions before and after logging in as one user, one visit, and one unique visitor.

When a User Logs Out During a Visit

If a visitor is logged in with a User ID set, their visit is associated with their User ID. If the user were to log out, by default, the User ID is remembered for the entirety of the visit.

When a user logs out, Matomo counts all the actions before and after logging out as one user, one visit, and one unique visitor.

It is possible to change this so that any actions taken after the user logs out are associated with a new Visitor ID. Doing so can help to preserve user privacy upon logout but may lead to inflated visit numbers. You can find instructions within the developer documentation on how to reset the User ID when a user logs out.

When a User is Logged In on Multiple Devices

In our multi-device world, it is not uncommon for a single user to be logged in and accessing your site from two devices simultaneously, e.g. a laptop and a mobile device. It is standard practice in Matomo version 4 and above to treat all concurrent visits with a shared User ID as a single visit.

When a user is logged in with two devices sharing a User ID, by default, Matomo counts one user, one visit, and one unique visitor.

How to Treat Different Devices as Different Visits

In some cases, you may prefer to treat each device as a unique visit even if they share a User ID. Especially if you offer substantially different experiences for different device types. If you are using Matomo On-Premise, then you can disable the User ID Overwrites Visitor ID feature by placing the following snippet of code in your config/config.ini.php file:

enable_userid_overwrites_visitorid = 0

This will treat each device as a separate visit even if they share the same logged in User ID.

Note: You can also configure this setting on a per site basis.

Where two devices share a User ID and the above setting is disabled, Matomo counts the two devices as one user, two visits, and two unique visitors.

Note: This was the default way of tracking for a short while in Matomo versions 3.13.0 to 3.14.1. Before Matomo version 3.13.0, these visits would have been merged with a single Visitor ID. This was changed to allow both devices and differing visit information to be seen separately.

How do segments work when segmenting on specific actions (pages or events) and how do I filter out any actions that don’t match?

When you create create Segments such as Visits where "Event action" is "News" (or for example Visits where "Custom dimension 'Page category'" is "News") and apply the segment to any report in Matomo, what will happen is that Matomo will select all visits that have at least any one action that matches the segment.

Matomo will select these visits and include all actions that these visits also did (all pageviews, events, etc.) even those that don’t match the segment (because segments are designed to filter out visits).

So when you apply this segment to your reports, the Matomo > Behavior reports will include events where ‘Event action’ is ‘Profile’ but also any other events from these visits such as ‘Sports’, ‘Technology’, ‘Ecology’, etc.

If you want to generate reports that only contain the particular “Events” and exclude other events, then you will need to create a Custom report in Matomo.

Using the example above, to be able to view any Matomo report for a particular “section”, when creating this custom report you would:

1) select dimensions of “Event action”, and
2) also define a “Filter” such as Where "Event action" is "News".
Then when viewing this custom report, it will only show those actions that match the filter and therefore show events belonging to this particular section of your website.

Learn more about creating custom reports in the User guide.

You may also be interested in the FAQ: How do I measure and give people access to their reports for some page sections / categories / mini-sites / languages?

What are Premium plugins? How do they differ from open source/free plugins?

To realise our epic mission, the Matomo team and the ever-growing community are building our dozens of popular tools around the project under fully open source/libre license: the Matomo core platforms (including all hundreds of features), the Matomo contributed plugins, Tracking SDKs, dozens of libraries to integrate Matomo with some of your favourite tools, and even more useful tools and products.

The founders of Matomo, core engineers and some other innovative companies are also offering some premium plugins which can be purchased on the Matomo Marketplace. As opposed to open source plugins, these premium plugins are not released under an open source compatible license and you are not allowed to redistribute premium plugins to others. (Note: if you ever need to edit or modify the source code, you can get a permission on simple request to the developers.)

Why Premium plugins? Researching, building, documenting, testing and maintaining quality products take years of experience and months of work. When you purchase a premium plugin you get a fully working product, with free updates for duration of license and you stay in full control of your analytics data. When purchasing a premium plugins you also directly help the Matomo core engineers to grow and keep innovate! That’s because a % of earnings on premium plugin license sales directly fund the new Matomo versions and cool features. In particular, plugins sales will fund:

To summarise: everything that the Matomo project officially releases under “Piwik” is open source and free software and this will never change. On the Marketplace, innovative companies also sell Premium features for Matomo (such as Media Analytics, Audit Log or Experiments – A/B Testing) and when your purchase them you help support building more great features in the Free Software Matomo Analytics (formerly Piwik Analytics) platform.

Will the Matomo Analytics JS Tracker slow down my site?

When you add the Matomo Analytics JavaScript Tracker to your pages, there should be very little impact to your visitors experience.

Here is what happens when a visitor loads a webpage that is tracked with the Matomo JS Tracker:

  • The matomo.js file is downloaded to the users browser. The file weighs around 19Kb gzipped by default so it will be downloaded in less than 1 second and will often be downloaded in less than 200 milliseconds. (if you use many plugins and premium features the matomo.js tracker file may grow to ~ 50Kb gzipped which would usually take 1 second or less to download).
  • The file will be cached in the browser, so on subsequent requests users won’t have to download it again. The file is only downloaded in the first pageview of the user.
  • If your visitors come from all over the world, we recommend to use a CDN to serve the JavaScript Tracker file. When using a CDN the download time would be usually 100ms or less.
  • Once loaded in the browser, the JS file will be parsed and executed which should usually take less than 50 milliseconds.
  • The request is then sent asynchronously to the Matomo Tracking API.

How to make sure Matomo does not slow down the page loads

  1. Follow these steps: Cache piwik.js, Enable GZIP, Preload DNS, Preload resource to boost the loading of your Matomo JavaScript tracking file.
  2. The Matomo JS tracker is loaded asynchronously and deferred, but it still does delay the onload event of your page. Depending on the performance of your Matomo, how fast your website loads, how your website’s resources are embedded and other factors, you may want to read this article and learn how to to embed the Matomo tracking code for faster website performance.

Does Matomo have a professional services team who can assist with on-site training, implementation and/or software customizations?

Yes, we assist clients of all sizes with on-site training, implementation, customization requirements, and our Matomo Cloud (formerly Piwik Cloud) service. Contact our Support team to get started.

Is a Data Processing Agreement (DPA) available for GDPR compliance?

In the context of GDPR compliance, a data processing agreement (DPA) is a legally binding document to be entered into between the controller and the processor in writing or in electronic form. It regulates the particularities of data processing – such as its scope and purpose – as well as the relationship between the controller and the processor.

In the context of Matomo you have two options:

Can I use Log Analytics with Matomo Cloud?

Yes, Log Analytics can be used with Matomo Cloud. Log Analytics is a python script you can download and install on your computer or server, and run to import your web server access logs file into Matomo. As your Matomo is on a different server you will need your token auth and add this option in the log analytics command parameters --token-auth=<SECRET>

Can I use the Matomo trademark in one of my domain names or URLs?

No. You may not use the Matomo (Piwik) trademark or any other mark associated with the Matomo offering in your domain name or URL. (For example, “” is not allowed). Learn more about the Matomo trademark.

What is the default attribution model used in Matomo?

The default attribution model used is that Matomo attributes goal conversions to the last seen channel (referrer).

Learn more about the default model and how to customise it in (including the multi channel attribution reports) in this FAQ: Matomo attributes conversions to the last seen referrer by default. How do I credit conversions to the first referrer instead?

What features of Matomo Analytics are supported when tracking Mobile App Analytics using Android or iOS SDK?

When tracking users and screenviews using the Matomo Android or iOS SDKs, most features will work the same as when tracking a website using the JavaScript Tracking client, but there will be some differences.

For example, the SDKs let you track Screenviews (pageviews including Entry screens and Exit screens), track Events, track searches made within your app search engine, track Custom Dimensions, User ID, Goals, Ecommerce interactions and more.

Features that won’t work in Mobile Apps are:

  • Reports under “Acquisition” won’t show data (Websites, Search Engines, Social, Campaigns).
  • In the Android SDK, the “Acquisition channels” will show the install source, so you can see how the app was installed. This is very valuable information to understand how you get your new users.
  • Outlinks are not tracked automatically but can be tracked manually.
  • In the Android SDK, the Downloads report will instead show the App version code, and the APK checksum.
  • Content Tracking (content impressions and content interactions) is not yet supported in SDKs
  • There are also several Premium Features which won’t work, see the Premium Features & Mobile SDK compatibility FAQ

Other features should work as expected. Contact us using the button below if you have any feedback.

Also if you require any tracking feature to the Mobile SDKs that are not yet supported and if you are interested to sponsor the improvement, please contact us for more information.

Is there a way to get all visitor profiles for a particular website or idSite?

Visitor Profile is a summary of your visitor, including a list of all their visits. It is possible to export a full visitor profile as JSON or XML. But to export all your visitors profiles data for a particular website, you must implement a small script and use the APIs as explained below.

Steps to export all visitor profiles

This is a two-step process where first, we call an API to collect all “Visitor IDs” for the website, then we loop over the list and for each “Visitor ID” we call the “get visitor profile” api. You need to get in touch with your developers in order to accomplish this.

Please follow the steps below:

  1. Call the API Live.getLastVisitsDetails for a given date range, using &showColumns=visitorId to only return the “Visitor ID” column.
    Here’s an example for your reference:
    You will receive back the list of visitor ID.

  2. Now, you can call the user profile using API call: Live.getVisitorProfile
    You will have to implement a small script to loop through the Visitor IDs, and for each of them call the Live.getVisitorProfile with the parameter &visitorId=XXXXXXX for example:

Note: The visits of the same visitor can be achieved by SQL query only.