Find who actually ranks against you

The site winning your queries is rarely the firm on your battlecard. Put a keyword set against the results and sort the domains that return into real rivals and shelf results.

Ask the team who you compete with and you get the deal-review answer: two or three companies with matching pricing pages. Search has never read that list. It ranks one page against another, so whoever wrote the strongest page for a query takes the click, and that is just as often a directory, a retailer, or a site nobody in your category has heard of.

A competitor list built from memory describes your market. A competitor list built from the results describes your traffic. Only the second one tells you what to build.

Why the internal list is the wrong input

The names that come up in deal reviews are real competitors. They are simply competitors for budget, not for position. Two firms can fight over the same customers for a decade while their pages never appear in the same result, because they rank for different phrasings, different cities, or different intents entirely.

The reverse happens too. Domains with no overlapping product can own a large share of your results. A review site, a franchise directory, a big-box retailer with a category page, a video platform: none of them sell what you sell, and all of them can sit above you on the terms that matter most.

Planning content against the internal list means the work is aimed at companies that hold none of your results, while the pages actually blocking yours go unexamined.

Compare a keyword set, not a name

The measurement is simple to describe. Take the terms you want to win, read the results across all of them, and count which domains show up most. What returns is a ranking of who holds your result space.

Three things decide whether that measurement is worth anything:

  • The terms have to be ones you want. Run the comparison on generic category words and you learn about the whole industry. Run it on the terms that would change your quarter and you learn about your competition.
  • The set has to be wide enough to overlap. A single query has ten results and one winner. Across ten or fifteen queries, the domains that keep reappearing are the ones with a real position in the topic.
  • Your own domain belongs in the exclusion list. Otherwise it tops the ranking and flatters everything downstream.

The output is a table, and the table is not the finding. The finding is which names on it you did not expect.

Three kinds of domain come back

Every measured list splits the same way, and each group needs a different response.

Firms selling what you sell. The only names here that belong in a full competitor analysis. Every term they hold is a term you could reasonably go after, and wherever they are thin is where you start. Save the deep work for this group.

Results that are there because of what the page is. Marketplaces, review aggregators, directories, and encyclopedic sites hold positions through structure. Out-writing them is rarely available; out-positioning them sometimes is. If one of them holds a slot on your best term, a well-built profile on their platform can be a faster win than a page of yours outranking them.

Domains holding one position off a single page. A glossary entry, one strong guide, a forum thread. They are the easiest targets on the board: one page beat you, and one better page takes the slot back. They are also the most common, and the group most competitive reports never separate out.

Treating the second and third groups as if they were the first is the standard failure. It produces plans to out-publish a marketplace.

The keyword set decides the answer

Feed the comparison your own site's vocabulary and it will return the domains that use the same words. That is a shorter, more comfortable list than the set of domains actually standing between you and the click. Buyers describe the problem in their words. Seed the set from the language customers already used and the comparison starts measuring the results you appear in.

Add one modified term too: a city, a segment, a use case. Broad terms report who is large. Modified terms report who is vulnerable, and the second is the more useful list for a team with limited capacity.

One more filter belongs on the output, and no tool applies it. Holding a position says the query has demand; it does not say the query has buyers. A measured list names whoever takes the clicks. Whether any of those clicks would have turned into revenue is an intent question, and it deserves an answer before any of this becomes a roadmap.

Do it with an agent

The Doverity MCP includes a SERP competitor comparison, and the competitive landscape skill packages the surrounding steps. Hand the agent a term list and the grouping instructions below.

Using the Doverity MCP, work out who I am actually competing with in
search for [mydomain.com].

1. Use this keyword set: [5-15 terms I want to rank for, with one of
   them modified the way a buyer actually phrases it].
2. Call find_serp_competitors on that set with my own domain in
   excludeDomains, sorted by visibility.
3. For each domain returned, list which of my keywords it holds and at
   what position.
4. Sort the domains into three groups: firms selling what I sell,
   results sitting there because of what the page is (directories,
   marketplaces, review sites, retailers, video), and domains holding a
   single position off one strong page.
5. For that third group, name the URL that is ranking and say in one
   line what a better version of it would have to do.

Close by naming the two or three domains on that list a battlecard would
never have contained, and say in a line why each one ranks.

The last instruction is the one that pays. Confirmation that your existing list is correct is worth little; a domain you had not considered is worth a page.

Finding SEO competitors FAQ

How do I find out who my SEO competitors are?

Read the results for a set of queries you want to win and note every domain that turns up more than once. Counting appearances produces a list grounded in the results themselves, which is worth more than any list a team puts together from recollection of who it loses deals to.

How can a small site outrank a national brand?

Position is awarded to a page, not to a company. A page aimed at one query, one city, and one intent will usually beat a national brand's general category page on that query. Scale helps across thousands of terms at once. It decides very little about any single result.

Should I copy the keywords my competitor ranks for?

Only when the query matches something you sell and the position looks reachable. A rival ranking for a term confirms demand and nothing else. Where a directory or a marketplace holds the result, getting listed there usually costs less than outranking it. Where one page holds it, a better page is normally enough.

What do I do once I have the list?

Split it into the three groups above, then work them in that order: single-page domains first, firms second, structural results last. From there a keyword gap puts terms on each name, and an honest read of their traffic estimate tells you whether the gap is as large as it looked.

Run this strategy with an agent

Every guide includes a prompt you can paste to an agent. With the Doverity MCP connected, it reads your Search Console, rank data, and backlink profile while it works. Free credits at sign-up, or self-host for nothing.

Stay in the loop

Product updates, new features, and the occasional behind-the-scenes.