SEO vs Ads Analyzer

SEO vs ads

by Ryze-AI-Adgent · MIT license · ★ 3,135 on GitHub

SEO vs ads cover

Find money leaking between search ads and SEO — queries you pay for while already ranking organically, and paid queries with no organic coverage. Use when asked "am I paying for clicks I'd get free", "brand bidding waste", "SEO vs ads…

---
name: seo-vs-ads
description: Find money leaking between search ads and SEO — queries you pay for while already ranking organically, and paid queries with no organic coverage. Use when asked "am I paying for clicks I'd get free", "brand bidding waste", "SEO vs ads overlap", or "cut wasted ad spend with SEO".
---

# SEO vs Ads

## 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

The report subscription tools can't do: it needs your ads account AND your Search Console together. Both are on the Ryze MCP.

## Workflow

1. **Paid search terms.** `google_ads__runRawGaql` on the default account — search terms report, last 90 days: term, impressions, clicks, cost, conversions. (GAQL shape via `native__get_provider_docs`, provider `google_ads`, if needed.)
2. **Organic positions.** `google_search_console__runRawSearchAnalytics`, dimension `["query"]`, same window.
3. **Join on query** and bucket:

Overview

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

Manual install (npx, ZIP)
Claude Codenpx skills add Ryze-AI-Adgent/open-seo-mcp-skills --skill seo-vs-ads -g -a claude-code
Claude Code (degit)npx degit Ryze-AI-Adgent/open-seo-mcp-skills/skills/seo-vs-ads#main ~/.claude/skills/seo-vs-ads
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md2.3 KB
Read SKILL.md here
Ryze-AI-Adgent/main1 file shown
SKILL.md
Show the full text32 lines
seo-vs-ads/SKILL.md32 lines · 2.3 KB

SEO vs Ads

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

The report subscription tools can't do: it needs your ads account AND your Search Console together. Both are on the Ryze MCP.

Workflow

  1. Paid search terms. google_ads__runRawGaql on the default account — search terms report, last 90 days: term, impressions, clicks, cost, conversions. (GAQL shape via native__get_provider_docs, provider google_ads, if needed.)
  2. Organic positions. google_search_console__runRawSearchAnalytics, dimension ["query"], same window.
  3. Join on query and bucket:
    • Double-paying — organic position ≤ 3 AND paid spend on the same term. Especially brand terms with no competing advertisers (check top-of-page rate / competition). Sum the spend: that's the number for the headline.
    • Defensible — organic ≤ 3 but competitors bid on the term (paid presence may be justified; say so honestly)
    • Paid-only winners — terms converting in ads with no organic ranking → the SEO content roadmap, pre-validated by money
    • Organic-only converters — strong organic queries with no ad coverage → scale candidates if ads team wants volume
  4. Estimate savings. For the double-paying bucket: spend × the organic click-capture you'd retain (be conservative, ~50–70% for position 1 brand terms; label it an estimate).

Output

Headline first: "$X/quarter going to clicks you already rank #1 for." Then the four buckets as tables (term, cost, conversions, organic position), the savings estimate with its assumptions stated, and a short action list: exact negatives to add, exact pages to build.

Fallback

If only one of the two accounts is connected, run what's possible, and name the missing connection instead of guessing at the other half.

1---
2name: seo-vs-ads
3description: Find money leaking between search ads and SEO — queries you pay for while already ranking organically, and paid queries with no organic coverage. Use when asked "am I paying for clicks I'd get free", "brand bidding waste", "SEO vs ads overlap", or "cut wasted ad spend with SEO".
4---
5 
6# SEO vs Ads
7 
8## Requires
9 
10The 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 
12The report subscription tools can't do: it needs your ads account AND your Search Console together. Both are on the Ryze MCP.
13 
14## Workflow
15 
161. **Paid search terms.** `google_ads__runRawGaql` on the default account — search terms report, last 90 days: term, impressions, clicks, cost, conversions. (GAQL shape via `native__get_provider_docs`, provider `google_ads`, if needed.)
172. **Organic positions.** `google_search_console__runRawSearchAnalytics`, dimension `["query"]`, same window.
183. **Join on query** and bucket:
19 - **Double-paying** — organic position ≤ 3 AND paid spend on the same term. Especially brand terms with no competing advertisers (check top-of-page rate / competition). Sum the spend: that's the number for the headline.
20 - **Defensible** — organic ≤ 3 but competitors bid on the term (paid presence may be justified; say so honestly)
21 - **Paid-only winners** — terms converting in ads with no organic ranking → the SEO content roadmap, pre-validated by money
22 - **Organic-only converters** — strong organic queries with no ad coverage → scale candidates if ads team wants volume
234. **Estimate savings.** For the double-paying bucket: spend × the organic click-capture you'd retain (be conservative, ~50–70% for position 1 brand terms; label it an estimate).
24 
25## Output
26 
27Headline first: "$X/quarter going to clicks you already rank #1 for." Then the four buckets as tables (term, cost, conversions, organic position), the savings estimate with its assumptions stated, and a short action list: exact negatives to add, exact pages to build.
28 
29## Fallback
30 
31If only one of the two accounts is connected, run what's possible, and name the missing connection instead of guessing at the other half.
32 
View all files on GitHub →

Details

License
MIT
Stars on the repo
★ 3,135
Checked
Source
Ryze-AI-Adgent/open-seo-mcp-skills ↗
Creator
Ryze-AI-Adgent · 8 listings
View creator

Similar skills

See all →
SkillAgent Browsing AuditorAgriciDaniel/claude-seo · by AgriciDanielAudit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF treatment of agent traffic, llms.txt, Markdown delivery, ai-catalog.json, /.well-known discovery files, and WebMCP tools. Exclude AI citability and brand signals (seo-geo) and commerce protocol depth (seo-ecommerce).★ 17.4k GitHub starsSkillBacklink Profile AnalysisAgriciDaniel/claude-seo · by AgriciDanielBacklink profile analysis: referring domains, anchor text distribution, toxic link detection, competitor gap analysis. Works with free APIs (Moz, Bing Webmaster, Common Crawl) and DataForSEO extension. Use when user says backlinks, link profile, referring domains, anchor text, toxic links, link gap, link building, disavow, or backlink audit.★ 17.4k GitHub starsSkillCMS Configuration Helpernowork-studio/notfair-plugin · by nowork-studioConnect a CMS to notfair SEO tools. Guides users through configuring WordPress, Strapi, Contentful, or Ghost — tests the connection, and writes credentials to .env.local. Once set up, seo-analysis automatically cross- references CMS content against Google Search Console data. Use whenever the user says "connect my CMS", "set up WordPress", "configure Strapi", "add Contentful", "connect Ghost", or "CMS setup". Also trigger if the user asks why no CMS data appears in a seo-analysis report.★ 3.9k GitHub starsSkillBacklink Comparison ToolRyze-AI-Adgent/open-seo-mcp-skills · by Ryze-AI-AdgentBacklink profile for any domain — referring domains, authority, anchors, new/lost links, and a side-by-side vs a competitor. Use when asked "check my backlinks", "backlink profile of X", "who links to them", or "link gap vs competitor".★ 3.1k GitHub starsSkillWeb Vitals Auditoraddyosmani/web-quality-skills · by addyosmaniOptimize Core Web Vitals (LCP, INP, CLS) for better page experience using field and lab evidence. Use when asked to "improve Core Web Vitals", "fix LCP", "reduce CLS", "optimize INP", "page experience optimization", or "fix layout shifts".★ 2.8k GitHub starsSkillSEO Publishing Looptsingyuai/growth-lab · by tsingyuaiRun an SEO page observation-action-review loop with persistent Memory by coordinating demand research, page creation, adversarial review, image generation, IndexNow submission, and performance review. Use when taking an SEO page from opportunity discovery through publication, measurement, iteration, or continuing a previous SEO loop from Memory.★ 2k GitHub stars

More from Ryze-AI-Adgent

SkillAI Engine Visibility TrackerRyze-AI-Adgent/open-seo-mcp-skills · by Ryze-AI-AdgentMeasure real AI-engine visibility — traffic from ChatGPT, Perplexity, Claude, Gemini and which pages they cite — from actual GA4 referral data, not prompt sampling. Use when asked "AI visibility", "GEO/AEO check", "do LLMs cite us", "traffic from ChatGPT", or "how do we show up in AI search".★ 3.1k GitHub starsSkillBacklink Comparison ToolRyze-AI-Adgent/open-seo-mcp-skills · by Ryze-AI-AdgentBacklink profile for any domain — referring domains, authority, anchors, new/lost links, and a side-by-side vs a competitor. Use when asked "check my backlinks", "backlink profile of X", "who links to them", or "link gap vs competitor".★ 3.1k GitHub starsSkillKeyword Gap AnalyzerRyze-AI-Adgent/open-seo-mcp-skills · by Ryze-AI-AdgentFind keywords a competitor ranks for that the user's site doesn't — the content gap, prioritized by volume and winnability. Use when asked "what does competitor.com rank for", "keyword gap vs X", "steal competitor keywords", or "why do they outrank us".★ 3.1k GitHub starsSkillSEO Content BriefRyze-AI-Adgent/open-seo-mcp-skills · by Ryze-AI-AdgentSERP-driven content brief for a target keyword — what ranks, what to cover, headings, questions, internal links from your own data. Use when asked for a "content brief", "outline to rank for X", "what should this article cover", or before writing any SEO page.★ 3.1k GitHub starsSkillKeyword Research & MetricsRyze-AI-Adgent/open-seo-mcp-skills · by Ryze-AI-AdgentKeyword research from a seed topic — ideas, real Google volume/CPC, intent, difficulty, clustered into a plan. Use when asked to "find keywords", "keyword research for X", "what should I rank for", or "build a keyword plan".★ 3.1k GitHub starsSkillSERP Rank TrackingRyze-AI-Adgent/open-seo-mcp-skills · by Ryze-AI-AdgentRank tracking without a tracker subscription — position movers between any two periods from real Search Console data. Use when asked "how are my rankings", "what moved this week/month", "track my keywords", or "did the update hit me".★ 3.1k GitHub stars