SEO vs Google Ads overlap

A free Claude skill. Finds what you pay for in Google Ads while already ranking top 3 organically, and the paid winners SEO should build pages for.

Needs: the Caybl.ai connector with Google Ads, Search Console connected. Try: “Am I paying for Google Ads clicks I'd get for free from organic search?”

What you get

  • Headline: spend on clicks you already rank for
  • Double-paying / defensible / paid-only / organic-only tables
  • Test negatives and pages to build

Install

claude.ai and Claude Desktop

  1. Download the .zip.
  2. In Claude, go to Settings, Capabilities, Skills, and upload it.
  3. Connect Caybl.ai from the connector directory if you haven’t already.

Claude Code

mkdir -p ~/.claude/skills/seo-vs-ads-overlap && curl -fsSL https://caybl.ai/skills/seo-vs-ads-overlap/SKILL.md -o ~/.claude/skills/seo-vs-ads-overlap/SKILL.md
claude mcp add --transport http caybl https://api.caybl.ai/mcp

The skill

This is the full SKILL.md - the same file you download. View raw.

---
name: seo-vs-ads-overlap
description: Finds money leaking between Google Ads and organic search using live Ads and Search Console data via the Caybl.ai connector - queries you pay for while already ranking in the top 3, paid winners with no organic page, and organic converters with no ads. Use for "am I paying for clicks I'd get for free", "brand bidding waste", "SEO vs ads overlap", "paid and organic cannibalization", or "what content should SEO build next".
license: MIT
compatibility: Requires the Caybl.ai MCP connector (https://api.caybl.ai/mcp) with both Google Ads and Search Console connected.
metadata:
  author: Caybl.ai
  version: "1.0"
  adapted-from: Ryze-AI-Adgent/open-seo-mcp-skills (seo-vs-ads), MIT
---

# SEO vs ads overlap

## Requires

The Caybl.ai MCP connector with **both** Google Ads and Search Console connected - this is the analysis neither dashboard can do on its own. Setup: https://caybl.ai/google-ads-mcp and https://caybl.ai/search-console-mcp. If only one is connected, run what's possible and name the missing one instead of guessing the other half.

## Workflow

1. **Paid search terms.** `get_search_terms` for the last 90 days: term, impressions, clicks, cost, conversions.
2. **Organic positions.** `run_search_analytics_report`, dimension `query`, same window (ending 2 days ago).
3. **Competition signal.** For overlapping terms, `get_impression_share` (or `run_gaql_report` with `metrics.search_top_impression_share` and `metrics.search_absolute_top_impression_share`) to see whether other advertisers compete.
4. **Join on query** (normalised: lowercase, trimmed) and bucket:
   - **Double-paying** - organic position 3 or better AND paid spend. Especially brand terms with little or no competing ads. **Sum this spend - it's the headline.**
   - **Defensible** - organic top 3 but competitors bid on the term; paid presence may be justified. Say so honestly.
   - **Paid-only winners** - converting in ads, no organic ranking -> the SEO content roadmap, already validated by money.
   - **Organic-only converters** - strong organic queries with no ad coverage -> candidates if the ads team wants more volume.
5. **Estimate savings** for double-paying terms: spend x 50-70% (the share of clicks you'd likely keep organically at position 1-3). Label it an estimate and show the assumption.

## Output

- **Headline:** "$X a quarter goes to clicks you already rank top 3 for."
- Four tables: | Query | Paid cost | Paid conv. | Organic position | Organic clicks | Competition |
- **Actions:** exact negatives or bid-downs to test on double-paying terms (test, don't cut everything at once - run a 2-4 week holdout and compare total clicks), pages to build for paid-only winners, and ad groups to consider for organic-only converters.

Offer to add test negatives with `add_negative_keywords` **with `validateOnly: true` first**, applied only after an explicit yes.

## Guardrails
- Brand terms with aggressive competitor bidding are not waste - flag, don't cut.
- Query text differs slightly between Ads and Search Console (close variants); match conservatively and say how you matched.

Adapted from Ryze-AI-Adgent/open-seo-mcp-skills (MIT). See NOTICES.md.

More SEO skills

  • SEO audit from Search Console - An SEO audit from your own Search Console, Bing and GA4 data: indexation, decaying pages, CTR fixes, striking-distance keywords and cannibalization.
  • SEO rank tracking - Winners, losers, new and lost queries from Search Console over the last 28 days or around a Google update - with Bing alongside.
  • Core Web Vitals audit - Finds your highest-traffic pages that fail Core Web Vitals for real visitors, works out why, and ranks the fixes by time saved and traffic.

Connect your data, then run the skill

Sign in with Google, connect your accounts and add Caybl.ai to Claude. Google Analytics is free.

Get started free →