Use cases / SEO

6 min read

Competitor SEO teardown

One competitor domain in, their whole organic footprint and the keyword gap against yours out.

Give this to your agent
$ Set up https://www.routergrowth.com/SKILL.md, then tear down competitor.com: organic footprint, top ranking keywords, backlinks, and the gap against my site.
On this page

A competitor teardown usually produces a deck nobody acts on. The version that produces work is narrower: what do they rank for that we do not, which of those keywords have commercial intent, and what does the page that ranks look like.

Five calls, one competitor domain in.

The pipeline

seo.domain_overview  →  organic and paid footprint, estimated traffic and its value
seo.ranked_keywords  →  every keyword they rank for, with position and volume
seo.competitors      →  who else is fighting for the same set
seo.backlinks        →  referring domains behind the authority
seo.page_audit       →  the actual page, for the pages that matter

Step 1: size the target

curl -X POST https://api.routergrowth.com/v1/run \
  -H "Authorization: Bearer $ROUTERGROWTH_API_KEY" \
  -d '{"capability": "seo.domain_overview",
       "input": {"domain": "competitor.com", "location": "United States"}}'

Organic and paid footprint, with estimated traffic and its estimated value. Two reads matter more than the headline number:

  • Traffic value against traffic volume. A domain with modest traffic and high value is ranking on commercial terms. One with huge traffic and low value is ranking on informational content that does not convert. Only the first is a threat to your pipeline.
  • Paid alongside organic. A competitor bidding on terms they already rank for organically believes those terms convert. That is a free read on their internal data.

Step 2: pull their whole keyword footprint

curl -X POST https://api.routergrowth.com/v1/run \
  -H "Authorization: Bearer $ROUTERGROWTH_API_KEY" \
  -d '{"capability": "seo.ranked_keywords",
       "input": {"domain": "competitor.com", "location": "United States", "limit": 1000}}'

Position, volume, CPC and estimated traffic for every keyword. Do the same for your own domain, and the gap is a set difference:

  1. Their keywords minus yours.
  2. Filtered to their positions 1 to 10, because a keyword they rank 40th for is not evidence of anything.
  3. Filtered to CPC above your threshold, which removes the informational long tail.
  4. Sorted by volume times CPC.

The top of that list is a content plan derived from a competitor's tested results rather than from a workshop.

Run it in reverse too. Keywords where you rank 11 to 20 and they rank top five are your cheapest wins: you already have a page and some authority, and the gap is usually the page rather than the domain.

Step 3: find out who you are really competing with

curl -X POST https://api.routergrowth.com/v1/run \
  -H "Authorization: Bearer $ROUTERGROWTH_API_KEY" \
  -d '{"capability": "seo.competitors",
       "input": {"domain": "yourdomain.com", "location": "United States", "limit": 20}}'

Domains competing for your keyword set, with shared-keyword counts and average positions. This list is frequently not your sales competitor list. Review sites, marketplaces, a directory, and one blog that has quietly taken the category are the usual occupants.

That distinction matters for strategy. You cannot out-rank a review aggregator on "best X tools" by writing your own "best X tools" page. You can get listed on theirs.

Step 4: the authority picture

curl -X POST https://api.routergrowth.com/v1/run \
  -H "Authorization: Bearer $ROUTERGROWTH_API_KEY" \
  -d '{"capability": "seo.backlinks",
       "input": {"domain": "competitor.com", "limit": 500}}'

Referring domains and backlinks. The useful analysis is not the count, it is the overlap: domains that link to two or three of your competitors and not to you. Those sites already cover your category and have demonstrated willingness to link. That is a prospect list, and it is far more actionable than a raw domain-authority number.

Step 5: audit the page that actually ranks

For each keyword worth taking, pull the SERP, take the winning URL, and audit it:

curl -X POST https://api.routergrowth.com/v1/run \
  -H "Authorization: Bearer $ROUTERGROWTH_API_KEY" \
  -d '{"capability": "seo.page_audit",
       "input": {"url": "https://competitor.com/guide/thing"}}'

Status, title, description, headings, links, timing and on-page issues. Read the heading structure above everything else. It tells you what the page covers, in what order, at what depth, and that is the brief for yours. Match the format that is winning before you try to beat it on quality.

At a fraction of a cent per audit this is cheap enough to run across every page in a competitor's top-ranking set, and across your own on every deploy.

Turning it into work

The output that survives contact with a roadmap is one table:

Keyword Their position Your position Volume CPC Action
... 3 none 1,900 $12 New page, match their format
... 2 14 720 $18 Rewrite, add the sections they have
... 1 none 8,400 $0.30 Skip, informational

Three columns of data and one column of judgment. Re-run seo.serp on the shortlist monthly to see whether the work moved anything.

Where it breaks

  • Traffic and value estimates are models. Directionally useful, absolutely wrong in the specifics. Never quote them as fact.
  • Keyword databases lag and are incomplete, more so outside major markets. Absence from the data is not absence from the SERP.
  • Backlink indexes differ between providers. Compare a domain against itself over time, not against a competitor measured by a different tool.
  • Copying a competitor's keyword set copies their strategy, including the parts that are not working. Filter for commercial intent or you will inherit their traffic problem.

Run it as an agent

routergrowth run -c seo.domain_overview -i '{"domain":"competitor.com"}'
routergrowth run -c seo.ranked_keywords -i '{"domain":"competitor.com","limit":1000}'
routergrowth run -c seo.competitors -i '{"domain":"yourdomain.com"}'

The full DataForSEO live API is addressable as raw endpoints when you need a report with no capability yet.

What does each call cost?#

Prices below are the starting price per successful call. /v1/inspect returns the exact figure before the run and reserves it against your balance; failures and unbilled no-matches release the hold in full.

CapabilityWhat it returnsFromProviders
seo.domain_overview Organic and paid footprint of a domain: ranking keywords, estimated traffic and its value, top-3 and top-10 counts. $0.018
seo.ranked_keywords The keywords a domain ranks for on Google, with position, volume, CPC and estimated traffic per keyword. $0.015
seo.competitors Domains competing for the same Google keywords, with shared-keyword counts, average position and their organic footprint. $0.017
seo.backlinks Backlinks and referring domains for a target domain. $0.065
seo.page_audit Instant on-page audit of one URL: status, title, description, headings, links, timing, on-page score and the failing checks. $0.003

One prepaid balance covers every row. Capabilities marked coming soon are listed but not yet executable.

FAQ#

How many competitors should I tear down?

Two or three, chosen from seo.competitors rather than from your sales battlecards. The domains that share the most keywords with you are the ones whose gap analysis produces usable work. Beyond three, the keyword sets overlap so heavily that each additional teardown adds noise rather than opportunity.

Their traffic estimate looks wrong. Should I trust any of it?

Trust the ordering, not the number. Estimated traffic is modelled from ranking positions and assumed click-through curves, so it is systematically off in absolute terms and reasonably reliable in relative ones. A domain the model puts at three times another is probably bigger. A domain the model puts at 47,000 visits is not necessarily anywhere near that.

What is the difference between seo.competitors and my actual competitors?

seo.competitors returns whoever ranks for the same keywords, which includes review sites, marketplaces, directories and publishers that will never appear in a deal. That is the point. Those domains own the queries your buyers run, and the strategy against a directory is to get listed on it, not to out-rank it.

Can I run this on my own domain?

Yes, and you should before running it on anyone else's. seo.domain_overview and seo.ranked_keywords on your own domain give you the baseline every gap is measured against, and seo.page_audit across your top pages usually surfaces a handful of cheap technical fixes that are worth more than any competitor insight.

How often should the teardown be repeated?

Quarterly for the full pass. Monthly for seo.serp on the shortlist you decided to act on, because that is the only feedback loop that tells you whether the work moved anything. Running the full teardown monthly produces churn, not information.

Run this today

Sign up, get $5 of credit, and the first call in this guide costs a fraction of a cent. One key, one balance, price shown before every call.

Get started →
competitor seo analysiskeyword gap analysisbacklink apidomain overview apiorganic traffic estimate
Give this to your agent
Claude CodeCodexHermesOpenClawCursor

Install the skill once and Claude Code, Codex, Cursor and the rest discover these capabilities, check the price, then run them.

Install the agent skill →

Reading this as an agent? This guide as markdown: /use-cases/competitor-seo-teardown.md · every guide: /use-cases/llms.txt · RSS