Skip to content
Marketing
Skill

/seo-competitor-pages

Generate SEO-optimized "X vs Y" comparison and "alternatives to X" landing pages targeting comparative-intent keywords. Pulls competitor data, comparative-intent SERPs, and existing comparison pages to produce a balanced, structured page draft with feature matrix, schema, and

From plugin
seo-skills
20632 skills1 MCP

Claude Code

$ npx -y skills add seranking/seo-skills --skill seo-competitor-pages --agent claude-code

SKILL.md

seo-competitor-pages.SKILL.md
name: seo-competitor-pages
description: Generate SEO-optimized "X vs Y" comparison and "alternatives to X" landing pages targeting comparative-intent keywords. Pulls competitor data, comparative-intent SERPs, and existing comparison pages to produce a balanced, structured page draft with feature matrix, schema, and conversion blocks. Distinct from `seo-agency-landing-page` (top-of-funnel demand-gen). Use when the user asks for "comparison page", "vs page", "alternatives page", "X vs Y", "alternative to X", or "competitor comparison page".

> Example output: [examples/seo-competitor-pages-linear-vs-jira-20260514/COMPARISON.md](../../examples/seo-competitor-pages-linear-vs-jira-20260514/COMPARISON.md)

Competitor Comparison & Alternatives Pages

Produce conversion-tuned landing pages targeting comparative-intent keywords ("X vs Y", "alternatives to X", "best X for Y"). The deliverable is a paste-ready page draft with feature matrix, balanced verdict, schema markup, and a CTA flow that converts comparison-stage traffic.

Page types this skill produces

1. **"X vs Y" head-to-head** — direct comparison between two products/services. Target keyword: `[Product A] vs [Product B]`. 2. **"Alternatives to X"** — listicle-format page positioning the user's product as one of N alternatives to a category leader. Target keyword: `[Competitor] alternatives` or `alternatives to [Competitor]`. 3. **"Best X for Y"** — segmented best-of page targeting a use case or audience. Target keyword: `best [category] for [use case]`.

Prerequisites

  • SE Ranking MCP server connected.
  • Claude's `WebFetch` tool available.
  • User provides: (a) the user's brand/product (the page's hero), (b) target competitor(s) — at least one, optionally up to 5 for an alternatives page, (c) page type (auto-detected from the keyword if user doesn't specify), (d) target country (default `us`).

Process

1. **Validate & determine page type**

  • From the user's input, detect: vs / alternatives / best-of.
  • If page type unclear, ask the user. Don't guess silently.

2. **Pull competitor context** `DATA_getDomainCompetitors`

  • For the user's domain, list top organic competitors by `common_keywords` overlap.
  • Validate that the user's named competitor is in the list (or close).

3. **Pull keyword data per brand** `DATA_getDomainKeywords`

  • For the user's domain and each named competitor, pull top 100 organic keywords.
  • Identify: keywords each brand owns exclusively, keywords both rank for, gaps.

4. **Pull comparative SERPs** `DATA_getSerpResults` and `DATA_getKeywordQuestions`

  • For "X vs Y" / "alternatives to X" / "best X for Y" target keyword(s):
  • Top 10 organic results — who else ranks for this comparative keyword?
  • PAA questions (these become FAQ section content).
  • Featured snippet (if present, capture the answer pattern).

5. **Fetch existing comparison pages** `WebFetch` (always) + `mcp__firecrawl-mcp__firecrawl_scrape` (when available)

  • **WebFetch first** (free): pull the top 3 SERP winners' markdown. Extract H2 outline, feature-matrix dimensions, verdict pattern, CTA placement.
  • **Firecrawl second** (3 Firecrawl credits — 1 per winner) — recovers what WebFetch markdown can't show:
  • Schema types from `<script type="application/ld+json">` blocks (`Product` ×N, `BreadcrumbList`, `FAQPage`, `Review`, `AggregateRating`).
  • `og:title` / `og:description` / `og:image` / `twitter:card` from `metadata`.
  • `<title>` and meta description lengths from real HTML.
  • **If Firecrawl unavailable:** WebFetch portion runs unchanged. The "schema types" line in `evidence/04-existing-pages-teardown.md` reads `(skipped — Firecrawl required for JSON-LD)`. Schema generation in step 8 falls back to a default `Product + BreadcrumbList + FAQPage` template instead of mirroring whatever the winners use.
  • This anchors the draft in observed-rewarded-pattern.

5b. **Bulk competitor scrape** `mcp__firecrawl-mcp__firecrawl_scrape` (optional, opt-in)

  • When user passes `--bulk-scrape <urls>` or supplies a list of competitor URLs to compare directly (beyond the SERP top-3), Firecrawl-scrape each URL.
  • For each URL, extract: `<title>`, `og:*`, `twitter:*`, JSON-LD `@type`s, hero-image presence, pricing-block detection (regex on prose for `$N/mo`, `€N/mo`, etc.), CTA count, comparison-table presence, free-tier-mention boolean.
  • Output `competitor-elements.csv` — one row per competitor URL × these signals.
  • Cost: 1 Firecrawl credit per URL. Surface estimate before running; refuse >50 URLs without `--confirm-cost`.

6. **Pull keyword comparison data** `DATA_getDomainKeywordsComparison` (if available for the brands)

  • Side-by-side keyword overlap.

7. **Build feature matrix**

  • Dimensions inferred from the top SERP winners (e.g., "Pricing", "Free tier", "Integrations", "Support tiers", "Best for").
  • Cells: ✓ / ✗ / partial / "TBD — confirm with PM" placeholders for fields you can't auto-infer.
  • Where SE Ranking data informs a cell (e.g., "ranks for X enterprise keywords"), pull the number.

8. **Synthesise** `COMPARISON.md`

  • Hero (target keyword in H1, balanced positioning).
  • TL;DR / verdict box in first 200 words.
  • Feature matrix.
  • Section per major dimension (each H2 = one dimension).
  • PAA-derived FAQ (top 3–5 questions from step 4).
  • Verdict / recommendation.
  • CTA flow.
  • Schema-ready JSON-LD: `Product` (×N) + `BreadcrumbList` + `FAQPage` (if real Q&A).

Output format

Create a folder `seo-competitor-pages-{target-slug}-{YYYYMMDD}/` with:

seo-competitor-pages-{target-slug}-{YYYYMMDD}/
├── COMPARISON.md                     (the page draft — primary deliverable)
├── 05-feature-matrix.md              (inferred dimensions × brands — load-bearing reference for PMs/writers)
├── schema.jsonld                     (paste-ready Product + Breadcrumb + FAQ — load-bearing artefact for engineering)
├── 05b-competitor-elements.csv
Read more
@seranking
Ships withseo-skills

26 free, open-source Claude SEO skills for Claude Code, Claude Desktop, Cursor and any AI agent that supports Agent Skills and MCP.

20632 skills1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
206
Star history of seranking/seo-skills on GitHub, a chart by star-history.com

Other skills on seo-skills.

seo-ads

seo-ads

Paid-search competitive landscape for a domain or keyword. Pulls SE Ranking's PPC data — domain ad keyword footprint, ad copy…

More skills from other plugins.

seo

seo

Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…

@agricidaniel@agricidanielInstall Skill
brag

brag

Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…

brag2w21k
@latent-spaces@latent-spacesInstall Skill
geo-audit

geo-audit

Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…

Questions about seo-competitor-pages.

Which coding agents can use seo-competitor-pages?
seo-competitor-pages installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.