Competitor SERP Domain Share Analyzer
Pricing
from $11.50 / 1,000 query snapshot analyzeds
Competitor SERP Domain Share Analyzer
Aggregate SERP result snapshots into competitor domain share, rank distribution, result-type ownership, and query coverage reports
Pricing
from $11.50 / 1,000 query snapshot analyzeds
Rating
0.0
(0)
Developer
junipr
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 days ago
Last modified
Categories
Share
Turn query-linked search result evidence into a domain visibility table. The actor groups accepted results by domain, measures query coverage and rank distribution, distinguishes owned and named competitor domains, and writes evidence-backed reports for SEO and competitive research.
What you get
Each dataset row represents one observed domain and includes:
- number of distinct queries where the domain appeared;
- number of ranking URLs accepted for that domain;
- average position plus top-three and top-ten counts;
- count of non-organic result features owned by the domain;
owned,competitor, orotherclassification;- optional intent grouping derived from supplied query labels;
- share of all accepted result records;
- source URL, scan time, issue code, evidence, and a recommended next step.
The actor also writes a Markdown summary, CSV export, issue JSON, evidence JSON, and run metadata to the default key-value store when includeReport is enabled.
Input choices
Use serpResults for structured evidence. Each item may be a result record or a snapshot object with a query and results array. Result records can contain position, url, domain, resultType, and sourceUrl.
Use serpHtmlInputs or htmlInputs for captured HTML. Associate each object with a query; the parser accepts explicitly marked result cards and visible result links. You may also supply explicit public startUrls. Network requests are limited to the URLs you provide, validated against allowedDomains, and never expanded by following discovered links.
Important controls:
queries: restrict analysis to selected queries.ownedDomains: classify domains you control.competitorDomains: classify named competitors separately from other domains.groupByIntent: enable grouping from supplied query context.minOccurrences: omit domains below a stated evidence count.maxQueries,maxSnapshots,maxResultsPerQuery,maxDomains: bound accepted evidence and output.includeEvidence: include or suppress evidence excerpts.includeRawSnapshots: opt in to capped raw HTML storage.maxChargeUsd: stop before a paid event would exceed your run budget.
Example input
{"serpResults": [{"query": "workflow software","sourceUrl": "https://example.com/serp/workflow-software","results": [{ "position": 1, "url": "https://competitor.example/workflows", "resultType": "organic" },{ "position": 2, "url": "https://junipr.io/workflows", "resultType": "featured_snippet" }]},{"query": "workflow automation","sourceUrl": "https://example.com/serp/workflow-automation","results": [{ "position": 1, "url": "https://competitor.example/automation", "resultType": "organic" }]}],"queries": ["workflow software", "workflow automation"],"ownedDomains": ["junipr.io"],"competitorDomains": ["competitor.example"],"groupByIntent": true,"minOccurrences": 1,"maxQueries": 10,"maxSnapshots": 10,"maxResultsPerQuery": 20,"maxDomains": 50,"includeReport": true,"maxChargeUsd": 35}
Example output
{"recordType": "competitor_serp_domain_share_analyzer","recordName": "competitor.example","issueCode": "competitor_serp_domain_share_analyzer_competitor_share","severity": "medium","domain": "competitor.example","queryCount": 2,"rankingUrlCount": 2,"avgPosition": 1,"topThreeCount": 2,"topTenCount": 2,"featureOwnershipCount": 0,"ownedVsCompetitor": "competitor","intentGroup": "mixed","visibilityShare": 66.667,"sourceUrl": "https://example.com/serp/workflow-software","scannedAt": "2026-07-10T12:00:00.000Z"}
Evidence rules
The actor reports only accepted structured records or visible result cards. It does not invent rankings, domains, query volume, or market share from query text. Missing evidence produces a nonempty diagnostic row instead of a fabricated competitor table. Access-denied or challenge content is identified as blocked evidence and is not treated as a SERP.
For reproducible comparisons, capture the same query set, result depth, locale, device, and collection method on every run. The actor measures share within the supplied evidence; it is not a population-level traffic estimate.
Pay-per-event pricing
Platform usage pass-through is off. Charges occur before paid output is written, and maxChargeUsd is enforced as a hard ceiling.
| Event | Price |
|---|---|
actor-start | $0.0350 |
query-snapshot-analyzed | $0.0115 |
domain-result-analyzed | $0.0115 |
competitor-share-signal-emitted | $0.0115 |
executive-report-generated | $0.4000 |
The default maximum charge is $35. Set a lower value for tightly bounded runs. Setting it to zero prevents paid processing and output.
Practical uses
- compare owned visibility with named competitors across a stable keyword set;
- identify domains repeatedly occupying top-three positions;
- inventory URLs and result features associated with each competitor;
- segment competitor visibility by supplied intent group;
- export a dated domain-share table for recurring SEO reporting.
Limits
HTML layouts vary, so structured serpResults are the most stable input. The actor does not perform broad web discovery, estimate search demand, or infer results that are absent from the evidence. Raw HTML is stored only when requested, and source fetching rejects non-public or non-HTTP targets.
