seo-vs-ads
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".
Install
npx skills add https://github.com/Ryze-AI-Adgent/open-seo-mcp-skills/tree/main/skills/seo-vs-ads
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install ryze-ai-adgent-open-seo-mcp-skills@llmmart
git clone https://github.com/Ryze-AI-Adgent/open-seo-mcp-skills.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole ryze-ai-adgent/open-seo-mcp-skills collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
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
- Paid search terms.
google_ads__runRawGaqlon the default account — search terms report, last 90 days: term, impressions, clicks, cost, conversions. (GAQL shape vianative__get_provider_docs, providergoogle_ads, if needed.) - Organic positions.
google_search_console__runRawSearchAnalytics, dimension["query"], same window. - 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
- 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.
Files (open-seo-mcp-skills)
-
SKILL.md 2.3 KB
--- 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: - **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.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.