compare_competitors
Compare a domain with its competitors on Google organic search — organic SERP counts, position bands, estimated monthly organic traffic, and the…
Cost: 90 credits.
compare_competitors puts a domain side by side with its rivals on Google organic search — how many organic result pages each one appears in, where those appearances sit, and what that traffic is worth — powered by DataForSEO Labs. It works on any public domain, so it reads your own site or a competitor's the same way. It is synchronous: the table comes back immediately, with no background job to poll.
What it does
Name the site being compared in one of two ways — pass a target domain, or pass the project_id of one of your own projects and the domain is taken from it. Exactly one of the two: passing both is rejected rather than resolved by precedence, because the two can name different sites and guessing would bill you for a comparison of the one you did not mean. The competitors are always plain domains — a rival is not one of your projects.
Name up to three competitors yourself — that is the mode that gives a useful comparison. You can instead omit them and let DataForSEO pick the rivals it sees sharing the most organic result pages with your target, which works well for a domain with a broad keyword footprint. On a small or niche site it can pick general-purpose giants such as youtube.com or wikipedia.org: they genuinely share those result pages, but they are not competitors in any sense you can act on. The reply says which of the two happened, and every row is labelled with where it came from — target, found by DataForSEO, or supplied by you — so a discovered rival is never mistaken for one you chose.
Every domain in the table gets the same four lines, all read from DataForSEO's domain rank overview:
- Organic SERPs containing the domain — how many organic result pages the domain appears in. It counts result pages, not keywords.
- Organic SERPs by position (top 20) — how those appearances distribute across the top-20 bands: #1, #2-3, #4-10 and #11-20. Positions beyond #20 are counted in the total above but are not banded here, so the bands do not add up to it — they show how much of a domain's presence is near the top.
- Estimated monthly organic traffic (ETV) — DataForSEO's estimate of monthly visits, calculated from click-through rate and search volume. It is an estimate, not measured traffic.
- Estimated monthly cost of the same traffic as paid ads — what buying that organic traffic through ads would be estimated to cost per month.
A rival found by DataForSEO also carries its overlap with your target: how many intersecting keywords the two share, and the average position it holds on those shared keywords — not across its whole keyword set. A competitor you supplied carries no overlap figures, because no discovery request is made for it.
Only organic results are counted; paid placements are excluded. A metric DataForSEO has no value for is shown as n/a rather than as a zero, and a domain it holds no organic data for says so plainly.
Who can run it
compare_competitors needs a paid credit balance. It reads live data from a paid third-party provider, so it is not available on trial credits — buy any credit pack and it unlocks straight away. Your trial credits are untouched and keep working for crawls, audits, reports and Search Console tools.
If live DataForSEO access is unavailable on this deployment, the tool returns a clear "competitor comparisons are not yet enabled on this deployment" message and charges you nothing — no credits are reserved or spent. SeoGrep never returns sample or placeholder figures dressed up as real data.
Example
Ask your MCP client in plain language:
How does example.com compare with its competitors?
Or name the rivals yourself:
Compare example.com against first-rival.com and second-rival.com.
Input
| Field | Type | Required | Description |
|---|---|---|---|
target | string | No | The domain to compare, e.g. "example.com" or "https://example.com" — any public domain, including a competitor's. Pass this OR project_id, not both. |
project_id | string (uuid) | No | One of your projects (from setup_project / list_projects) — the domain is taken from it. Pass this OR target, not both. |
competitors | string[] | No | Up to 3 competitor domains to compare the target against — naming them gives the most useful comparison. Omit this to let DataForSEO pick, which works well for domains with a broad keyword footprint but on a small or niche site can return general-purpose giants (youtube.com, wikipedia.org) that share a SERP without being real rivals. |
limit | integer | No | How many rows the competitor-discovery request may return (1–1000, default 1000). Unused when you pass "competitors": that skips the discovery request entirely. |
language_code | string | No | Language code (default 'en'). |
location_code | integer | No | DataForSEO location code (default 2840 = United States). |
Returns
A heading naming the target — or, when you passed a project_id, the project it came from — the language and location the figures were read for, and where the compared rivals came from; then one block per domain with its metric lines, the target first.
An input that is not a public domain (the target, or any competitor you named), a call naming neither target nor project_id (or both), and a project_id that is not yours are all rejected before anything is charged; while live data is off you get the "not yet enabled" message instead — also free.
Billing
One comparison reads DataForSEO more than once: a competitor-discovery request (skipped when you name the competitors yourself) plus one rank overview per compared domain. It is a flat price either way, charged once, as a single tool call. If any of those requests fails, the whole call fails and you are not charged — a partial comparison is never billed.
analyze_backlinks
Analyze a domain's backlink profile — total backlinks, referring domains, dofollow-only share, spam score, plus the top referring domains and anchor…
generate_report
Generate a shareable HTML SEO report for a project from its latest crawl and Search Console data, and get a public link to share with clients or…