Pagemetrics for Matomo
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. Optional AI assistant bot tracking detects crawls from ChatGPT, Claude, Perplexity and others and forwards them to Matomo’s dedicated AI Assistants report. 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_DEBUG is 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 Page view tracking: pm_matomo_tracking_should_track_request — Return false to skip page view tracking for the current request. pm_matomo_tracking_visitor_ip — Override the visitor IP forwarded to Matomo as cip (defaults to REMOTE_ADDR; used for page views and downloads when an auth token is set). Return an empty string to skip IP forwarding. Download tracking: pm_matomo_tracking_should_rewrite_downloads — Return false to 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. AI assistant bot tracking: pm_matomo_tracking_ai_bot_user_agents — Extend or replace the list of User-Agent substrings used to detect AI bots. General: pm_matomo_tracking_log_message — Listen to debug messages emitted while WP_DEBUG is 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; }); // Add a custom bot to AI assistant tracking. add_filter('pm_matomo_tracking_ai_bot_user_agents', static function (array $substrings): array { $substrings[] = 'MyCustomBot'; return $substrings; }); // Behind a reverse proxy: forward the real client IP from X-Forwarded-For. add_filter('pm_matomo_tracking_visitor_ip', static function ($ip, $request) { $forwarded = $request->getHeaderLine('X-Forwarded-For'); if ($forwarded === '') { return $ip; } // Use the first (client) address in the list. return trim(explode(',', $forwarded)[0]); }, 10, 2); // 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);
Top keywords
- tracking29×4.53%
- matomo25×3.91%
- matomo tracking18×2.81%
- download16×2.50%
- return13×2.03%
- add12×1.88%
- 'pm10×1.56%
- 'pm matomo9×1.41%
- 'pm matomo tracking9×1.41%
- function9×1.41%
- pm9×1.41%
- pm matomo9×1.41%
Search Analytics for WP
Search Analytics for WP will keep history of the search terms used by your users and group them in a set of statistics including the number of posts resulted from that search term. It can easily aid you in finding what your users are really searching for on your website and make sure you provide exactly what they need. Help and/or ideas are greatly appreciated! You can contribute to the GitHub repository: Search Analytics for WP NOTE: Search Analytics for WP stores all the statistics in your WordPress database. No info is sent to third-party services! Features Record all the search queries made using the standard WordPress search form. Exclude searches made by users with certain user roles or with certain IP addresses Exclude duplicate searches made in certain conditions Choose which user roles are allowed to see the statistics Filter statistics by time periods, with/without results, strings/substrings View each term individual statistics Export data in the current view to CSV Easily delete certain search terms from history Easily erase all history from the database in case a reset is needed Easily erase history older than in case a general cleanup is needed Dashboard widget for a quick glance over your last week’s search stats Multisite compatible Country Geolocation Display search statistics on the front of your website using shortcodes
Top keywords
- search10×4.46%
- statistics6×2.68%
- certain4×1.79%
- history4×1.79%
- analytics3×1.34%
- analytics for wp3×1.34%
- search analytics3×1.34%