Search competitor research report
Discover who repeatedly appears across a keyword set before choosing competitors for deeper research. A recurring domain is a search competitor for this sample, not automatically a business competitor.
Install and run the report
Install the CLI once, then run seo start to connect your site and Google data. After setup you can run this report yourself or ask your agent to run it.
Install the SEO CLI globally.
npm i -g seoRun setup after installation.
seo startRun search competitors through the report catalog.
seo reports run serp-competitors --params '{"keywords":["blue widget","red widget","widget prices"],"targetDomain":"example.com","countryCode":"GB","languageCode":"en","limit":25}' --jsonWhat you get from this report
Find domains that repeatedly appear for an explicit keyword set, preserve declared site types, and leave unknown search competitors safely unclassified.
- Best for
- You want to discover search competitors before choosing a small set for deeper research.
- Needs
- Explicit keyword set and country market
- You get
- Find domains that repeatedly appear for an explicit keyword set, preserve declared site types, and leave unknown search competitors safely unclassified.
- Use next
- Ranking pages and patterns
Every report follows the same rules for missing data and outside estimates.See how report data works.
What you need before you run it
The report uses the information below. Optional sources are only used when you ask for them.
Explicit keyword set and country market
Define the limited query set used to find domains that repeatedly appear in the same search market.
Target domain and optional site classifications
Separate the target and user-declared business competitors from publishers, directories, communities, marketplaces, and unknown sites.
Optional multi-domain ranked-keyword exports
Find recurring domains in one to four local provider files without claiming they reproduce a live result page.
Use a different report for these jobs
These jobs need a different report or a manual review.
Use the report with an agent or in code
The command above is enough for most work. These options let an agent, script or application run the same report with explicit input and structured output.
CLI
Use the report catalog when an agent, script or CI job needs predictable JSON instead of the normal terminal output. Check the current input first, then run the report with the validated parameters.
Check the current input before the agent or script runs the report.
seo reports describe serp-competitors --jsonOnce the input is valid, run the report through the report catalog.
seo reports run serp-competitors --params '{"keywords":["blue widget","red widget","widget prices"],"targetDomain":"example.com","countryCode":"GB","languageCode":"en","limit":25}' --jsonMCP
An MCP agent follows the same two-step flow. It inspects the current schema, fills the required fields and only then runs the report.
Ask the MCP server for the current report input.
{
"id": "serp-competitors"
}Run the report after the agent has checked and filled the input.
{
"id": "serp-competitors",
"params": {
"keywords": [
"blue widget",
"red widget",
"widget prices"
],
"targetDomain": "example.com",
"countryCode": "GB",
"languageCode": "en",
"limit": 25
}
}TypeScript
Install the package in a Node 22 project when your application needs to run the report directly. The result includes the same evidence, warnings and limits returned through the CLI and MCP server.
Add the SEO package to your project.
npm install seoRun the report from your TypeScript application.
import { executeReport } from 'seo/mcp'
const result = await executeReport(
'serp-competitors',
{
"keywords": [
"blue widget",
"red widget",
"widget prices"
],
"targetDomain": "example.com",
"countryCode": "GB",
"languageCode": "en",
"limit": 25
},
)
console.log(result)What to do next
Review every unknown site type before choosing competitors for deeper research. Keep publishers, directories, communities and marketplaces distinct, then compare a small relevant set instead of treating result overlap as business equivalence.
- 01Classify unknown domains as business, publisher, directory, community, or marketplace.
- 02Run ranking pages for relevant domains.
- 03Run competitor keyword gap only after excluding irrelevant site types.
Related reports
See which pages carry a domain's estimated search footprint, which URL patterns repeat and how matching pages on your own site perform in Search Console.
Compare competitor keywords with Search Console themes, current rankings and repeated page patterns. Exclude irrelevant terms and evidence of existing coverage.
Inspect exact organic ranks, domains, URLs, titles, snippets and result features for one keyword, location, language and device-specific search snapshot.
Sources used by this report
These primary sources define the provider data or search controls used by the result.