We are proud to announce Matomo 3.10.0: a new major release of Matomo Analytics.

173 tickets have been closed by more than 25 contributors!

What’s new?

A new Matomo Tour feature was introduced, guiding you through the most common steps to learn Matomo and make the most of the product, such as creating Goals, uploading your custom logo, learn how to flatten a report, change a visualisation, create an email report, customise the dashboard, create a segment, and more. Complete all the challenges to learn all the tricks and become a Matomo pro!

The Visits Log and Visitor Profile now display actions in a more readable and efficient way. When you’re tracking events, tracking file downloads, or using content tracking, or tracking videos, tracking forms, etc. your actions are now grouped together under the page in which they occurred, making it very easy to see where events occured. There are also other smaller improvements to the visitor log (showing all ecommerce product categories, etc.).

The DoNotTrack feature in Matomo used to still track people using a browser where DoNotTrack was enabled by default (Internet Explorer browsers, Maxthon, Epiphany, etc.). Starting in Matomo 3.10.0 all these people will now be excluded from tracking. If your audience is widely using IE10, IE11, or Maxthon then you may see a decline in traffic after upgrading to Matomo 3.10.0. If that’s the case and is an issue for you then you can disable the DoNotTrack option in the Matomo Privacy settings.

When a report in Matomo has sub-tables (rows you can click on), and the report is “Flat” (when you clicked on the Cog icon below the report and then click “Make it flat”), you can now display all the sub-dimensions where each dimension has their own column by clicking on the Cog icon and then click “Dimensions are combined. Show Dimensions separately”.

In terms of security, we have made several improvements. When you give someone Super User access, Matomo will now ask to confirm your password first. Entering your password will also be required when installing new plugins. The `token_auth` was removed from some URLs to prevent it being stored in the browser history. If your Matomo server is not yet using PHP7+ you will see a notice message in Matomo to invite you to soon upgrade to PHP7 (Matomo 4 will require PHP7 so please upgrade to make sure you will be able to use it!). We also increased the bounties of our Security Bug Bounty program on Hackerone.

In terms of performance, this release is seeing quite a few speed and storage improvements. For example, all Tracker API requests will be faster thanks to several code improvements (such as removing some possible deadlocks under rare circumstances or general file system optimisations). Also now the RAW data will be deleted whenever a website is deleted (saving potentially many Gb of database space). Several performance issues in report processing were addressed for those of you who run Matomo on high traffic websites.

New segments are available: ‘ecommerceOrderId’ (Ecommerce Order ID) lets you to select a customer who purchased a given Ecommerce Order ID. ‘fingerprint’ (Visitor Fingerprint) lets you select a visitor based on their fingerprint.

The API ‘UserCountry.getLocationFromIP’ now lets you geo-locate your visitor in real-time in JSON/JavaScript: learn more.

Lots of bugs were also fixed, making Matomo 3.10.0 our most stable and secure release so far. The Tag Manager also got a few bug fixes and improvements and is now used in production by a growing number of websites!

Dozens of new devices, brands, models are now detected by our Device-Detector library. New spammers were added to our Referrer spam blacklist.

Big thanks to all community members who reported feedback and suggestions, and big thanks to all Matomo Cloud hosting customers and Premium features customers for their amazing support!

After You Update

  • Please help us spread the word about Matomo! Maybe you can write about the project on your blog, website, twitter, talk about Matomo Analytics at conferences, or let your friends and colleagues know what is Matomo. Already 1,000,000+ websites have liberated their web analytics, and with your help we can grow the community!
  • Use the forums if you have any question or feedback (free support),
    or purchase a Support Plan to make the most of your Matomo Analytics and get professional support.
  • To improve Matomo in your language consider contributing to translations.
  • You can support our efforts by purchasing valuable Premium Features for Matomo or try our Matomo Cloud solution.


Our security bug bounty program welcomes & rewards researchers who discover and responsibly report to us any security issues found in Matomo or any of the plugins created by Matomo/InnoCraft. Bounties have been increased by 50% to try and encourage more researchers to look into Matomo.

Database upgrade

This release does not contain any major database upgrade.

Platform Changes

Matomo is an open analytics platform. In an effort to help Matomo developers learn about improvements and changes in the core APIs, we document the changes since the last release.

In this 3.10.0 release there are breaking changes, New APIs. Read more in Platform Changelog for Developers to see all changes to the platform and APIs.

Note: the Marketplace showcases more than 95 plugins already compatible with Matomo 3 and this is just the beginning. Matomo is your universal data analytics platform!

New and updated SDKs (Tracking API Clients)

The Matomo team offers official SDKs (Tracking API Clients) for measuring your mobile apps and any other kind of apps.

New and updated guides and FAQs



New plugins

By the Matomo team and InnoCraft:

By third party developers:

Need help upgrading Matomo?

Read the Updating Matomo user guide or for more help contact the Matomo experts.

List of 173 tickets closed in Matomo 3.10.0


    • #12524 Show flattened columns as extra columns in UI [by @sgiehl, @diosmosis]
    • #3531 New DoNotTrack setting to enable 100% DNT support including for IE browsers
    • #12467 Help users getting started and complete important steps with Matomo [by @tsteur]
    • #6772 DeviceDetection segment editor auto suggested values should show full strings [by @sgiehl]
    • #12468 Add widget to help users getting started and complete important steps with Matomo [by @tsteur, @mattab]
    • #13136 Visitor log: Group all actions within a pageview together [by @diosmosis]
    • #13359 In visitor log do not show the domain for pageviews [by @sgiehl]
    • #14566 JS Tracker: URL Custom Dimension values to prevent Error 400 issue on IE11 when dimension values include non ascii characters [by @mattab]
    • #14401 DoS when using Premium Plugins caused by deleteTrackerCache() and getLicenseValidInfo() [by @tsteur]
    • #14195 When deleting visits via the GDPR Tools, invalidate the reports for each day of these deleted visits [by @katebutler]
    • #14374 Real-time report under Visitors does not refresh [by @tsteur]
    • #12721 In links to HTML/PDF reports downloads, do not show token_auth [by @katebutler]
    • #13628 Don’t tell people to run chmod -R 755 on their install if update fails [by @tsteur]
    • #13711 Require password confirmation when giving someone super user access [by @diosmosis]
    • #14071 Not possible to switch back to simple table from the Insights visualization [by @sgiehl]
    • #14321 Use better random string generator in 2fa lib [by @tsteur]
    • #14387 Require password confirmation before installing plugins [by @katebutler, @tsteur]
    • #14458 Segment menu behind overlay of transition
    • #14474 When sending email reports, deduplicate the list of emails addresses to only send the report once per email [by @katebutler]
    • #6780 Retention analysis report, Cohorts
    • #7622 Matomo self service: let un-registered users register and create a website (new 3rd party plugin)
    • #9981 New segment ‘ecommerceOrderId’ to select a particular Ecommerce Order ID [by @katebutler]
    • #9987 Do not ignore the “do not track” option on some browsers (Internet Explorer, Maxthon, Epiphany)
    • #14072 In the visitor log/ecommerce log, show all product categories not just the first [by @diosmosis]
    • #14086 Ask users to leave a review for Matomo [by @katebutler]
    • #14087 New INI setting to specify the number of rows to archive in Behavior > Site Search [by @katebutler]
    • #14100 Add method to force heartbeat ping to Javascript API
    • #14101 Visitor raw data API: expose the “fingerprint” value of each customer in API responses (log_visit.config_id) [by @katebutler]
    • #14174 When using an old PHP version (PHP < 7.1) display permanent message inviting users to upgrade PHP [by @katebutler]
    • #14281 Add a config to disable e-mail notifications on password/email change through API [by @simivar, @tsteur]
    • #14496 API to return current user’s geolocation “UserCountry.getLocationFromIP”
    • #14590 Activate Matomo Tour feature for all users [by @tsteur, @mattab]
    • #13966 Check that when a website (or a segment) is deleted, we also delete all archive data (numeric, blob) [by @katebutler]
    • #14420 Improve performance by avoiding access() calls to non-existing files [by @katebutler]
    • #14536 Acquire an exclusive lock on the tracker file while proceeding to the writing [by @tsteur, @mattab]
    • #14551 Faster User ID reports processing: use ranking query [by @diosmosis, @mattab]
    • #14254 Changing session name with const PIWIK_SESSION_NAME not possible
    • #14307 Template override functionality was regressed in 3.9.1 when building Themes [by @katebutler, @tsteur]
    • #14433 Social networks report shows instagram twice [by @sgiehl]
    • #13740 Replace Promo video with new Matomo videos [by @katebutler]
    • #13856 Maintenance mode, grey text on blue background [by @tsteur]
    • #13954 Calendar: display the label “Date range” on one line [by @sgiehl]
    • #14212 Ensure first sparkline is highlighted after switching periods in row evolution overlay [by @sgiehl]
    • #14230 Make theme-color themeable
    • #14507 Ensure incompatible visualization entries are still shown as footer icons when they are selected [by @sgiehl]
    • #14527 Improve no data has been recorded page yet [by @tsteur, @diosmosis]
    • #14529 Update feedback icons [by @Findus23, @mattab]
    • #12894 More compact display of Contents impressions and Contents clicks in the Visitor Log [by @diosmosis]
    • #13994 Format currencies metrics (thousands separator) [by @sgiehl]
    • #14135 spellcheck en.json files [by @Findus23, @diosmosis]
    • #14260 Updates composer dependencies [by @sgiehl]
    • #14280 Update package on packagist [by @mattab]
    • #14302 New cli command to send test-mail to admin [by @katebutler]
    • #14304 Allow to disable Diagnostics plugin [by @katebutler]
    • #14557 Updates device-detector to latest 3.11.8 [by @sgiehl]
    • #13686 remove special handling of browsers with DNT enabled by default [by @Findus23, @tsteur]
    • #14309 Let controllers specify what type a view to be rendered is [by @diosmosis]
    • #14355 Adds new ViewDataTable.configure.end event [by @sgiehl, @tsteur]
    • #14363 Allow limit selection contents to be customized by specific visualization. [by @diosmosis]
    • #14378 Show correct message why plugin was deactivated when it has a missing license [by @tsteur]
    • #14559 Fix namespace of ExamplePlugin Update [by @sgiehl, @tsteur]
    • #14578 Provide methods to force the update of tracker caches [by @tsteur]
    • #9716 Error in Events report: Unsupported pivot: the subtable dimension for ‘Events.Event Actions’ does not match the requested pivotBy dimension [by @tsteur]
    • #11029 Piwik update notification email links to the internal Piwik instance IP address but should link to the trusted hostname value instead [by @tsteur]
    • #13609 Export of segmented visitor log may return empty result when contains multiple segments [by @katebutler]
    • #13752 fatal error triggered under some circumstances [by @diosmosis]
    • #13882 Referrer Websites report should group same label (HTTP vs. HTTPS) [by @katebutler]
    • #13988 Content Tracking: Interactions count greater than impressions count
    • #14042 Dashboard screen is broken when using unique visitors for range [by @katebutler]
    • #14124 Insights No rows match the criteria when “all” is selected
    • #14191 Copy dashboard doesn’t work with special characters in the username [by @sgiehl]
    • #14251 require TwoFA to be verified before updating code base
    • #14264 Row Evolution in Social Networks broken [by @sgiehl]
    • #14273 Overwrite direct entry referrer information if campaign referrer is found in later request. [by @diosmosis]
    • #14298 Tracking can cause requests to option table [by @katebutler]
    • #14334 Unable to activate the log
    • #14383 Issue: 2nd ?/& appended to cross domain link containing anchor [by @danlance, @tsteur]
    • #14393 Let core:archive continue even if the website was deleted in the meantime
    • #14419 Fix possible error in charts “[] operator not supported for strings” [by @sgiehl, @tsteur]
    • #14469 If no pivotBy column is specified, make sure when getting first column in table [by @diosmosis]
    • #14524 warning message – count(): Parameter must be an array or an object that implements Countable [by @katebutler]
    • #14526 fix no data message may not be shown when deleteLogs is enabled [by @tsteur, @diosmosis]
    • #14571 Fix error number is detected wrongly in tracker mode [by @tsteur, @mattab]
    • #14441 [automatic translation update] Updated 1060 strings in 40 languages (lt, fi, ar, bg, ca, cs, da, de, el, eo, es-ar, es, et, fa, fr, hi, hu, id, it, ja, ko, lv, nb, nl, pl, pt-br, pt, ro, ru, sk, sl, sq, sr, sv, tl, tr, uk, vi, zh-cn, zh-tw) [by @sgiehl]
    • #14442 Fix common misspellings of Matomo in translations [by @sgiehl]
    • #14505 [automatic translation update] Updated 318 strings in 13 languages (sv, fi, id, lt, nl, sl, tr, es, de, el, fr, it, sq) [by @sgiehl]
    • #14532 [automatic translation update] Updated 64 strings in 10 languages (cs, de, fa, hu, pt-br, el, es, lt, sq, tr) [by @sgiehl]
    • #14567 [automatic translation update] Updated 145 strings in 14 languages (cs, da, de, el, fr, it, nl, pt-br, ro, ru, sq, tr, zh-tw, es) [by @sgiehl]
    • #14592 [automatic translation update] Updated 55 strings in 4 languages (de, es, fr, pt-br) [by @sgiehl]
    • #10348 Fix documentation for properly setting and running of Piwik Tests
    • #12084 Update Documentation for Hardware-Requirements
    • #12300 html tags are displayed in permission error message [by @sgiehl]
    • #13341 [Website] Update really old screenshot in docs
    • #13742 Document the use of a matomo specific cacert.pem and allow to disable this behaviour
    • #13832 Allow period used to generate scheduled report to be different from email schedule. [by @diosmosis]
    • #13929 Readable segment values for browser, os and country segments [by @sgiehl, @diosmosis]
    • #13931 Avoid browser tooltips for piwik-fields [by @sgiehl, @tsteur]
    • #14113 Add config option to use own cacert.pem file [by @fdellwing, @tsteur]
    • #14127 JS Tracker api: add ping() method [by @pimlottc-gov, @tsteur]
    • #14130 duplicate orders, when the option “anonymize order numbers” is enabled
    • #14152 use stylelint to normalize default stylesheets [by @fdellwing, @tsteur]
    • #14171 fix diagnostics template [by @Findus23, @tsteur]
    • #14184 New dimension for segmenting visitors by fingerprint [by @katebutler, @diosmosis]
    • #14185 Consistent detection of HTTPS [by @tsteur, @sgiehl]
    • #14193 Use tabular-nums in tables [by @c960657, @sgiehl]
    • #14208 Changed period in row evolution breaks graph/metric association [by @tsteur]
    • #14223 Rename “Visitor Log” to “Visits Log” in all user and dev guides and FAQs
    • #14246 Remove unused Pagination key [by @c960657, @sgiehl]
    • #14284 Link to user guide in “Last successful Archiving Completion” diagnostic [by @simivar, @tsteur]
    • #14288 New enable_sql_profiler INI setting for Tracker [by @simivar, @tsteur]
    • #14293 incorrect number of sprintf placeholders [by @sgiehl]
    • #14294 fix subtil typos [by @Findus23, @diosmosis]
    • #14332 Bar graph should only have Users and Unique Visitors options when they are valid [by @katebutler, @tsteur]
    • #14338 segment is already encoded in datatable params, so don’t encode it again during export [by @diosmosis, @tsteur]
    • #14372 Ensure segment definitions don’t regress [by @sgiehl]
    • #14380 Copy geoip archive into temporary folder instead of in the geoip folder [by @tsteur]
    • #14400 Fix CSRF vulnerability in opt-out when setCookieInNewWindow=1 [by @katebutler, @tsteur]
    • #14410 Enable scrolling in Widgetize report iframes [by @courtneywright, @tsteur]
    • #14421 Switch UI tests from phantomjs to chrome headless [by @tsteur, @diosmosis]
    • #14425 Ignore variables that start w/ @ when auto-detecting tables in segment sql expressions. [by @diosmosis]
    • #14430 Ensure each plugin has a config.php and tracker.php file [by @katebutler, @mattab]
    • #14456 “Support & Services” button link updated to new Support Plans [by @mattab, @diosmosis]
    • #14480 Updates DeviceDetector to 3.11.7 [by @sgiehl]
    • #14483 don’t send Referer in E-Mail footer link [by @Findus23, @sgiehl]
    • #14488 fix URL to JavaScript tracking guide [by @Findus23, @mattab]
    • #14503 Remove link to Matomo Training offer [by @mattab, @diosmosis]
    • #14538 Separate checking for empty site from checking whether we should do e… [by @diosmosis]


    • #115 Auto-increment or auto-filled the name of a new version
    • #144 improves IE11 support [by @tsteur]
    • #158 Matomo Tag: set the id site later so that cookies are created correctly [by @mattab, @tsteur]
    • #161 Fix incorrect writing of Piwik [by @sgiehl, @tsteur]
    • #164 Fix bug Tag Manager check if element exists [by @tsteur]


    • #79 prevent building stable version that has already been released [by @Findus23, @mattab]
    • #97 matomo.php and matomo.js are missing from debian package [by @aureq]








We are together creating the best open analytics platform in the world. You can help make Matomo even more awesome by getting involved in Matomo!