competitor-pages

$npx mdskill add nowork-studio/NotFair/competitor-pages

Compare your page against top-ranking competitors to find content gaps.

  • Identifies why competitor pages outrank yours for a specific query.
  • Relies on user-provided URLs and query for comparison.
  • Analyzes content depth, structure, intent, E-E-A-T, schema, and links.
  • Outputs a concrete brief with changes needed to compete.

SKILL.md

.github/skills/competitor-pagesView on GitHub ↗
---
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.
---

# 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-seo` project
> (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.

More from nowork-studio/NotFair

SkillDescription
backlink-audit>
broken-link-checker>
content-planner>
content-writer>
ecommerce-seo>
geo-optimizer>
google-adsManage Google Ads — performance, keywords, bids, budgets, negatives, campaigns, ads, search terms, QS, location targeting, bulk operations, experiments, asset management, portfolio bidding, offline conversions. Use for any mention of Google Ads, CPA, ROAS, ad spend, or campaign settings.
google-ads-auditGoogle Ads account audit and business context setup. Run this first — it gathers business information, analyzes account health, and saves context that all other ads skills reuse. Trigger on "audit my ads", "ads audit", "set up my ads", "onboard", "account overview", "how's my account", "ads health check", "what should I fix in my ads", or when the user is new to NotFair and hasn't run an audit before. Also trigger proactively when other ads skills detect that business-context.json is missing.
google-ads-copyGenerate and A/B test Google Ads copy. Use when asked to write ad copy, headlines, descriptions, create ad variants, test ad messaging, improve CTR, or generate RSA (Responsive Search Ad) components. Trigger on "ad copy", "write ads", "headlines", "descriptions", "RSA", "responsive search ad", "ad text", "ad creative", "improve CTR", "ad A/B test", "ad variants", "write me an ad", "ad variation experiment", or when the user wants to improve click-through rate on existing ads.
google-ads-landingScore and diagnose Google Ads landing pages. Use when asked to audit a landing page, check landing page quality, diagnose high-CTR but low-conversion-rate ad groups, improve Quality Score's Landing Page Experience component, or compare an ad group's messaging against its landing page. Trigger on "landing page audit", "landing page score", "landing page quality", "why is my conversion rate low", "LPX", "landing page experience", "ad to page match", or when `/google-ads-audit` surfaces a high-CTR / low-CVR ad group.