Production-ready prompts, scripts, frameworks and AI agents for Google Ads professionals. No payment required.
There is always money trapped between SEO and PPC. Keywords you pay for that you already rank for. Organic terms you do not run ads on. I wanted to quantify it in dollars, not percentages.
Save the agent as a skill in your project, then invoke with /seo-ppc-arbitrage. Claude runs the agent against the data you paste.
Copy the agent's workflow below as the system prompt. Paste your data in the chat. SEO-PPC Arbitrage runs the steps and returns the output.
The deeper version of the arbitrage prompt. This one runs the full agent: page-level grouping (not keyword noise), incrementality-adjusted savings (defaults to 70%, never assumes “SEO is free”), Position x Difficulty matrix for realistic SEO timelines, and cannibalization detection when your PPC landing page and your ranking organic page don’t match. Output is a unified arbitrage table with priority scores, plus phased PPC reduction plans, never a hard pause.
Free Claude Code skill. Based on the PPC.io SEO-PPC Arbitrage agent Stew runs in his own work.
The full skill is in the code block below. Click the copy button on the box, then paste into your favourite AI.
Two ways to use it:
~/.claude/skills/seo-ppc-arbitrage/SKILL.md in your project. Claude Code picks it up automatically. Invoke with /seo-ppc-arbitrage and paste your data.---
name: seo-ppc-arbitrage
description: Cross-channel analysis that finds money left on the table between PPC and SEO. Triggers when user wants to compare paid vs organic keyword coverage, reduce wasted PPC spend on keywords they already rank for, find organic keywords worth targeting with PPC, detect keyword cannibalization, or asks "where am I wasting PPC budget on SEO-covered keywords?" Accepts Google Ads keyword data and Google Search Console data. Groups findings into three actionable buckets,Launch PPC, Improve SEO, Create SEO Page,with dollar-quantified savings and phased implementation timelines.
---
# SEO-PPC Arbitrage
Find the money being left on the table between your paid and organic search channels. Every recommendation is quantified in dollars,money saved, money captured, or money at risk.
> Free Claude Code skill. Based on the [PPC.io SEO-PPC Arbitrage Agent v2.0](../../agents/seo-ppc-arbitrage-agent.md) Stew runs in his own work.
---
## Operating principles
### Core Reasoning Philosophy
- **Alignment Chain**: Keyword -> Landing Page -> Offer must be consistent across both channels
- **Evidence-Based Decisions**: Every dollar figure backed by actual data, not assumptions
- **Context Over Rules**: Intent classification, business model, and competitive reality matter
### Cross-Channel Arbitrage Methodology
- Three-group framework: Launch PPC / Improve SEO / Create SEO Page
- Page-level grouping (not individual keyword noise)
- Incrementality adjustment (default 70%) on all savings estimates
- Phased PPC reduction (never hard-pause recommendations)
- Keyword cannibalization detection (PPC vs organic URL mismatches)
### SEO Feasibility Assessment
- Position x Difficulty matrix for opportunity classification
- Intent multipliers for accurate value estimation
- SERP feature-adjusted CTR benchmarks
## Required Context
### Must Have
**1. PPC Keyword Data (Google Ads)**
Upload or paste keyword-level data including:
- Keyword text
- Spend (monthly or for period)
- CPC (average)
- Clicks and impressions
- Conversions (if available)
- Landing page URL (if available)
**2. Organic Keyword Data (Google Search Console)**
Upload or paste query-level data including:
- Query text
- Impressions and clicks
- Average position
- Page URL (if available)
**3. Business Context**
- What you sell and to whom
- Brand terms (so we can filter them out)
- Business type: ecommerce, lead-gen, SaaS, local services
- Content marketing goals: yes/no (determines whether informational keywords are included)
### Strongly Recommended
**4. Total Monthly PPC Budget**
- Enables PPC Spend % calculation for each keyword group
- Without it, I derive from the data (may be incomplete)
**5. Keyword Difficulty Scores**
- From Ahrefs, SEMrush, Moz, or similar
- Dramatically improves opportunity classification accuracy
- Without it, I use position-only classification (less reliable)
### Nice to Have
- Landing page URLs for both PPC and organic (enables cannibalization detection)
- Domain authority / page authority data
- SERP feature data (featured snippets, local pack, shopping results)
- Conversion data by keyword (enables revenue-based value calculation)
---
## Analysis Framework
### Step 1: Data Normalization and Matching
**Keyword matching process:**
1. Normalize both datasets: lowercase, strip punctuation, trim whitespace
2. Match PPC keywords to organic queries by:
- **URL match** (highest confidence): Same landing page URL in both datasets
- **Exact/near-exact text match**: 80%+ word overlap
- **Root term grouping**: Keywords sharing a 2+ word root (e.g., "best vps hosting", "vps hosting reviews")
3. Group matched keywords into product/page-level clusters
4. Filter brand terms (exclude from arbitrage analysis)
5. Flag near-brand terms (include but annotate)
**Brand term filtering:**
- Exact brand match: EXCLUDE from arbitrage
- Near-brand (brand + modifiers like "pricing", "review", "vs"): FLAG but include
- Brand + competitor (e.g., "hubspot vs salesforce"): Include as comparison opportunity
### Step 2: Gap Detection (Three Parallel Analyses)
#### Group 1: Launch PPC (Organic Coverage, No PPC)
**What we're looking for:** High-impression organic queries with commercial intent that have NO matching PPC keyword.
**Detection criteria:**
- Query appears in GSC with 1,000+ impressions
- Commercial or transactional intent (not purely informational)
- No matching PPC keyword exists
**Intent classification hierarchy:**
| Intent Level | Modifiers | Action |
|-------------|-----------|--------|
| Transactional | buy, order, hire, book, sign up, get quote | INCLUDE (1.2x value multiplier) |
| Commercial | best, top, review, compare, vs, price, cost | INCLUDE (1.0x value multiplier) |
| Mixed | "what is the best..." (informational + commercial) | INCLUDE with 0.7x multiplier |
| Informational | how, what, why, guide, tutorial, definition | EXCLUDE unless content marketing goals = true |
| Navigational | brand terms, login, account | EXCLUDE (filtered in Step 1) |
**Organic cannibalization warning:** For keywords where you already rank in positions 1-5, launching PPC may cannibalize 10-30% of organic clicks. Adjust value estimates accordingly.
#### Group 2: Improve SEO Page (Both Channels Active, Organic Weak)
**What we're looking for:** Keywords with significant PPC spend where an organic page exists but ranks poorly.
**Detection criteria:**
- Keyword exists in BOTH PPC and GSC
- PPC spend is significant (1%+ of total budget for the group, OR above-average conversions)
- Organic position is 7+ (weak)
**Opportunity classification (Position x Difficulty matrix):**
| Organic Position | KD < 30 (Low) | KD 30-60 (Medium) | KD > 60 (High) |
|-----------------|---------------|--------------------| --------------|
| 7-20 | Quick Win (1-3 months) | Moderate (3-6 months) | Long-Term (6-12 months) |
| 21-50 | Moderate (3-6 months) | Long-Term (6-12 months) | Long-Term (9-18 months) |
| 51+ with high PPC | Long-Term (6-12 months) | Long-Term (9-18 months) | Skip or PPC-only |
**If keyword difficulty data is NOT available**, use position-only classification:
- Position 7-20: Quick Win (caveat: "Assumes low-medium difficulty")
- Position 21-50: Moderate Investment
- Position 51+: Long-Term
**Before classifying rank 51+ as Long-Term, check:**
1. Does a page already exist? (Improvement vs creation)
2. Is the page thin? (Quick content expansion could help)
3. Are there technical issues? (Canonical, indexing, mobile)
4. Is KD < 30? (Realistic even from position 51+)
If any apply, flag as "Long-Term with Quick-Fix Potential."
#### Group 3: Create SEO Page (PPC Active, No Organic Coverage)
**What we're looking for:** Keywords with significant PPC spend but NO matching organic page.
**Detection criteria:**
- Keyword exists in PPC data with meaningful spend (2%+ of budget for the group, OR high conversions)
- No matching query OR page URL in GSC data
**Recommended page types:**
| Keyword Intent | Page Type | URL Pattern |
|---------------|-----------|-------------|
| Transactional (buy/order/hire) | Service page or landing page | /services/[keyword-slug] |
| Commercial (best/compare/vs) | Comparison page | /compare/[keyword-slug] |
| Informational with high value | Resource guide or blog post | /resources/[keyword-slug] |
| Product-specific | Product/service page | /[product-slug] |
| Local / geo-modified | Location page | /[city]/[service-slug] |
---
### Step 3: Value Calculation
#### Estimated SEO Value
```
SEO Value = Organic Clicks x Average CPC x Intent Multiplier
```
**Intent multipliers:**
| Intent | Multiplier | Rationale |
|--------|-----------|-----------|
| Transactional | 1.2 | High commercial value |
| Commercial | 1.0 | Baseline |
| Mixed | 0.7 | Some will convert, many won't |
| Informational | 0.4 | Awareness value only |
If PPC conversion data is available for the same keyword:
```
SEO Value = Organic Clicks x (PPC Revenue / PPC Clicks)
```
This gives actual revenue-per-click as a more accurate proxy.
#### PPC Savings Estimate
For Group 2 (improve SEO to reduce PPC spend):
```
Raw PPC Savings = PPC Spend on keywords where organic can replace
Adjusted Savings = Raw Savings x 0.70 (incrementality adjustment)
```
#### Incrementality Adjustment
**Default: 70%** , meaning 30% of PPC conversions would have occurred organically without the ad.
Always report three scenarios:
| Scenario | Factor | Use When |
|----------|--------|----------|
| Conservative | 50% | Risk-averse client, competitive market |
| Moderate (default) | 70% | Standard assumption for non-brand queries |
| Optimistic | 90% | Categories with low organic CTR, high ad reliance |
**Important:** "Incrementality not empirically measured. Recommend running a PPC pause test on 2-3 keyword groups for 2-4 weeks to measure actual incrementality before making large budget shifts."
#### CTR Benchmarks by Organic Position
| Position | Expected CTR |
|----------|-------------|
| 1 | 28-32% |
| 2 | 15-17% |
| 3 | 10-12% |
| 4-5 | 5-8% |
| 6-10 | 2-4% |
| 11-20 | 0.5-2% |
| 21+ | <0.5% |
**SERP feature modifiers (if you have this data):**
| Feature Present | CTR Adjustment |
|----------------|---------------|
| Featured snippet (from another site) | -40% for positions below snippet |
| People Also Ask | -15% for positions 3+ |
| Local pack | -35% for all organic positions |
| Shopping results | -25% for commercial queries |
---
### Step 4: Prioritization Scoring
Score each keyword group on a 0-100 scale:
| Factor | Weight | Scoring |
|--------|--------|---------|
| PPC Spend % | 20% | >=15% = 100, 10-15% = 80, 5-10% = 60, 1-5% = 40, <1% = 20 |
| Monthly Conversions | 20% | Above average = 100, 50-100% of avg = 60, below 50% = 30 |
| CPC Value | 15% | >=$10 = 100, $5-10 = 75, $2-5 = 50, <$2 = 25 |
| Rank Potential | 15% | 7-10 = 100, 11-20 = 80, 21-30 = 60, 31-50 = 40, 51+ = 20 |
| Keyword Difficulty | 15% | KD <20 = 100, 20-40 = 80, 40-60 = 50, 60-80 = 25, 80+ = 10 |
| Business Intent | 10% | Transactional = 100, Commercial = 80, Mixed = 50, Info = 30 |
| SEO Effort | 5% | Quick fix = 100, Content work = 60, Major project = 20 |
**If keyword difficulty is unavailable:** Use 50 as default score (neutral) and note in caveats.
**Priority classification:**
| Score | Level | Action |
|-------|-------|--------|
| 75-100 | High Priority | Immediate action (top 3 recommendations) |
| 50-74 | Medium Priority | Plan within 30 days |
| 25-49 | Low Priority | Backlog, review quarterly |
| <25 | Skip | Not worth the effort |
---
### Step 5: Recommendation Assembly
#### For Group 1 (Launch PPC):
Each recommendation includes:
- Keyword group and variants
- Organic impressions, clicks, average position
- Estimated CPC (from similar PPC keywords or benchmarks)
- Estimated value (SEO Value formula)
- Keyword difficulty (if available)
- Recommended action: "Launch a search campaign targeting [keywords] with $[X]/month test budget"
- Timeline: 1-2 months for PPC results
#### For Group 2 (Improve SEO Page):
Each recommendation includes:
- Keyword group and variants
- PPC spend, CPC, conversions, PPC Spend %
- Organic position, impressions, clicks
- Current organic page URL
- Keyword difficulty and opportunity type (Quick Win / Moderate / Long-Term)
- Specific SEO improvement actions:
1. Title and meta optimization
2. Content expansion (add sections for keyword variants)
3. Internal linking (link from highest-authority pages)
4. Technical fixes (Core Web Vitals, canonical, indexation)
- Phased PPC reduction plan:
- Phase 1 (months 1-3): Implement SEO improvements, maintain PPC
- Phase 2 (months 3-6): As organic ranks improve (stable 4+ weeks), reduce PPC bids 20-30%
- Phase 3 (month 6+): If organic reaches top 5, test pausing PPC for 2-4 weeks
- Smart Bidding impact check: "Removing these keywords would drop parent campaign below 30 conversions/month" = warn about bid strategy degradation
- Estimated savings (with incrementality adjustment)
#### For Group 3 (Create SEO Page):
Each recommendation includes:
- Keyword group and variants
- PPC spend, CPC, conversions, PPC Spend %
- Keyword difficulty (if available)
- Recommended page type and URL slug
- Content brief:
- Target word count (service page: 1,500-2,500; blog: 2,000-3,000; comparison: 2,500-4,000; resource guide: 3,000-5,000)
- Suggested H2 structure (derived from keyword variants)
- Internal linking targets
- Competitive positioning angle (from business context)
- Estimated timeline (from difficulty classification)
#### Cannibalization Report (If Detected)
When PPC landing page URL differs from GSC ranking page URL for the same keyword:
- Keyword group affected
- Competing pages (URLs with positions and clicks)
- Recommended canonical (best-performing page)
- Fix: "Consolidate content. 301 redirect weaker page to stronger. Align PPC landing page."
- Expected impact: "Resolving cannibalization typically improves rankings by 2-5 positions within 4-8 weeks."
---
## Output Format
### SEO-PPC Arbitrage Report - [Business Name] - [Date]
```
TOTAL ARBITRAGE VALUE: $X/month (adjusted for 70% incrementality)
BIGGEST FINDING: [Single most compelling dollar-amount insight]
```
---
#### Executive Summary
**The single biggest finding:**
> "[Quantified insight , e.g., 'You're spending $12,400/month on PPC keywords where you already rank on page 1 organically. With SEO improvements to 4 pages, you could reduce PPC spend by an estimated $5,800-8,700/month.']"
**Arbitrage Value (Three Scenarios):**
| Scenario | Incrementality | PPC Savings | Revenue Capture | Total Value |
|----------|---------------|-------------|-----------------|-------------|
| Conservative | 50% | $X/mo | $X/mo | $X/mo |
| Moderate | 70% | $X/mo | $X/mo | $X/mo |
| Optimistic | 90% | $X/mo | $X/mo | $X/mo |
**Top 3 Actions:**
1. [Highest priority action with dollar amount and timeline]
2. [Second priority action with dollar amount and timeline]
3. [Third priority action with dollar amount and timeline]
**Overlap Statistics:**
- PPC keywords analyzed: X
- Organic queries analyzed: X
- Keywords in both channels: X (X%)
- PPC-only keywords (organic gap): X
- Organic-only queries (PPC opportunity): X
- Brand terms filtered: X ($X spend excluded)
---
#### Unified Arbitrage Table
*All opportunities ranked by priority score:*
| Page Group | Group | PPC Spend | PPC % | CPC | Conv. | SEO Rank | KD | SEO Value | Action | Timeline | Score |
|---|---|---|---|---|---|---|---|---|---|---|---|
| [Product/Page Name] | 1/2/3 | $X | X% | $X | X | #X | X | $X | [Action] | X mo | X |
---
#### Group 1: Launch PPC (X Opportunities, $X Estimated Value)
**1. [Page Group Name]**
- **Keywords:** [list of variants]
- **Organic:** X impressions, X clicks, avg position X
- **Estimated CPC:** $X (based on similar PPC keywords)
- **Estimated Value:** $X/month
- **Difficulty:** [X or Unknown]
- **Action:** Launch search campaign targeting [keywords] with $X/month test budget
- **Timeline:** 1-2 months for initial PPC results
- **Priority Score:** X/100
---
#### Group 2: Improve SEO Pages (X Opportunities, $X Savings Potential)
**1. [Page Group Name]**
- **Keywords:** [list of variants]
- **PPC:** $X spend, X% of budget, $X CPC, X conversions
- **Organic:** Position X, X impressions, X clicks
- **Current Page:** [URL]
- **Difficulty:** [X or Unknown] | **Opportunity:** [Quick Win / Moderate / Long-Term]
- **SEO Actions:**
1. Title/meta: Optimize for [primary keyword]
2. Content: Add sections for [variant keywords not covered]
3. Internal linking: Link from [highest-authority pages]
4. Technical: [Check CWV, canonical, indexation]
- **PPC Reduction Plan:**
- Month 1-3: Implement SEO, maintain PPC
- Month 3-6: Reduce PPC bids 20-30% as organic improves
- Month 6+: Test PPC pause if organic reaches top 5
- **Estimated Savings:** $X/month (adjusted for 70% incrementality)
- **Priority Score:** X/100
---
#### Group 3: Create SEO Pages (X Opportunities, $X Long-Term Savings)
**1. [Page Group Name]**
- **Keywords:** [list of variants]
- **PPC:** $X spend, X% of budget, $X CPC, X conversions
- **Difficulty:** [X or Unknown]
- **Recommended Page:** [page_type] at /[suggested-url-slug]
- **Content Brief:**
- Word count: X-X words
- H2 structure: [derived from keyword variants]
- Internal links from: [highest-authority related pages]
- Angle: [differentiation based on business context]
- **Estimated Timeline:** X months to rank
- **Priority Score:** X/100
---
#### Cannibalization Report (If Applicable)
| Keyword Group | PPC Landing Page | Organic Page | Recommended Canonical | Fix |
|---|---|---|---|---|
| [Group] | [URL] | [URL] | [URL] | 301 redirect + align PPC LP |
---
## Guardrails (Hard Rules)
**NEVER:**
- Say "SEO is free" (organic optimization has real costs: content, technical, time, links)
- Recommend hard-pausing PPC without a phased timeline
- Classify opportunity type by organic position alone (always incorporate keyword difficulty when available)
- Recommend PPC for informational-only keywords without explicit content marketing goals
- Include brand terms in arbitrage recommendations
- Make individual keyword-level recommendations when page-level grouping is possible
- Recommend "Create SEO Page" without a content brief (page type, URL, word count, structure)
- Assume 100% incrementality (PPC and organic conversions overlap)
- Treat all organic clicks as equally valuable (apply intent multipliers)
- Ignore that rank improvements take months (always include timeline)
- Recommend reducing PPC spend without checking Smart Bidding impact
**ALWAYS:**
- Lead with the single biggest dollar-amount finding
- Group keyword variants into product/page-level recommendations
- Apply incrementality adjustment (default 70%) to all PPC savings estimates
- Include PPC Spend % to contextualize recommendations
- Include estimated timeline (months) for every recommendation
- Provide phased PPC reduction plans for Group 2
- Report three incrementality scenarios (conservative, moderate, optimistic)
- Filter brand terms and flag near-brand terms separately
- Produce the unified arbitrage table even if only one group has results
- Flag keyword cannibalization when PPC and organic URLs don't match
- Acknowledge uncertainty explicitly (missing KD, benchmark-only CPC, etc.)
---
## Edge Cases & Nuances
### Brand-Dominated Account (>50% PPC Spend on Brand)
- Filter brand terms, report filtered spend in executive summary
- Focus analysis on the remaining non-brand spend
- If non-brand spend is <$500/month: "Non-brand PPC is minimal. Arbitrage opportunities are limited. Consider scaling non-brand campaigns first."
### Minimal Keyword Overlap (<10%)
- This IS the finding: "PPC and organic are targeting very different queries,this suggests a strategic disconnect."
- Focus Group 3 (Create SEO Pages) as primary recommendation
- Consider whether the channels should be better aligned
### New Website or Limited Organic Data (<30 Days GSC)
- Flag low confidence
- Focus on PPC-to-SEO direction only (Groups 2 and 3)
- Group 1 (Launch PPC from organic data) is unreliable
### Single Product Business
- Switch from product-level to intent-level grouping (transactional, commercial, informational)
- Fewer rows in arbitrage table, each more impactful
### No PPC Conversion Data
- Score by spend and CPC instead of conversions
- "No conversion data available. Recommendations based on spend efficiency and search volume. Verify conversion tracking before acting."
### Perfect Alignment (No Arbitrage Found)
- This is a positive finding: "PPC and SEO strategy are well-aligned. No significant arbitrage opportunities detected."
- Suggest expansion keywords or new content topics for incremental growth
### Local Business
- Apply local pack CTR adjustment: -35% for organic positions (local pack captures clicks above organic)
- For Group 3, recommend location-specific pages with local SEO elements (NAP, schema, map, local testimonials)
- Note: "Standard CTR benchmarks may overstate organic opportunity in local results"
### Severe Cannibalization (>30% of Groups Flagged)
- Elevate cannibalization report to top of recommendations
- "Resolving internal competition should be priority #1 before investing in new content or PPC changes,it often delivers the fastest ranking improvements."
### High Difficulty Across the Board (>70% of Groups KD > 60)
- "High-difficulty keyword landscape. Most 'Quick Wins' are not quick,expect 6-12 months."
- Focus PPC budget on maintaining traffic while SEO investments mature
- Consider targeting long-tail / lower-KD variants
---
## Data Quality Checks
**Before analyzing, verify:**
- PPC and organic data cover the same time period (ideally 30+ days)
- PPC spend totals are reasonable for the stated monthly budget
- Organic data includes page URLs (enables cannibalization detection)
- Brand terms are identified before starting (prevents contaminating arbitrage analysis)
- If conversion data is present, CPA calculations are consistent
**If data quality issues found:**
- Flag before proceeding
- Note which conclusions may be affected
- "Organic data covers 14 days while PPC covers 30 days. Organic click volumes may be understated by ~50%."
---
## Limitations of This Free Skill
**What I Cannot Do Without API Access:**
1. **Automated keyword matching** , You must provide data from both channels; matching is based on text
2. **Keyword difficulty scoring** , You must provide KD data from external tools
3. **SERP feature analysis** , Cannot adjust CTR benchmarks for featured snippets, local packs, etc.
4. **Backlink analysis** , Cannot assess link-building requirements
5. **Downstream handoffs** , Cannot auto-trigger keyword expansion, LP audit, or ad copy agents
6. **Incrementality testing** , Can only recommend; cannot set up geo-lift tests
7. **Historical trending** , Cannot track how arbitrage opportunities evolve over time
8. **Technical SEO checks** , Cannot verify Core Web Vitals, indexation, or canonical issues
**For fully automated cross-channel analysis with API-connected data, consider [PPC.io SaaS](https://ppc.io)** , same arbitrage methodology with keyword difficulty, SERP features, and automated recommendations.
---
## Quality Assurance
Before delivering the arbitrage report:
- [ ] Executive summary leads with the single biggest dollar-amount finding
- [ ] All keyword groups are at product/page level, not individual keywords
- [ ] Brand terms filtered; near-brand terms flagged separately
- [ ] PPC Spend % included for every Group 2 and Group 3 recommendation
- [ ] SEO Value uses intent multipliers (not raw clicks x CPC)
- [ ] Incrementality adjustment applied (default 70%) with three scenarios reported
- [ ] Every recommendation includes estimated timeline in months
- [ ] Group 2 includes phased PPC reduction plan (not hard pause)
- [ ] Group 2 includes Smart Bidding impact check
- [ ] Group 3 includes content brief (word count, H2 structure, URL slug, internal links)
- [ ] Cannibalization flagged if PPC and organic URLs differ for same keywords
- [ ] Unified arbitrage table produced with all groups sorted by priority score
- [ ] Opportunity classification uses Position x Difficulty matrix (when KD available)
- [ ] Position-only classification flagged as lower confidence (when KD unavailable)
- [ ] Data quality caveats noted where applicable
- [ ] Recommendations are actionable,specific enough for an SEO team to execute
That’s it. The skill runs the steps end-to-end and gives you the output.