Install
openclaw skills install @aaron-he-zhu/competitor-analysisUse when the user asks to "analyze competitors" or "竞品分析"; benchmarks competitor keywords, content, backlinks, AI citations, and traffic share into strengths, weaknesses, and an action plan. Not for a pairwise topic-coverage gap map — use content-gap-analysis. 竞品分析/竞争对手
openclaw skills install @aaron-he-zhu/competitor-analysisAnalyzes competitor SEO and GEO strategies to reveal repeatable wins, weak spots, and market gaps.
Analyze SEO strategy for [competitor URL]
Compare my site [URL] against [competitor 1], [competitor 2], [competitor 3]
Expected output: a prioritized competitor brief plus the standard handoff summary for memory/research/.
memory/hot-cache.md, memory/open-loops.md, and memory/research/.Emit the standard shape from skill-contract.md §Handoff Summary Format.
Optional integrations: ~~SEO tool, ~~analytics, ~~AI monitor. Without tools, ask for competitor URLs, your site metrics, and industry context. See CONNECTORS.md.
Zero-dependency competitor fetch (keyless): python3 "${CLAUDE_PLUGIN_ROOT}/scripts/connectors/firecrawl.py" scrape <competitor-url> returns the rendered page as LLM-ready markdown (JavaScript-heavy pages included), firecrawl.py map <competitor-domain> --limit 500 inventories their URL surface fast, and firecrawl.py search "<brand or topic>" --tbs qdr:m finds their fresh coverage — all on Firecrawl's keyless free tier (~1,000 credits/mo). The connector pre-flights the target's robots.txt locally and refuses on a Disallow per SECURITY.md §Scraping Boundaries. See scripts/connectors/README.md.
Stop and ask — when the competitor set cannot be established:
CLAUDE.md, prior research, or the user's niche → ask the user to name 2-5 competitors, OR offer to infer them from a target keyword via serp-analysis first.Continue silently — do not stop for: which 3-5 of a longer list to deep-dive (pick the closest direct competitors and note the rest); missing your-own-site metrics (benchmark competitors against each other and mark your row N/A); missing optional tool data (label Estimated and proceed).
When a user requests competitor analysis:
Label every metric Measured (tool/export), User-provided, or Estimated (model inference); never present an estimate as measured; if a required metric is unavailable, mark it N/A — do not invent it.
Quality bar: every strength or weakness ties to a labeled metric and a named competitor — a specific ranking or backlink figure for a named domain, not "strong content presence".
Reference: See Analysis Templates for the compact templates used at each step.
See references/example-report.md for a full sample analyzing HubSpot's marketing keyword dominance.
For a pairwise topic-coverage gap map ("content [competitor] has that I don't, sorted by traffic potential"), hand off to content-gap-analysis — that is its dedicated job.
When a competitor invests in video, benchmark their YouTube outliers (views >=2x their channel average) and the title/thumbnail packaging that drives those wins — those patterns show what topics and framing earn reach. See platforms/youtube.md.
Find sites linking to [competitor 1] AND [competitor 2] but not me
What SERP features do competitors win? (Featured snippets, PAA, etc.)
How has [competitor]'s SEO strategy evolved over the past year?
Write path: memory/research/competitor-analysis/YYYY-MM-DD-<topic>.md; promote durable competitor facts and entity candidates to memory/hot-cache.md. See Skill Contract §Save Results Template.
Primary: content-gap-analysis. Also: serp-analysis and offsite-signal-analyzer. If the goal is a head-to-head "us vs them" page, hand the vetted competitor set to page-play-builder.