From matomo-analytics
Diagnose page load performance issues. Use when the user asks about slow pages, load times, performance problems, or wants to understand why a site is slow.
npx claudepluginhub lucaspretti/claude-plugins --plugin matomo-analyticsThis skill uses the workspace's default tool permissions.
Analyze page load performance for a Matomo-tracked site.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Analyzes competition with Porter's Five Forces, Blue Ocean Strategy, and positioning maps to identify differentiation opportunities and market positioning for startups and pitches.
Analyze page load performance for a Matomo-tracked site.
If $ARGUMENTS contains a site ID or name, use that. If the conversation already has a site in context, use that. Otherwise, call matomo_list_sites, present a short numbered list (ID, name, URL), and ask which site to analyze. Do not proceed until a site is selected.
Get overall performance using matomo_get_page_performance for the requested period (default: last 7 days, period: day, date: last7)
Identify slow pages using matomo_get_top_pages with limit 20 for the same period. Sort by avg_page_load_time to find the slowest pages.
Check device impact using matomo_get_devices to see if performance varies by device type.
Check browser impact using matomo_get_browsers to see if specific browsers are slower.
Mobile-specific drill-down when the user mentions "mobile", "phone", or "slow on phone": rerun steps 1 and 2 with device: "mobile" to get the mobile-only numbers, then compare against the all-devices baseline. Flag any page where mobile is significantly slower than desktop.
Present findings as a summary:
If $ARGUMENTS contains a specific URL or page path, focus the analysis on that page.
If a device-filtered call comes back with all-zero metrics while the same
query without device returns normal numbers, the Matomo server is refusing
to aggregate the segment for this API token (it lacks process_new_segment
or the segment isn't pre-archived). Do not claim "no mobile traffic" — that's
almost never the real answer.
Try these in order:
matomo_count_visits_by_segment. It uses the Live API
under the hood and does NOT need segment archiving. For mobile:
{siteId, period, date, device: "mobile"} returns
{visits, byDevice, byCountryTop10}. Slower than aggregate endpoints for
very large result sets, but always returns real numbers.matomo_list_segments to find saved segments on the instance.
Any segment with auto_archive=1 is pre-archived and will always return
real numbers when you reference its definition string in segment.<matomo-host>/index.php?module=CoreHome&action=index
&idSite=<id>&period=<period>&date=<date>
&segment=deviceType%3D%3Dsmartphone%2CdeviceType%3D%3Dtablet%2CdeviceType%3D%3Dphablet
process_new_segment on the token or pre-archive common segments.