seo-competitor-pages
Skill201 starsChanged 5 months agoMITView on GitHub
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".
29 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- alpit-patel/seo-aeo-geo-kittheir own version, first seen Nov 8, 2026
- zhtyyx/codex-seotheir own version, first seen Nov 1, 2026
- joaoguirunas/team-ostheir own version, first seen Oct 21, 2026
- susantedit/claude-skillstheir own version, first seen Oct 20, 2026
- webdevarif/claude-skillstheir own version, first seen Oct 20, 2026
- ZachArticulateV/designer-pro-and-seotheir own version, first seen Oct 19, 2026
Used with
Projects with it also use seo-agentic, seo-image-gen and 6 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
AgriciDanielSkillseo-agentic
Audit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF treatment of agent traffic, llms.txt, Markdown delivery, ai-catalog.json, /.well-known discovery files, and WebMCP tools. Use when the user asks whether AI agents can use or browse the site, or about llms.txt or WebMCP. Exclude AI citability and brand signals (seo-geo) and commerce protocol depth (seo-ecommerce).
Also in 5 projects that use this
timruebenachSkillseo-image-gen
AI image generation for SEO assets: OG/social preview images, blog hero images, schema images, product photography, infographics. Powered by Gemini via nanobanana-mcp. Requires banana extension installed. Use when user says \"generate image\", \"OG image\", \"social preview\", \"hero image\", \"blog image\", \"product photo\", \"infographic\", \"seo image\", \"create visual\", \"image-gen\", \"favicon\", \"schema image\", \"pinterest pin\", \"generate visual\", \"banner\", or \"thumbnail\".
Also in 16 projects that use this
timruebenachSkillseo-cluster
SERP-based semantic topic clustering for content architecture planning. Groups keywords by actual Google SERP overlap (not text similarity), designs hub-and-spoke content clusters with internal link matrices, and generates interactive visualizations. Optionally executes content creation if claude-blog is installed. Use when user says "topic cluster", "content cluster", "semantic clustering", "pillar page", "hub and spoke", "content architecture", "keyword grouping", or "cluster plan".
Also in 15 projects that use this
mangollcSkillseo-backlinks
Backlink analysis and link building strategy: competitor backlink profiling, outreach plan generation, monthly SEO reporting framework, toxic link identification, link opportunity scoring, and unlinked mention discovery.
Also in 16 projects that use this
- +4 more from timruebenach
Other versions29 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- amirjahfar1/automate-seo-with-claude★ 291% same
Wrote their own version · 28
- AgriciDaniel/claude-seo★ 20ksame name
- zhtyyx/codex-seo★ 152same name
- coopersimson96/ai-content-system★ 17same name
- ZachArticulateV/designer-pro-and-seo★ 10same name
- joaoguirunas/team-os★ 6same name
- oegeyilmaz9/seo-aeo-geo-ultimate★ 6same name
- 01clauding/claude-seo-skill★ 4same name
- avalonreset/legends-seo-dungeon★ 4same name
- megastep/codex-skills★ 4same name
- realwigu/claude-skills★ 4same name
18 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository31 other files it gives its agents.
- ai-search-gaps-to-social-campaignSkill
- client-onboarding-proposalSkill
- local-gmb-visibilitySkill
- seo-adsSkill
- seo-agency-landing-pageSkill
- seo-ai-search-share-of-voiceSkill
- seo-ai-social-reportSkill
- seo-apiSkill
- seo-backlink-gapSkill
- seo-backlinks-profileSkill
- seo-competitor-gap-analysisSkill
- seo-content-auditSkill
- seo-content-briefSkill
- seo-driftSkill
- seo-firecrawlSkill
- seo-gaps-to-social-campaignSkill
- seo-geoSkill
- seo-googleSkill
- seo-hreflangSkill
- seo-imagesSkill
- seo-keyword-clusterSkill
- seo-keyword-nicheSkill
- seo-localSkill
- seo-pageSkill
- seo-planSkill
- seo-schemaSkill
- seo-sitemapSkill
- seo-subdomainSkill
- seo-sxoSkill
- seo-technical-auditSkill
- site-audit-to-social-distributionSkill
The file
We split this skill into the rules it gives an agent
6 rules. 0 are common, 2 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 28 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 28
If page type unclear, ask the user.
- Very specific: line 54
When user passes --bulk-scrape <urls> or supplies a list of competitor URLs to compare directly (beyond the SERP top-3), Firecrawl-scrape …
- Very specific: line 79
Create a folder seo-competitor-pages-{target-slug}-{YYYYMMDD}/ with:
- Very specific: line 162
Schema: use Product for both products in a vs page, plus BreadcrumbList, plus FAQPage if the FAQ section is real Q&A (not a manufactured …
- Very specific: line 165
Run seo-page on the published page after 30 days to track ranking trajectory.
- Distinctive: line 168
Don't auto-publish. Hand the draft to a writer/PM for fact-checking and brand-voice tuning.
“Common” is measured: kept by at least 6 in 10 of the 28 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Example output: 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
- "X vs Y" head-to-head — direct comparison between two products/services. Target keyword:
[Product A] vs [Product B]. - "Alternatives to X" — listicle-format page positioning the user's product as one of N alternatives to a category leader. Target keyword:
[Competitor] alternativesoralternatives to [Competitor]. - "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
WebFetchtool 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
- 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.
- Pull competitor context
DATA_getDomainCompetitors- For the user's domain, list top organic competitors by
common_keywordsoverlap. - Validate that the user's named competitor is in the list (or close).
- For the user's domain, list top organic competitors by
- 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.
- Pull comparative SERPs
DATA_getSerpResultsandDATA_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).
- For "X vs Y" / "alternatives to X" / "best X for Y" target keyword(s):
- 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:cardfrommetadata.<title>and meta description lengths from real HTML.
- Schema types from
- If Firecrawl unavailable: WebFetch portion runs unchanged. The "schema types" line in
evidence/04-existing-pages-teardown.mdreads(skipped — Firecrawl required for JSON-LD). Schema generation in step 8 falls back to a defaultProduct + BreadcrumbList + FAQPagetemplate 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@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. - 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.
- Pull keyword comparison data
DATA_getDomainKeywordsComparison(if available for the brands)- Side-by-side keyword overlap.
- 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.
- 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 (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>`.Tips
- Balance is conversion. Pages that pretend the user's product is always better lose trust and rankings. Honest assessments outperform partisan ones.
- Respect rate limit. Step 5 (fetching top 3 SERP winners) takes 3 WebFetch calls + earlier MCP queries.
- Cost: ~15–25 SE Ranking credits typical, +3 Firecrawl credits for the schema/og benchmark in step 5, +1 Firecrawl credit per URL in step 5b (opt-in only). Pass
--no-firecrawlto skip both Firecrawl steps. - Schema: use
Productfor both products in a vs page, plusBreadcrumbList, plusFAQPageif the FAQ section is real Q&A (not a manufactured one). - For "alternatives to X" pages, position the user's product as one of N (typically 5–10), not as #1. Numbered listicles convert better than self-promotional alternatives pages.
- For "best X for Y" pages, segment by use case explicitly — "best for solo developers" vs "best for enterprise teams" — this lets you win multiple long-tail variants.
- Run
seo-pageon the published page after 30 days to track ranking trajectory. - Pair with
seo-content-auditto E-E-A-T-check the draft before publishing. - The PAA-derived FAQ in step 4 is gold — those are the questions users are actually searching, and answering them in-page raises citation-readiness for AIO.
- Don't auto-publish. Hand the draft to a writer/PM for fact-checking and brand-voice tuning.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

