Caches eligible flat monthly page URL reports while retaining Matomo permissions and report output.
SpeoReportPerformance reduces repeated work when opening large, flat monthly page URL reports in Matomo On-Premise. It caches a neutral flat report base and selected report pages, then lets Matomo calculate the current presentation.
The accelerated path applies to a single-site Actions.getPageUrls request with period=month, flat=1, no segment and a requested limit of 1–1000 rows. Other reports, unsupported request shapes and full exports use Matomo's normal processing. The plugin does not shorten a report to meet a time target.
Access is checked on every request. Cache entries follow the archive's publication and invalidation markers; user-specific pages are separated by login. No Matomo core or vendor file is changed.
The plugin is used in production at Speo. It requires Matomo On-Premise 5.14.2 or later within Matomo 5 and PHP 8.4 or later. Redis can share cached work between PHP processes through Matomo's existing cache backend.
The plugin caches eligible single-site, unsegmented, flat monthly Actions.getPageUrls reports with a requested limit of 1–1000 rows. Matomo handles other request shapes normally.
The accelerated path handles one site's flat monthly page URL report (Actions.getPageUrls, period=month, flat=1), without a segment and with a requested limit of 1–1000 rows. Other report shapes, full exports and unsupported extension combinations use Matomo's normal processing. The plugin does not truncate report data to make a request faster.
A new archive revision needs a new report base. A new user, page or search may also need presentation work before it can be reused. Optional warmup rebuilds recently used neutral bases; it does not precompute every request. Measure the same report before and after caching rather than expecting a fixed loading time.
The plugin uses Matomo's configured lazy cache backend and has no Redis credentials of its own. Redis is recommended when several PHP processes or application nodes need to reuse cached reports. Configure and protect it through Matomo; the plugin does not install or tune a cache server. See configuration.
The current user's site permission and Matomo's retention decision are checked before a foreground cache read. Finished pages are separated by login; revision checks prevent reuse after normal archive publication or invalidation. Protect cache storage and backups as report data. The plugin sends no telemetry. See security and report data.
No. The plugin reuses archived reports and needs Matomo's normal archive schedule. Its optional warmup command complements that schedule. It does not replace archiving, rewrite archives or migrate the database.
No core or vendor file is changed. The supported deployment is Matomo On-Premise 5.14.2 or later within Matomo 5, with PHP 8.4 or later and Matomo's required extensions plus zlib. Matomo for WordPress and Matomo 6 are not declared supported. Remaining native implementation dependencies are disclosed in compatibility; this is not a claim of complete independence from Matomo internals.
Use the GitHub issue tracker with synthetic data and the affected Matomo, PHP and plugin versions. Follow the private security reporting instructions for security concerns or identifying report data. Never upload customer reports, tokens or cache contents to a public issue.
Last Updated
Nov 7th 2026
Requirements
Matomo >=5.14.2,<6.0.0
PHP >=8.4.0
Matomo 5.x
Downloads
6
Changelog