| name | semrush-competitor-research |
| description | Analyze SEO competitors, organic keywords, top pages, subdomains, and keyword gaps with the semrush CLI. Use when the user asks for competitor research, organic competitor discovery, content gaps, domain comparison, missing or untapped keywords, page-level SEO opportunities, or a competitive SEO audit using Semrush CLI data. |
Semrush Competitor Research
Use semrush domain ... commands to understand who competes in organic search, what they rank for, and where a target domain has missing or untapped opportunities.
Prerequisites
Use semrush-cli-setup if install, auth, database, or API-unit state is unknown. For this skill, prefer:
semrush account auth status --output json --quiet
semrush domain overview example.com --database us --dry-run --output json --quiet
Workflow
- Identify the target domain, known competitors, market database, and business goal.
- Run a domain overview for the target and each competitor.
- Discover organic competitors when the user has not supplied enough.
- Pull top organic keywords, pages, and subdomains.
- Run
domain compare for missing, untapped, shared, or exclusive keywords.
- Prioritize gaps by relevance, position opportunity, traffic potential, and content effort.
Core Commands
Domain baseline:
semrush domain overview example.com --database us --output json --quiet
semrush domain overview example.com --all-databases --output json --quiet
semrush domain overview example.com --history --database us --output json --quiet
Organic competitors and rankings:
semrush domain competitors organic example.com --database us --limit 25 --output json --quiet
semrush domain organic example.com --database us --limit 100 --sort "traffic desc" --output json --quiet
semrush domain organic example.com --database us --positions new --limit 100 --output json --quiet
semrush domain organic example.com --database us --positions lost --limit 100 --output json --quiet
Top content surfaces:
semrush domain pages example.com --database us --limit 100 --output json --quiet
semrush domain subdomains example.com --database us --limit 100 --output json --quiet
Keyword gap modes:
semrush domain compare example.com competitor.com --database us --type organic --mode missing --limit 100 --output json --quiet
semrush domain compare example.com competitor.com --database us --type organic --mode untapped --limit 100 --output json --quiet
semrush domain compare example.com competitor.com --database us --type organic --mode shared --limit 100 --output json --quiet
semrush domain compare example.com competitor.com --database us --type organic --mode exclusive --limit 100 --output json --quiet
Accepted compare modes are shared, all, unique, untapped, missing, and exclusive.
Filters
Use filters to control result size and focus:
semrush domain organic example.com --database us --filter "position<=20" --filter "traffic>0" --sort "position asc" --limit 250 --output json --quiet
When filters fail, rerun without filters to confirm the base report works, then add one filter at a time.
Output Format
Return:
- Competitive summary: target, competitors, database, commands run.
- Market position: visibility, organic keyword count, traffic proxy, and trend if available.
- Keyword gaps: missing, untapped, quick wins, and defend terms.
- Page opportunities: competitor pages or subdomains that explain the gaps.
- Action plan: page to create, page to refresh, internal links to add, and terms to monitor.
For each recommendation, cite the source command and avoid claiming live rankings beyond the Semrush data returned in the current run.
Related Skills
- Use
semrush-keyword-research to expand selected gap terms into clusters.
- Use
semrush-backlink-audit when competitor rankings appear authority-driven.
- Use
semrush-traffic-trends when traffic sources or top pages are more important than keywords.
- Use
semrush-paid-search-intelligence for paid competitor analysis.