seo-ahrefs
Ahrefs API analyst (extension). Reads referring domains, backlinks, organic keywords, and content explorer data via the tested @ahrefs/mcp@0.0.11 server. Pairs…
Matomo Reporting API extension. Self-hosted or Matomo Cloud analytics as a GA4 alternative or complement. Organic traffic, landing pages, device / country breakdowns, referrers, search keywords. Triggers on "Matomo", "self-hosted analytics", "analytics ohne Google", "GA4
$ npx -y skills add AgriciDaniel/claude-seo --skill seo-matomo --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/seo-matomoContext preview
The summary Claude sees to decide when to auto-load this skill.
Matomo Reporting API extension. Self-hosted or Matomo Cloud analytics as a GA4 alternative or complement. Organic traffic, landing pages, device / country breakdowns, referrers, search keywords. Triggers on "Matomo", "self-hosted analytics", "analytics ohne Google", "GA4
name: seo-matomo description: Matomo Reporting API extension. Self-hosted or Matomo Cloud analytics as a GA4 alternative or complement. Organic traffic, landing pages, device / country breakdowns, referrers, search keywords. Triggers on "Matomo", "self-hosted analytics", "analytics ohne Google", "GA4 alternative", "Matomo Reporting", "Piwik". metadata: version: "2.4.0" compatibility: "Requires a Matomo instance URL and API token in ~/.config/claude-seo/matomo.json (0600), or MATOMO_URL / MATOMO_API_TOKEN / MATOMO_SITE_ID in the environment. Run extensions/matomo/install.sh to configure."
Self-hosted analytics surface. Use Matomo as a privacy-first GA4 alternative when you own your analytics data, want zero Google dependency, or operate behind a strict data-residency boundary. The same `seo-matomo` skill works against Matomo Cloud and self-hosted instances.
| Command | Underlying script | |---|---| | `/seo matomo check` | `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run matomo_auth.py --check` | | `/seo matomo organic [site-id]` | `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run matomo_report.py organic --site-id <id>` | | `/seo matomo top-pages` | `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run matomo_report.py top-pages` | | `/seo matomo device` | `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run matomo_report.py device` | | `/seo matomo country` | `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run matomo_report.py country` | | `/seo matomo referrers` | `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run matomo_report.py referrers` | | `/seo matomo keywords` | `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run matomo_report.py keywords` |
All commands accept `--days` (default 28), `--limit`, `--site-id`, and `--json`. The site ID falls back to `MATOMO_SITE_ID` from settings.
configured. Common in EU privacy-first setups, regulated industries, and teams who own their analytics.
replace GA4. For Google Search performance use `seo-google`; this skill is the reporting substitute.
(organic trend, landing pages, device / country split, referrer split) sourced from Matomo's Reporting API.
`seo-matomo` covers reporting (visits / pages / referrers), not search performance metrics.
offers no LLM-specific signals.
(analogous to `seo-google`) whenever `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run matomo_auth.py --check` succeeds. Both agents can be active simultaneously when the user has both GA4 and Matomo configured.
Every Matomo request goes through claude-seo's SSRF guard: the instance URL is validated and DNS-pinned, and a redirect off the instance is refused. Private, loopback, and link-local addresses are refused by default. When the user's instance lives on one (`http://matomo.internal:8080`, `http://192.168.1.20`, `http://localhost:8080`), tell them to name it in the `CLAUDE_SEO_LOCAL_TARGETS` allowlist:
export CLAUDE_SEO_LOCAL_TARGETS="matomo.internal:8080"
Entries are `host` or `host:port`, comma-separated, matched exactly. The allowlist covers only the top-level instance URL; redirect targets and every other host stay fail-closed, and cloud metadata addresses are refused even when listed. Never suggest disabling the guard or editing `url_safety.py`: the allowlist is the supported route. Details in `extensions/matomo/docs/MATOMO-SETUP.md` and SECURITY.md.
instance is on a private address that has not been allowlisted. Give the user the exact export line from the error, which already carries the right `host:port`.
`MATOMO_URL` is pointing at a redirector rather than at the Reporting API. Ask the user for the URL their instance actually serves the API from.
remind the user to run `extensions/matomo/install.sh` or `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run matomo_auth.py --setup`.
site. Verify the token scope in Matomo Administration -> Personal -> Security -> API Tokens. The skill never logs the token.
the message verbatim; do not guess.
(`ConnectionError`, `SSLError`, `timeout`) and confirm `MATOMO_URL` resolves.
surfaced from Matomo data.
distinguish from GA4, CrUX, or static crawl analysis.
Many keywords will be "(not provided)" due to browser privacy and Matomo's anonymization rules; this is normal, not a data bug.
Claude SEO is an open-source SEO analysis plugin for Claude Code. It runs 26 sub-skills and 19 specialist agents in parallel across technical SEO, content quality (E-E-A-T), Schema.org markup, AI search optimization (GEO), local SEO, e-commerce, and
Repo: AgriciDaniel/claude-seo
Ahrefs API analyst (extension). Reads referring domains, backlinks, organic keywords, and content explorer data via the tested @ahrefs/mcp@0.0.11 server. Pairs…
AI image generation for SEO assets: OG/social preview images, blog hero images, schema images, product photography, infographics. Powered by Gemini via…
Bing Webmaster Tools + IndexNow extension. Microsoft Copilot citations are fed by the Bing index; this skill makes Bing visibility, link data, and IndexNow URL…
Live SEO data via DataForSEO MCP server: SERP analysis, keyword research (volume, difficulty, intent, trends), backlink profiles, on-page analysis, competitor…
Full-site crawling, scraping, and site mapping via Firecrawl MCP. Use when user says "crawl site", "map site", "full crawl", "find all pages", "broken links",…
Profound LLM citation tracker (extension). Time-series brand citation rates across ChatGPT, Perplexity, and other LLMs. Pairs with seo-seranking for…