Matomo 6.0.0 Beta
What’s new in our latest release?
Matomo 6.0.0 is the first major release since December 2023. It modernises the platform with PHP 8.1, MySQL 8 and a rebuilt front-end toolchain. It also builds spam and bot filtering into Matomo, introduces completely redrawn visitor maps, and applies the new design system to dropdowns, search fields and report headers.
On-Premise administrators should review the system requirement changes before updating.
Release Highlights
Less junk in your data
Spam and bot filtering, previously available as a separate plugin, is now part of Matomo and enabled by default.
A fresh look at your maps
Visitor and real-time maps have been enhanced using current geographic data, improving region highlighting and country label accuracy.
Consistent controls everywhere
Dropdowns, select fields and search boxes now share a consistent appearance and behaviour, and reports use the same header design.
Faster page reports
New installations archive page URL and page title reports from a single flattened record, improving performance for large sites.
Update Matomo to the latest release
Before updating, confirm that your system meets the following requirements and plan for the database change included in this release.
System requirements
Matomo 6 requires PHP 8.1 or newer and MySQL 8.0 or MariaDB 10.6. Installations using older versions must upgrade them before updating Matomo.
Database upgrade
This release adds a consent column to the log_visit table in preparation for consent tracking. The update runs an ALTER TABLE operation, which may take time on installations with a large visits log.
Need help updating Matomo?
Read the Updating Matomo user guide or for more help we offer paid support plans.
After you update
- Please help us spread the word! Maybe you can write about the project on your blog, website, social media, get involved with MatomoCamp or let your friends and colleagues know what is Matomo. Already 1,000,000+ websites are keeping full control of their web analytics with Matomo!
- Use the community forums if you have any question or feedback (free support), or purchase a Support Plan to get professional support and guidance.
- To improve Matomo in your language, consider contributing to translations.
- You can also purchase valuable Premium Features for Matomo or try our Matomo Cloud solution.
Tickets closed in Matomo 6.0.0
Requirements and removals
- #21736, #24638 Require PHP 8.1 or newer. Installations using PHP 8.0 or older must upgrade PHP before updating to Matomo 6. [by @mneudert, @sgiehl]
- #24858 Require MySQL 8.0 or MariaDB 10.6. Matomo now validates the actual database server type, distinguishes MariaDB Enterprise from Community and removes the experimental TiDB schema. [by @sgiehl]
- #24877 Require One Click Update to download over HTTPS by removing the option to retry over HTTP. [by @sgiehl, @chippison]
- #18675, #25206 Validate the effective hostname for Matomo installations behind a proxy. Before updating an installation that uses
proxy_host_headers, add both the public hostname and the hostname used to access Matomo totrusted_hosts. [by @sgiehl] - #25062 Add a consent column to
log_visitin preparation for consent tracking. The database upgrade runs anALTER TABLEoperation on the visits table. [by @sgiehl] - #19665, #21780 Remove the SEO plugin and the
SEO.getRankAPI method. The SEO Rankings widget was retired in Matomo 5.9 because it could no longer retrieve rankings reliably. [by @sgiehl, @chippison]
Core improvements
- #25035, #25079 Build Tracking Spam Prevention into Matomo and enable it by default, including filtering for headless-browser traffic generated by AI tools. The plugin is no longer available from the Marketplace and cannot be uninstalled. [by @sgiehl]
- #10739, #24983 Add a
…_percent_of_totalcolumn for each metric in API responses and every export format. Addpercent_of_total=0to a request to retain the previous columns. [by @caddoo] - #11929, #9170, #10963, #24878 Regenerate visitor and real-time maps using current geographic data to improve region matching, highlighting and country accuracy. [by @sgiehl, @ysard]
- #25150 Archive page URL and page title reports from a single flattened record on new installations, improving performance for large sites and preventing long page categories from being truncated with a summary row. Updated installations retain their existing behaviour. [by @sgiehl, @snake14]
Interface improvements
- #23917, #25033, #25100, #24868 Standardise dropdowns, select fields, menus and reorderable lists across Matomo. [by @snake14, @chippison, @tzi]
- #24970, #24991 Use a consistent search component for menu search, segment search and quick access, and support pasted text and input method editors in quick access. [by @tzi]
- #24966, #24989 Use a consistent header for full-page reports, exported widgets and dashboard widgets, and add a More details link when an online guide is available. [by @tzi]
- #25109, #25122, #25131 Rebuild the Transitions report as a Vue component and retain its side-by-side layout in narrow panes by allowing horizontal scrolling. [by @chippison]
- #24891, #24953 Separate the green success colour from Matomo’s teal brand colour. [by @tzi]
Bug fixes
- #23979, #24854 Update report help when switching between related reports. [by @chippison]
- #20216, #24742 Allow Unique Visitors and Unique Users to be selected as KPIs for weekly and monthly periods. [by @chippison]
- #24543 Correctly combine a selected report row with an applied segment when opening the visits log, and clarify the popup title. [by @tzi]
- #24088, #25094 Position country labels inside the correct country on region maps. [by @sgiehl]
- #25161 Show the selected data period in downloaded HTML reports instead of the report delivery schedule. [by @sgiehl]
- #25001, #25002 Prevent correctly rendered dashboard widgets from displaying an error caused by an internal API call. [by @snake14, @sgiehl]
- #25040 Apply the correct comparison colours to overview card sparklines from the first page load. [by @tzi]
Security and privacy
- #22605 Require Write permission to add, edit or delete annotations through the API. [by @sgiehl]
- #24865 Prevent user capabilities from being granted or removed when user management is disabled. [by @sgiehl]
- #24917 Respect the visits log setting for every site included in a Live API request. [by @chippison]
- #25137 Harden tracking code generation by escaping output consistently, preventing unusable tracker URLs and requiring view access to generate image tracking code. [by @sgiehl]
- #24864 Use constant-time comparisons for signed cookie values, improve pattern handling when rewriting URL parameters in the browser and remove unused internal methods. [by @sgiehl]
Platform changes for plugin developers
- #24880, #24893 Remove long-deprecated APIs, including
Archive::getBlob(),Report::getThirdLeveltableDimension(),API.getSettings, the[APISettings]configuration section and database adapters’getDefaultPort(). SeeCHANGELOG.mdfor their replacements. [by @sgiehl, @caddoo] - #23183, #25072, #24988, #24933 Remove the
archive.shscript, deprecated Git console commands, the jQuery UIliveWidgetand obsolete PHP polyfills. Usecore:archiveand theLive.AutoRefreshWidgetVue component instead.glob()must no longer be listed indisable_functions. [by @sgiehl] - #25074 Preserve parameter whitespace and value types when parsing requests. Use
Request::getBoolParameter()to read Boolean parameters. [by @sgiehl] - #24869 Add the
#[Piwik\Http\JsonResponse]attribute for returning JSON from controller actions. An overriding subclass must redeclare the attribute. [by @sgiehl] - #21440, #24668, #25027 Move the front-end build from Vue CLI to Vite on Node 24, update to Vue 3.5 and use Vitest. The
vue:buildcommand no longer creates an unminified bundle, so plugin authors can remove committedvue/dist/<Plugin>.umd.jsfiles. [by @sgiehl] - #25051 Update all eleven Example plugins to use native types, current APIs and a consistent structure. [by @sgiehl]
- #24925, #24937 Remove unused colour variables and Piwik-era aliases, and deprecate component-oriented theme variables in favour of usage-oriented names. Deprecated variables remain available until Matomo 7. [by @tzi]