Help us improve
Share bugs, ideas, or general feedback.
From seo-skills
Generates SEO-optimized comparison and alternatives landing pages targeting comparative-intent keywords, with feature matrix, schema, and conversion blocks.
npx claudepluginhub seranking/seo-skills --plugin seo-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/seo-skills:seo-competitor-pagesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> Example output: [examples/seo-competitor-pages-linear-vs-jira-20260514/COMPARISON.md](../../examples/seo-competitor-pages-linear-vs-jira-20260514/COMPARISON.md)
Generate SEO-optimized competitor comparison and alternatives pages with X vs Y layouts, feature matrices, schema markup, and conversion optimization. Activates on 'comparison page', 'X vs Y', or 'alternatives' queries.
Generates SEO-optimized competitor comparison and alternatives pages with X vs Y layouts, feature matrices, schema markup, and conversion optimization. Useful for 'comparison page', 'X vs Y', or 'alternatives to X' requests.
Generates SEO-optimized competitor comparison and alternatives pages including X vs Y layouts, feature matrices, schema markup, and conversion optimization.
Share bugs, ideas, or general feedback.
Example output: examples/seo-competitor-pages-linear-vs-jira-20260514/COMPARISON.md
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.
[Product A] vs [Product B].[Competitor] alternatives or alternatives to [Competitor].best [category] for [use case].WebFetch tool available.us).Validate & determine page type
Pull competitor context DATA_getDomainCompetitors
common_keywords overlap.Pull keyword data per brand DATA_getDomainKeywords
Pull comparative SERPs DATA_getSerpResults and DATA_getKeywordQuestions
Fetch existing comparison pages WebFetch (always) + mcp__firecrawl-mcp__firecrawl_scrape (when available)
<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.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.5b. Bulk competitor scrape mcp__firecrawl-mcp__firecrawl_scrape (optional, opt-in)
--bulk-scrape <urls> or supplies a list of competitor URLs to compare directly (beyond the SERP top-3), Firecrawl-scrape each URL.<title>, og:*, twitter:*, JSON-LD @types, hero-image presence, pricing-block detection (regex on prose for $N/mo, €N/mo, etc.), CTA count, comparison-table presence, free-tier-mention boolean.competitor-elements.csv — one row per competitor URL × these signals.--confirm-cost.Pull keyword comparison data DATA_getDomainKeywordsComparison (if available for the brands)
Build feature matrix
Synthesise COMPARISON.md
Product (×N) + BreadcrumbList + FAQPage (if real Q&A).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 (only if --bulk-scrape ran: competitor URL × on-page-element grid)
└── evidence/
├── 01-competitor-context.md (DATA_getDomainCompetitors — raw step output)
├── 02-keyword-overlap.md (DATA_getDomainKeywords for each brand — raw step output)
├── 03-comparative-serp.md (top 10 + PAA for the target keyword — raw step output)
└── 04-existing-pages-teardown.md (top-3 SERP winners' structure + schema/og — Firecrawl-recovered)
Top-level: COMPARISON.md + 05-feature-matrix.md + schema.jsonld. The 01–04 step files preserve raw API/scrape outputs in evidence/. 05b-competitor-elements.csv only appears when --bulk-scrape was passed.
COMPARISON.md for an "X vs Y" page follows this shape:
# {User's Brand} vs {Competitor}: 2026 Comparison
> Updated {YYYY-MM-DD}. Compare {Brand A} and {Brand B} on pricing, features, integrations, and best-fit use case.
## TL;DR
{One paragraph balanced verdict — when to choose A, when to choose B}
## At a glance
| Dimension | {Brand A} | {Brand B} |
|---|---|---|
| Starting price | {$X/mo} | {$Y/mo} |
| Free tier | {✓/✗} | {✓/✗} |
| Best for | {use case} | {use case} |
| Integrations | {n} | {n} |
| Support | {tier} | {tier} |
| ... | | |
## {Dimension 1 header — e.g., Pricing}
{Side-by-side detail, balanced. Avoid hyperbole.}
## {Dimension 2 header — e.g., Features}
{...}
## {Dimension 3 header — e.g., Integrations}
{...}
## {Dimension 4 header — e.g., Support}
{...}
## When to choose {Brand A}
- {scenario 1}
- {scenario 2}
- {scenario 3}
## When to choose {Brand B}
- {scenario 1}
- {scenario 2}
- {scenario 3}
## FAQ
**{PAA question 1}**
{Answer}
**{PAA question 2}**
{Answer}
**{PAA question 3}**
{Answer}
## Get started
{Brand A} CTA — {link}
{Brand B} CTA — {link if balanced; otherwise drop}
## Schema
See `schema.jsonld` — paste into `<head>`.
--no-firecrawl to skip both Firecrawl steps.Product for both products in a vs page, plus BreadcrumbList, plus FAQPage if the FAQ section is real Q&A (not a manufactured one).seo-page on the published page after 30 days to track ranking trajectory.seo-content-audit to E-E-A-T-check the draft before publishing.