competitor-analysis
every-app/open-seo
Analyze a competitor's organic footprint, keywords, content themes, backlinks, and ranking gaps.
What is competitor-analysis?
Deep-dive analysis of one competitor's SEO strategy, including their ranked keywords, content themes, backlink profile, and vulnerabilities. Use this when you need to understand what a specific competitor is doing well, where they're weak, and which keywords or content angles you could win.
- Retrieves competitor domain overview (traffic, keyword count, referring domains)
- Extracts ranked keywords with intent, search volume, CPC, and SERP type
- Identifies keyword themes (product, alternatives, educational, local, branded)
- Analyzes backlink and referring-domain profile
- Compares your domain performance to the competitor when Search Console is connected
- Detects content gaps and ranking vulnerabilities
How to install competitor-analysis
npx skills add https://github.com/every-app/open-seo --skill competitor-analysis- OpenSEO project set up with at least one competitor domain saved
- Competitor domain name
- Optional: your own domain for comparison
- Optional: location, language, or topic filters for targeted analysis
How to use competitor-analysis
- 1.Provide the competitor domain and your domain (if comparing)
- 2.The skill calls get_domain_overview to fetch the competitor's organic footprint
- 3.Ranked keywords are extracted and grouped into themes (product, alternatives, educational, local, branded)
- 4.Backlink profile is analyzed to understand authority sources
- 5.If comparing to your domain, Search Console data is used for real baseline metrics
- 6.SERP results are checked for important shared keywords
- 7.A report is generated showing vulnerabilities, keyword themes, content patterns, and actionable next steps
Use cases
- Identify which keywords a competitor ranks for and where they're vulnerable to outrank
- Discover content themes and page types that drive the competitor's organic traffic
- Compare your own keyword rankings and traffic to a named competitor
- Find gaps in a competitor's coverage that represent ranking opportunities for your site
- Understand a competitor's backlink strategy and authority sources
- SEO specialists and content strategists
- Product managers evaluating competitive positioning
- Marketing teams planning content roadmaps
- Agencies auditing competitor strategies for clients
competitor-analysis FAQ
The skill will run a minimal inline setup: save the competitor you're analyzing, ask you to confirm others (or find them via SERP), and continue the analysis. Use seo-project-setup later for a full competitive landscape.
Yes. Provide your domain, and the skill will fetch your organic footprint and ranked keywords. If Search Console is connected, it will use real click/impression/CTR data instead of estimates.
Data comes from third-party SEO tools integrated into OpenSEO. The skill checks the research log and reuses results from the last 30 days to avoid re-spending credits.
The skill includes local SEO tools: search_local_businesses, get_local_serp_results, and get_google_business_questions to analyze Maps visibility, nearby competitors, and Q&A strength.
No. The skill recommends stronger angles, better answers to the same intent, and gaps to fill—not copying. It separates evidence (keywords, backlinks) from inference (content patterns).
Full instructions (SKILL.md)
Source of truth, from every-app/open-seo.
name: competitor-analysis description: "Analyze one competitor's organic footprint, ranking keywords, content themes, backlinks, and gaps."
OpenSEO Competitor Analysis
Goal
Analyze one competitor deeply enough to decide what to learn from, avoid, counter-position against, or outrank.
Use this for a named competitor. For identifying the market leaders first, use competitive-landscape.
Required inputs
projectId- Competitor domain
- User's domain when comparison is requested
- Optional topic/category/location/language
Project context
The project-context tools are free and shared with the app and other agents.
- Call
get_project_contextfirst and ground the analysis in it — the saved competitors say whether this domain is already known and what was concluded about it before. - This skill needs competitors. If none are saved, run a minimal inline setup: save the competitor being analyzed, and ask the user (or infer from
find_serp_competitorsand confirm) whether there are others, write them back withupdate_project_context(addCompetitors), then continue the analysis. Never front-load the full interview; suggestseo-project-setupat the end for the rest. - Before spending credits, check the research log. If the same research ran within the last 30 days, reuse that result and say so instead of re-buying it.
- On finish, write back what is durable with
update_project_context— anaddCompetitorsupsert for this domain with a short note on its strengths and where it is vulnerable — and append a research log entry:{ appendResearchLog: { summary: "Competitor analysis: <domain>. Verdict: <conclusion>" } }.
Deliver as a report
Deliver through the seo-report skill, saving with skill: "competitor-analysis". If that skill is not available, say so and stop before writing HTML.
OpenSEO MCP tools
get_domain_overview: baseline organic traffic and keyword count.get_search_console_performance: when comparing to the user's own domain and Search Console is connected, use it as the first-party baseline (real clicks/impressions/CTR/position) instead of estimating the user's own performance from third-party data.get_ranked_keywords: exact keyword, URL, rank, intent, traffic, CPC, and SERP-type rows for the competitor domain or page.get_backlinks_overview: backlink/referring-domain profile.find_serp_competitors: validate whether the named competitor is a real search competitor across the target keyword set.search_local_businesses,get_local_serp_results, andget_google_business_questions: use for local SEO competitors when Maps/local-pack visibility, nearby businesses, categories, or Google Q&A matter.get_serp_results: validate direct head-to-head SERPs for important keywords.research_keywords: expand gaps or category terms when needed.
Workflow
- Call
get_domain_overviewfor the competitor, passing provided location/language when supported. - If comparing to the user, call
get_domain_overviewfor the user's domain too — and if Search Console is connected,get_search_console_performancefor the user's real baseline. - Call
get_ranked_keywordsfor the competitor. Use filters likemaxRank,minSearchVolume,excludeBrandTerms, andresultTypesto keep rows relevant. - If comparing to the user, call
get_ranked_keywordsfor the user's domain/page too, or useget_serp_resultsfor the shared terms when a lighter check is enough. - For local SEO, use
search_local_businessesandget_local_serp_resultsaround the relevant business location(s) before drawing local-pack conclusions. Addget_google_business_questionsonly when Q&A evidence matters. - Use
find_serp_competitorswhen the competitor was supplied by the user but its search overlap is unclear. - Group competitor keywords into themes:
- Product/category terms
- Alternatives/comparisons
- Templates/tools/calculators
- Educational guides
- Branded demand
- Local/neighborhood terms when relevant
- Call
get_backlinks_overviewfor the competitor, especially if authority appears to explain rankings. Continue without backlink evidence if it is unavailable. - Use
get_serp_resultsfor important shared or target keywords to compare positioning, passing provided location/language when supported. - Produce an actionable plan:
- What they are doing well
- Where they are vulnerable
- Which pages/keywords to pursue
- What to avoid copying
Output format
h1: the competitor domain.
If a report template applies (see seo-report), its sections and tone replace this list.
Sections in this order:
- Snapshot — one or two opening sentences, then a table of the competitor's organic footprint (traffic estimate, keyword count, referring domains). Add the user's domain as a second row when comparing.
- The biggest lesson — one finding.
- Where they are vulnerable — one finding per opening, ordered by how winnable it is.
- Keyword themes — a table of theme, example keywords, volume, and whether the user competes there. A bar chart when a few themes dominate the footprint.
- Content patterns and authority — prose, with a note for anything inferred from keyword rows rather than seen on a page.
- What to do next — an ordered list, shortest useful.
- How this report was made — opens with the skill link line from
seo-report, pointing athttps://openseo.so/docs/skills/competitor-analysis("OpenSEO Competitor Analysis skill"), then which tools reported what, and what you checked yourself.
Guardrails
- Do not treat all competitor keywords as desirable. Filter for business fit.
- Separate evidence from inference.
- Do not infer competitor page/content-type patterns from keyword rows alone; use SERP or web evidence for page-level claims.
- For local SEO, do not infer Maps/local-pack strength from national organic domain metrics alone; use local business and local SERP tools when the location is known or reasonably discoverable.
- Do not recommend copying content; recommend a stronger angle or better answer to the same intent.
- If the user's domain is unavailable, frame the analysis as competitor-only.
Related skills
More from every-app/open-seo and the wider catalog.

deslop
Agent skill from every-app/open-seo.

keyword-clustering
Cluster keywords by intent and map them to existing or proposed pages for SEO strategy.

keyword-research
Discover high-opportunity keywords, evaluate metrics and SERPs, and prioritize targets for SEO content.

link-prospecting
Find link prospects and draft personalized outreach from SERPs and backlink signals.

local-seo
Audit Google Business Profiles, benchmark against local competitors, and map visibility across your service area.

maintain-greptile-rules
Agent skill from every-app/open-seo.