There are several possible reasons why Matomo is not tracking your visits properly:

Incorrect Matomo tracking code

Please check that you can find the Matomo JavaScript code on your website pages that you wish to track. Sometimes, when you copy paste the JavaScript code in other software, like Word or FrontPage, they may add extra spaces or characters. Make sure the code looks like this example (and that it mentions the right URL of your Matomo installation). In some cases, when you install Matomo on your local test server, the JavaScript code might contain localhost or 127.0.0.1.

When you deploy Matomo in production, you have to edit the JavaScript code so that it points to your website URL, e.g. http://example.org/piwik/. Also, each Matomo tracking code contains the idsite of your website registered in Matomo. If you only registered one website in Matomo, the idsite found in your JavaScript code should be “1”.

Make sure you are viewing reports for the correct website and date in Matomo

In Matomo, make sure you selected the right website in the website selector. Also, try to look at reports for “today” by changing the date in the date picker. Please wait at least 10 seconds after generating visits on your website: by default, Matomo will only process reports every 10 seconds when “today” is selected.

Browser addons blocking the Matomo Tracking JavaScript (NoScript, DoNotTrack, etc.)

If you use browsers addons such as Adblock, Adblock plus, NoScript, Ghostery or others, the Matomo Javascript code is not executed in your browser. Try to use a different browser that does not have these extensions, or disable these browser extensions and try again.

Matomo by default supports DoNotTrack

Please check you haven’t enabled DoNotTrack in your browser options.

Archiving triggered from the browser must be enabled, if it is disabled the Cron script must be configured properly

In Administration > System > General Settings, ‘Allow Matomo archiving to trigger when reports are viewed from the browser’ must be set to ‘Yes’. If it is set to ‘No’, you must configure the cron script to automatically archive your web analytics reports, or Matomo will show ‘No Data’. More information about auto archiving.

Third party Matomo plugins

It is possible that some third party plugins could cause problems when tracking your visitors. Please try to disable all the third party plugins you are using to see if it fixes the issue.

Do you have logs registered in your Matomo database?

If your Matomo tracking code is properly installed, Matomo would record visits in your database. To check if you have logs in your database, go to Matomo > Visitors > Visits log, and select “today” in the calendar. If you see recent visitor information, it means that the visitor tracking is working, but maybe there is a problem with reports archiving. Note: you can also check if logs are recorded correctly by looking at the table “matomo_log_visit” (using phpMyAdmin for example) and see if there are visits recorded. Alternatively, you can enable the plugin “DBStats”, and then go to the “Database usage” tab in your Matomo administration area, and check if the table matomo_log_visit has any rows.

Testing Matomo with disabled JavaScript

By default, Matomo only tracks visitors with JavaScript enabled. When you are testing that Matomo tracks visits properly make sure you have JavaScript enabled. If you need help with JavaScript tracking check out docs/javascript-tracking. If you need to use a tracking method which doesn’t involve JavaScript have a look at docs/tracking-api.

Matomo displays a red cross (on IE) or a broken image icon

If Matomo displays a red cross (on IE) or a broken image icon on your tracked pages, instead of the 1*1 transparent Pixel, then check out this FAQ answer.

Access to piwik.php fails

If your host uses mod_security to block requests containing URLs (e.g. hosts like HostGator, The Planet), check out the Matomo and mod_security FAQ. If you use HTTP Authentication (Basic or Digest) on your Matomo files, you should exclude piwik.php and piwik.js from this authentication, or visitors on your website would be prompted with the authentication popup.

Tracking https (SSL) pages

If you install the Matomo JavaScript Tracking tag on https:// pages, then the tracking requests will be sent to Matomo via https. This means that the server you installed Matomo on must be able to handle these https requests, or no data will be tracked. See also Matomo and SSL tracking and checking that Matomo SSL Server is correctly configured.

Local copy of piwik.js outdated

Some users make a local copy of piwik.js on a different server than their Matomo installation. This is not officially supported and causes issues when the piwik.js bundled with Matomo is updated and not compatible with the previous version. Please check that your Matomo JS tracking code is exactly the one given in the Matomo admin screen.

Using Matomo latest version

If you are still seeing “No data”, please make sure you are using the latest version of Matomo (if not, update now).

Check your webserver error logs

If all else fails, it is possible that there is a server misconfiguration preventing Matomo from tracking your visits or processing reports. Often, there will be an error in the webserver error logs (apache logs, IIS logs, nginx logs, etc.). Please check that your PHP is configured to log errors: (php.ini should contain log_errors = On and error_log = /path/to/log). The messages in the webserver error log will help you find the source of the problem, for example search for the error message on this website.

Troubleshooting when a tracking request is sent correctly but data is not visible in ‘Visits log

When you can see in the Browser Developer Tools > Network panel that your tracking requests are correctly sent to the Matomo Tracking API (matomo.php?), but your data is not tracked then you can quite easily debug the tracker. Follow the steps in Debugging the Tracker. Tracking requests will then output the tracking log messages in readable English, and it will clearly say any issue or reason why the request is not being tracked.

Check if consent handling is correctly implemented. If the tracking code contains _paq.push(['requireConsent']); then Matomo will wait for explicit user consent before tracking. Using this function is important for compliance with privacy regulations.

Where user consent is a key requirement, you will need a proper consent management process in place, such as using a third-party consent management platform (CMP) that integrates with Matomo. If you remove or comment out requireConsent in the Javascript tracker code, Matomo will begin tracking immediately without waiting for user consent.

Proceed with caution: Removing this line and not integrating consent management could lead to compliance issues. If you operate in jurisdictions that do not require obtaining consent for tracking, or if you have received consent through another method, you may be able to safely remove requireConsent.