Competitor Page Gap Analysis

Competitor page gap analysis — take a query you want to win and the pages currently outranking you, and produce a concrete brief on what to add or change to compete. Compares content depth and coverage (subtopics they cover that you…
--- name: competitor-pages argument-hint: "<your page URL + 1-3 competitor URLs ranking for the same query>" description: > Competitor page gap analysis — take a query you want to win and the pages currently outranking you, and produce a concrete brief on what to add or change to compete. Compares content depth and coverage (subtopics they cover that you don't), structure (headings, format, tables, media), search-intent match, E-E-A-T signals, schema/rich-result eligibility, internal linking, and on-page optimization — across your page vs. the top-ranking competitors. Use this skill whenever the user wants to know why a competitor outranks them on a specific query, what a top-ranking page does better, a content-gap analysis against specific competitor URLs, or a brief to beat a specific SERP. Trigger on: "why does competitor X outrank me", "content gap analysis", "competitor page analysis", "what does the top result have that I don't", "how do I beat this page", "analyze competitor pages", "SERP gap", "compete for [keyword]". For seed keyword discovery use /keyword-research; for a content calendar use /content-planner.
Overview
You are a senior SEO content strategist. Your job is to compare a target page against the pages outranking it for a specific query, find the concrete gaps, and hand back a brief that closes them.
Manual install (npx, ZIP)
npx skills add nowork-studio/notfair-plugin --skill competitor-pages -g -a claude-codemkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/nowork-studio/notfair-plugin/tar.gz/5229d2163795 \
| tar -xz -C ~/.claude/skills --strip-components=2 notfair-plugin-5229d2163795/seo/competitor-pagesNew-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/762b5fdb2917aab58742/competitor-pages.zip" -OutFile "$env:TEMP\competitor-pages.zip"; Expand-Archive "$env:TEMP\competitor-pages.zip" -DestinationPath "$HOME\.claude\skills" -ForceConnects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md3.4 KB
Read the files here
nowork-studio/
Shared references1SKILL.md reads these from elsewhere in the repo. Not in the ZIP.
Get them on GitHub ↗Show the full text74 lines
Competitor Page Gap Analysis
You are a senior SEO content strategist. Your job is to compare a target page against the pages outranking it for a specific query, find the concrete gaps, and hand back a brief that closes them.
Credit: capability inspired by the open-source
claude-seoproject (MIT, Agrici Daniel). Implementation is original to NotFair.
Step 0 — Scope
Collect: the target query, the user's page URL (if it exists yet), and 1–3 competitor URLs that rank for the query. If the user gives only the query, ask which competitors to compare against (or note the top organic results).
Phase 0 — Preflight & data
Read and follow ../shared/preamble.md. If GSC connected, pull the user's current
position / impressions for the query to ground the gap (striking distance vs. far
behind).
Phase 1 — Crawl all pages
Fetch the user's page and each competitor page. For each, extract: title/H1, heading outline (H2/H3), word count, subtopics covered, media (images/video/ tables/tools), schema types present, internal/external link counts, publish/update date, and author/E-E-A-T signals.
Phase 2 — Intent & coverage comparison
- Search intent — what format do the winners take (guide / listicle / comparison / tool / product)? Does the user's page match? Intent mismatch is often the whole story.
- Coverage matrix — list every subtopic/heading the competitors cover; mark which the user's page covers (✅/❌). The ❌ rows are the content gaps.
- Depth & format — word count, tables, examples, original data, media richness.
- Freshness — are competitors recently updated while the user's page is stale?
Phase 3 — Signals comparison
- E-E-A-T — author bios, citations, first-hand experience, credentials.
- Schema / rich results — what schema do winners have that earns SERP features (FAQ, HowTo, Review stars) that the user's page lacks?
- On-page — internal links pointing to the page, keyword placement in title/H1.
Phase 4 — Brief
Produce a "to beat this SERP" brief: the recommended format/angle, the exact
missing subtopics to add (with suggested H2s), depth/media targets, schema to add,
E-E-A-T additions, and internal links to build. Make it directly handable to
/content-writer. Write in the user's language.
| 1 | |
| 2 | name competitor-pages |
| 3 | argument-hint "<your page URL + 1-3 competitor URLs ranking for the same query>" |
| 4 | description > |
| 5 | Competitor page gap analysis — take a query you want to win and the pages |
| 6 | currently outranking you, and produce a concrete brief on what to add or change |
| 7 | to compete. Compares content depth and coverage (subtopics they cover that you |
| 8 | don't), structure (headings, format, tables, media), search-intent match, E-E-A-T |
| 9 | signals, schema/rich-result eligibility, internal linking, and on-page |
| 10 | optimization — across your page vs. the top-ranking competitors. Use this skill |
| 11 | whenever the user wants to know why a competitor outranks them on a specific |
| 12 | query, what a top-ranking page does better, a content-gap analysis against |
| 13 | specific competitor URLs, or a brief to beat a specific SERP. Trigger on: |
| 14 | "why does competitor X outrank me", "content gap analysis", "competitor page |
| 15 | analysis", "what does the top result have that I don't", "how do I beat this |
| 16 | page", "analyze competitor pages", "SERP gap", "compete for [keyword]". For seed |
| 17 | keyword discovery use /keyword-research; for a content calendar use |
| 18 | /content-planner. |
| 19 | |
| 20 | |
| 21 | # Competitor Page Gap Analysis |
| 22 | |
| 23 | You are a senior SEO content strategist. Your job is to compare a target page |
| 24 | against the pages outranking it for a specific query, find the concrete gaps, and |
| 25 | hand back a brief that closes them. |
| 26 | |
| 27 | > Credit: capability inspired by the open-source `claude-seo` project |
| 28 | > (MIT, Agrici Daniel). Implementation is original to NotFair. |
| 29 | |
| 30 | |
| 31 | |
| 32 | ## Step 0 — Scope |
| 33 | |
| 34 | Collect: the **target query**, the **user's page URL** (if it exists yet), and |
| 35 | **1–3 competitor URLs** that rank for the query. If the user gives only the query, |
| 36 | ask which competitors to compare against (or note the top organic results). |
| 37 | |
| 38 | ## Phase 0 — Preflight & data |
| 39 | |
| 40 | Read and follow `../shared/preamble.md`. If GSC connected, pull the user's current |
| 41 | position / impressions for the query to ground the gap (striking distance vs. far |
| 42 | behind). |
| 43 | |
| 44 | ## Phase 1 — Crawl all pages |
| 45 | |
| 46 | Fetch the user's page and each competitor page. For each, extract: title/H1, |
| 47 | heading outline (H2/H3), word count, subtopics covered, media (images/video/ |
| 48 | tables/tools), schema types present, internal/external link counts, publish/update |
| 49 | date, and author/E-E-A-T signals. |
| 50 | |
| 51 | ## Phase 2 — Intent & coverage comparison |
| 52 | |
| 53 | **Search intent** — what format do the winners take (guide / listicle / |
| 54 | comparison / tool / product)? Does the user's page match? Intent mismatch is |
| 55 | often the whole story. |
| 56 | **Coverage matrix** — list every subtopic/heading the competitors cover; mark |
| 57 | which the user's page covers (✅/❌). The ❌ rows are the content gaps. |
| 58 | **Depth & format** — word count, tables, examples, original data, media richness. |
| 59 | **Freshness** — are competitors recently updated while the user's page is stale? |
| 60 | |
| 61 | ## Phase 3 — Signals comparison |
| 62 | |
| 63 | **E-E-A-T** — author bios, citations, first-hand experience, credentials. |
| 64 | **Schema / rich results** — what schema do winners have that earns SERP features |
| 65 | (FAQ, HowTo, Review stars) that the user's page lacks? |
| 66 | **On-page** — internal links pointing to the page, keyword placement in title/H1. |
| 67 | |
| 68 | ## Phase 4 — Brief |
| 69 | |
| 70 | Produce a **"to beat this SERP" brief**: the recommended format/angle, the exact |
| 71 | missing subtopics to add (with suggested H2s), depth/media targets, schema to add, |
| 72 | E-E-A-T additions, and internal links to build. Make it directly handable to |
| 73 | `/content-writer`. Write in the user's language. |
| 74 |
Details
- Updated
- Sep 24, 2026
- License
- MIT
- Stars on the repo
- ★ 3,853
- Checked
- Source
- nowork-studio/notfair-plugin ↗
- Creator
- nowork-studio · 61 listings
Similar skills
See all →
SkillEstimate the intrinsic value of a public company using DCFCompany valuation
SkillFind keywords a competitor ranks for that the user's siteCompetitor gap
SkillMine the highest-converting ad angles from customer reviewsAd angle miner
SkillAnalyze competitor content coverageCompetitor content intelligence
SkillCreates competitive battlecards for sales deal conversations
SkillRead your X audience and niche from real dataX audience insightsMore from nowork-studio
SkillConnect a CMS to notfair SEO tools/setup-cms
SkillGenerate and A/B test Google Ads copyAd Copy Generator + A/B Tester
SkillPlan and review Amazon Ads with margin-aware ACoS, productAmazon Ads Planning
SkillBacklink / Off-Page SEO Audit
SkillScans a website to find broken linksBroken link checker
SkillPlan and review ChatGPT Ads experiments without assuming adChatGPT Ads Planning