SEO audit skill
Full SEO audit of a site from its real Search Console + GA4 data — indexation health, CTR anomalies, decaying pages, striking-distance keywords, quick wins.
by Ryze-AI-Adgent·MIT license·★ 3,135 Stars on the repo·GitHub ↗
npx degit Ryze-AI-Adgent/open-seo-mcp-skills/skills/seo-audit#main ~/.claude/skills/seo-audit-ryze-ai-adgentChecked ·commit main
Files of SEO audit
Show the full text35 lines
SEO Audit
Requires
The free Ryze MCP connector (https://connector.get-ryze.ai/mcp). Claude Code: claude mcp add ryze --transport http https://connector.get-ryze.ai/mcp. claude.ai / Desktop / Cursor: add it as a custom connector with the same URL. Setup: https://www.get-ryze.ai/how-to-connect-claude-to-google-meta-ads-mcp
Audit the user's site using their own data via the Ryze MCP. No estimates — everything below comes from their actual GSC/GA4.
Workflow
- Pick the property.
google_search_console__listSites. If several, use the one matching the user's domain; confirm only when ambiguous. - Indexation.
google_search_console__getIndexationSummary— indexed vs not-indexed counts and reasons. Flag anything unusual (large "Crawled — currently not indexed", spikes in excluded pages). - Performance baseline.
google_search_console__runRawSearchAnalytics: last 90 days vs previous 90, dimensionsqueryandpage(two calls each period). Compute clicks/impressions/CTR/position deltas. - Find the problems:
- Decaying pages — pages whose clicks dropped >30% period-over-period
- CTR anomalies — queries with position ≤ 5 but CTR < 2% (title/meta problem)
- Striking distance — queries at position 8–20 with high impressions (one push from page 1)
- Cannibalization — same query, multiple ranking pages splitting clicks
- Spot-check pages. For the 3–5 worst pages,
google_search_console__inspectUrl— canonical, indexing state, last crawl. - Cross-check traffic.
google_analytics__runRawReport— organic sessions + conversions by landing page, same periods. A page can hold rankings but lose revenue; call that out. - AI traffic.
google_analytics__getAIReferralsfor the same window — note whether AI engines are becoming a meaningful channel for this site.
Output
A report with: verdict up top (one paragraph, is the site healthy or not and the #1 issue), then sections — Indexation, Losers, Quick wins (striking distance + CTR fixes, ranked by impressions), Cannibalization — each with a table and the specific fix. End with a prioritized 5-item action list.
Fallbacks
If GSC isn't connected, say so and point to Ryze connector setup (https://help.get-ryze.ai/claude/connect) — do not substitute third-party estimates for the site's own data.
| 1 | |
| 2 | name seo-audit |
| 3 | description Full SEO audit of a site from its real Search Console + GA4 data — indexation health, CTR anomalies, decaying pages, striking-distance keywords, quick wins. Use when asked to "audit my site", "SEO audit", "why is my organic traffic down", or "SEO health check". |
| 4 | |
| 5 | |
| 6 | # SEO Audit |
| 7 | |
| 8 | ## Requires |
| 9 | |
| 10 | The free Ryze MCP connector (`https://connector.get-ryze.ai/mcp`). Claude Code: `claude mcp add ryze --transport http https://connector.get-ryze.ai/mcp`. claude.ai / Desktop / Cursor: add it as a custom connector with the same URL. Setup: https://www.get-ryze.ai/how-to-connect-claude-to-google-meta-ads-mcp |
| 11 | |
| 12 | Audit the user's site using their own data via the Ryze MCP. No estimates — everything below comes from their actual GSC/GA4. |
| 13 | |
| 14 | ## Workflow |
| 15 | |
| 16 | **Pick the property.** `google_search_console__listSites`. If several, use the one matching the user's domain; confirm only when ambiguous. |
| 17 | **Indexation.** `google_search_console__getIndexationSummary` — indexed vs not-indexed counts and reasons. Flag anything unusual (large "Crawled — currently not indexed", spikes in excluded pages). |
| 18 | **Performance baseline.** `google_search_console__runRawSearchAnalytics`: last 90 days vs previous 90, dimensions `query` and `page` (two calls each period). Compute clicks/impressions/CTR/position deltas. |
| 19 | **Find the problems:** |
| 20 | **Decaying pages** — pages whose clicks dropped >30% period-over-period |
| 21 | **CTR anomalies** — queries with position ≤ 5 but CTR < 2% (title/meta problem) |
| 22 | **Striking distance** — queries at position 8–20 with high impressions (one push from page 1) |
| 23 | **Cannibalization** — same query, multiple ranking pages splitting clicks |
| 24 | **Spot-check pages.** For the 3–5 worst pages, `google_search_console__inspectUrl` — canonical, indexing state, last crawl. |
| 25 | **Cross-check traffic.** `google_analytics__runRawReport` — organic sessions + conversions by landing page, same periods. A page can hold rankings but lose revenue; call that out. |
| 26 | **AI traffic.** `google_analytics__getAIReferrals` for the same window — note whether AI engines are becoming a meaningful channel for this site. |
| 27 | |
| 28 | ## Output |
| 29 | |
| 30 | A report with: verdict up top (one paragraph, is the site healthy or not and the #1 issue), then sections — Indexation, Losers, Quick wins (striking distance + CTR fixes, ranked by impressions), Cannibalization — each with a table and the specific fix. End with a prioritized 5-item action list. |
| 31 | |
| 32 | ## Fallbacks |
| 33 | |
| 34 | If GSC isn't connected, say so and point to Ryze connector setup (https://help.get-ryze.ai/claude/connect) — do not substitute third-party estimates for the site's own data. |
| 35 |
Discussion
Alternatives
Browse more free Claude skills or everything in Marketing.