Replace generic event icons in the visitor log and live widget with specific Material Design icons per category and action.
Replace the generic grey event icons in Matomo's Visitor Log and Live (Real-time) widget with meaningful Material Design icons. Each event category/action pair can be assigned its own icon – from over 2,100 included icons – so you can instantly recognise event types at a glance.
The plugin bundles all Material Design icons in a single compact JSON file (~570 KB). Icons are served on-demand without external API calls or dependencies.
Event Icons lets you replace the generic event icons in Matomo's Visitor Log and Live (Real-time) widget with specific icons per event category and action.
The plugin hooks into Matomo's JavaScript and CSS pipeline:
<img> src is replaced.server_time, time_spent_ref_action) from the database and appends them to the tooltip.The settings page at System → Event Icons provides:
Icons are stored in icons/material-paths.json as a JSON object mapping icon names to SVG path data. This single file (~570 KB) replaces 2,122 individual SVG files. Icons are served via PHP controller with Cache-Control: public, max-age=86400.
To add custom icons, see README.md → Adding custom icons.
The plugin performs two database queries:
SELECT cat.name, act.name, COUNT(*) FROM log_link_visit_action JOIN log_action ON ... GROUP BY cat.name, act.name – scoped to last 90 days and a specific site.SELECT server_time, time_spent_ref_action FROM log_link_visit_action WHERE idvisit = ? ORDER BY server_time ASC.Clear the Matomo cache: System → General Settings → Clear cache. If you're still seeing the old icons, make sure the browser cache is also cleared (hard refresh: Ctrl+F5 or Cmd+Shift+R).
Yes. See the README.md → Adding custom icons section for instructions. Any SVG can be added as long as it is placed in the icons/material/ directory and the JSON index is rebuilt.
No. The plugin targets Matomo 5.x (>=5.0.0-b1, <6.0.0-b1).
No. All icons are bundled locally. No external API calls, no tracking, no phoning home.
The first action of each visit is the landing page – it has no time-on-page because there is no previous page. Subsequent actions show the time spent on the previous page. If all actions show no time, your tracking data may not include time_spent_ref_action (check if your tracker sends ping requests or if the page tracking is properly configured).
Deactivate it in System → Plugins, then delete the plugins/EventIcons directory. The database contains no custom tables – uninstalling leaves no traces.
Last Updated
Aug 11th 2026
Requirements
Matomo >=5.0.0-b1,<6.0.0-b1
PHP >=7.0.0
Matomo 5.x
Downloads
18
Changelog
Support