Pagemetrics for Matomo
Pagemetrics for Matomo adds server-side, privacy-friendly analytics to WordPress. It tracks page views and downloads without using JavaScript.
Plugin info
Maintenance & Compatibility
Maintenance score
Actively maintained • Last updated 43 days ago
Is Pagemetrics for Matomo abandoned?
Likely maintained (last update 43 days ago).
Compatibility
Similar & Alternatives
Explore plugins with similar tags, and compare key metrics like downloads, ratings, updates, support, and WP/PHP compatibility.
Description
Pagemetrics for Matomo adds privacy-friendly, server-side analytics to WordPress by
leveraging the pagemachine/matomo-tracking PHP library. When enabled, the
plugin sends page view and optional download events from your WordPress site
directly to a Matomo instance without loading Matomo’s JavaScript tracker.
Key benefits:
- Track page views on the server with full control over attributes such as title, URL and referrer.
- Optional download tracking rewrites file links and records the click before redirecting visitors.
- Multisite aware – network admins can define defaults, individual sites can override them.
- Respects Do Not Track and Global Privacy Control headers through the underlying library.
- Logs issues to the WordPress debug log when
WP_DEBUGis enabled.
Looking for expert help with Matomo or server-side tracking? Pagemachine offers
consulting, implementation and ongoing support via our Pagemetrics solution.
More info: Pagemetrics.eu
Developer Hooks
pm_matomo_tracking_should_track_request— Returnfalseto skip tracking for the current request.pm_matomo_tracking_should_rewrite_downloads— Returnfalseto keep original download URLs for the current post.pm_matomo_tracking_is_download_url— Decide whether a specific URL should be rewritten (receives URL and default extension list).pm_matomo_tracking_download_extensions— Adjust the list of file extensions that count as downloads.pm_matomo_tracking_download_url— Customize the generated redirect URL used for download tracking.pm_matomo_tracking_download_redirect_status— Change the HTTP status code used when redirecting to the original file.pm_matomo_tracking_log_message— Listen to debug messages emitted whileWP_DEBUGis enabled.
Example usages
// Skip tracking for administrators.
add_filter('pm_matomo_tracking_should_track_request', static function ($shouldTrack) {
return current_user_can('manage_options') ? false : $shouldTrack;
});
// Keep original download URLs on the privacy policy page.
add_filter('pm_matomo_tracking_should_rewrite_downloads', static function ($shouldRewrite) {
return is_page('privacy-policy') ? false : $shouldRewrite;
});
// Force CDN assets to be treated as downloads.
add_filter('pm_matomo_tracking_is_download_url', static function ($decision, $url) {
return str_contains($url, 'cdn.example.com/assets/') ? true : $decision;
}, 10, 2);
// Add extra file types to download tracking.
add_filter('pm_matomo_tracking_download_extensions', static function ($extensions) {
$extensions = array_merge($extensions, ['svg', 'heic']);
return array_unique($extensions);
});
// Append a checksum to rewritten download URLs.
add_filter('pm_matomo_tracking_download_url', static function ($trackingUrl, $target, $label) {
$checksum = substr(hash('sha256', $target . $label), 0, 12);
return add_query_arg('pm_checksum', $checksum, $trackingUrl);
}, 10, 3);
// Use a 307 redirect instead of the default 302.
add_filter('pm_matomo_tracking_download_redirect_status', static function () {
return 307;
});
// Forward debug messages to the PHP error log while developing.
add_action('pm_matomo_tracking_log_message', static function ($level, $message) {
if (!defined('WP_DEBUG') || WP_DEBUG !== true) {
return;
}
// phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
error_log(sprintf('[Pagemetrics for Matomo][%s] %s', strtoupper((string) $level), $message));
}, 10, 2);
Installation
- Upload the
pagemetrics-for-matomoplugin directory (including the bundledvendor/
folder) to your site’swp-content/pluginspath. - Activate the plugin through the Plugins Pagemetrics for Matomo screen in WordPress.
- Open Settings Pagemetrics for Matomo and configure:
- Matomo URL (e.g.
https://matomo.example.com/) - Default Matomo site ID
- Optional auth token (required for IP tracking and other privileged attributes)
- HTTP timeout for Matomo requests
- Download tracking toggle, if you want the plugin to rewrite file links automatically
- Matomo URL (e.g.
- (Multisite) Network administrators can define defaults under Network Admin Settings Pagemetrics for Matomo. Individual sites can override those values on their local settings page.
The plugin starts sending data as soon as the Matomo URL and site ID are set.
Frequently Asked Questions
No. The auth token is optional. Provide it only if you need to forward visitor
IP addresses or rely on Matomo parameters that require authentication. The
token is stored server-side and never exposed to browsers.
Yes. Leave the Track downloads toggle unchecked in the settings page. You can
also use the pm_matomo_tracking_should_rewrite_downloads filter to disable
rewriting programmatically for specific posts or file types.
Requests use a configurable HTTP timeout (default three seconds). When Matomo
is unreachable, tracking is skipped and a warning is logged (only when
WP_DEBUG is enabled). Page rendering continues normally.
Review feed
Changelog
1.0.0
- Initial release with server-side page view tracking, optional download tracking and multisite support.
