Features

Competitors: see who ranks ahead of you

Serpel’s competitor analysis shows which domains rank ahead of you for the keywords you track, using the Google results that your last rank check already stored. It sends no extra request and costs no extra credits. You add up to 10 competitors yourself or take suggestions from the search results.

Serpel illustration: three isometric lanes with one block each, the blue block ahead with a small orange flag

How does competitor analysis work?

Competitor analysis is a second reading of data you already have. Every rank check stores the organic Google results for each tracked keyword. Serpel looks up your domain and each competitor in those stored results and compares their positions. Nothing new is fetched from Google when you open the page, so the numbers are exactly as fresh as your last rank check. The rank tracking overview shows what those checks do.

From tracked keywords to a competitor comparison
  1. Track keywords

    The comparison covers the keywords you track in rank tracking.

  2. Run a rank check

    Each check stores the organic results up to your depth, not only your own position.

  3. Add competitors

    Add up to 10 domains yourself, or take suggestions from the stored results.

  4. Read the stored results

    Serpel finds each domain’s best position per keyword. No new request is sent.

    No credits
  5. Compare

    You see share of clicks, page 1 and top 3 counts, and a keyword-by-keyword table.

Only keywords whose latest check stored its search results are measured. A keyword that has not been checked yet does not count. The page says how many of your tracked keywords it measured, and it tells you when to run a check first. The numbers also appear in your monitoring reports, so you can follow competitors over time. Your competitors also feed the Competitor ahead opportunity, which flags keywords where a tracked competitor ranks in the top 3 while you rank outside the top 10, as long as the keyword has search volume or Search Console impressions.

How do you add competitors?

  1. Open Competitors.

    Choose Competitors under Research in the sidebar.

  2. Add a domain.

    Click Competitor in the page header, or Add competitor on an empty page. Type the domain without https:// and path, for example competitor.com, and click Add.

  3. Or take a suggestion.

    Click View suggestions in the banner “Who ranks ahead of you for your keywords?”. The dialog lists domains from your search results. Click Add next to the ones you want.

  4. Remove a competitor.

    Click Remove on its card. A message offers Undo for a moment.

Adding and removing competitors needs the editor role in the project. Viewers can read the page and the suggestions. A project compares at most 10 competitors, and the dialog tells you when all slots are used. Serpel keeps only the domain, so a pasted address such as https://www.competitor.com/blog becomes competitor.com. It refuses your own domain, and also a parent domain or a subdomain of it. Adding a domain twice changes nothing.

How does Serpel suggest competitors?

Suggestions come from the stored results of your last checks. Serpel takes every domain that shows up in the first 20 positions for your tracked keywords, or within your depth if that is lower, and leaves out your own domain and the competitors you already added. It counts per domain how many keywords it appears for and how many of those are on page 1, and it lists up to 15 domains. The ones with the most page-1 keywords come first, then the ones with the most keywords, then the better average position. Without a rank check there are no suggestions.

What do the competitor numbers show?

The bar cards Share of clicks, On page 1 and In the top 3 rank you and your competitors side by side. They appear once at least one competitor is added and keywords are measured. The list Your competitors has one card per competitor, sorted by share of clicks. The table Keyword by keyword shows every position.

  • A card says “ranks for X of N keywords, Y of them on page 1” and shows the average position, counted over the keywords where the domain ranks.
  • The red pill ahead of you on counts keywords where the competitor ranks better than you or ranks while you do not. The green pill behind you on counts keywords where you rank better, including keywords where only you rank. Keywords where both rank equally count for neither, and so do keywords where neither ranks.
  • The percentage on a card is the estimated share of clicks. A trend badge appears when the latest monitoring report matches the latest check, and it compares with the previous run.
  • Positions count only within the depth that was checked. A dash means that the domain is not within it.

How is the estimated click share calculated?

Share of clicks is an estimate, not a measurement. Serpel multiplies the expected click rate of each position by the search volume of the keyword, adds this up over all measured keywords and divides the sum by what the domain would get with first place everywhere. A domain that is first for every keyword scores 100%, and a domain that is not found scores 0%. Keywords with no or very little search volume still count, with a weight of 10.

How the share of clicks is calculated

Share of clicks=Click rate×Search volume÷Best case

Click rate
The expected share of searches that click a result at the domain’s best position for a keyword, taken from a fixed curve.
Search volume
The monthly searches of the keyword, so popular keywords weigh more. A volume below 10 or a missing one counts as 10.
Best case
The same calculation if the domain ranked first for every keyword.
The click rate curve for organic positions
1First place
27.6% of searches click it.
2–3Next two
15.8% at position 2 and 11.0% at position 3.
4–10Rest of the top 10
8.4% at position 4, falling to 2.4% at position 10.
11–30Beyond the top 10
1.2% at position 11, falling to 0.4% at position 30.
31–100Far down
0.1% per position. Beyond position 100 the rate is 0%.

The curve is a fixed model that Serpel applies to every project, not your own click data. For measured clicks, connect search data. The same estimate appears as Visibility on the tracked keywords page, on the project overview and in reports. The CLI and the MCP tool also report estimated monthly clicks, which is the click rate times the search volume, added up.

What do the page 1 and top 3 counts mean?

On page 1 counts the measured keywords where the domain’s best position is 10 or better. In the top 3 counts those with position 3 or better. Both show as “N of M”, where M is the number of measured keywords.

A domain’s best position on a keyword is the highest of all its results, including subdomains. If a competitor has two pages in the results, only the better one counts. The counts use the rank depth of each keyword’s latest check, so they cannot see results beyond it.

How does the keyword-by-keyword comparison work?

The table lists one row per measured tracked keyword, sorted by search volume. Its columns are Keyword, You, one column per competitor and Search volume. A Location column appears when the same keyword is tracked for several places or devices. Click a keyword to open its keyword page with the full results.

How to read the positions in the table
You

Blue

  • Your own position for the keyword.
  • A dash means you are not within the checked depth.
Ahead of you

Red

  • The competitor ranks better than you.
  • It also shows red when it ranks and you do not.
Behind or level

Grey

  • The competitor ranks worse than you, or ties with you.
  • A dash means it is not within the depth.

Keywords tracked for more than one device or location appear as separate rows, because each combination is its own search. The keyword page also marks competitors in its list of top results, so you can see who stands between you and the first position.

How do you use competitor analysis from the CLI, API and MCP?

Everything in the dashboard works from the CLI. serpel competitors list prints keywords, top 3, top 10, average position, visibility and estimated clicks per month for each domain. serpel competitors compare prints the keyword table and marks competitors that rank ahead of you with ▲. All reading commands use the stored results and cost nothing.

Competitor commands
serpel competitors suggest --project <id>
serpel competitors add --project <id> --domain competitor.com
serpel competitors list --project <id>
serpel competitors compare --project <id>
serpel competitors remove --project <id> --domain competitor.com

The REST API has matching endpoints: GET and POST on /projects/{id}/competitors, GET /projects/{id}/competitors/overview, /suggestions and /comparison, and DELETE /projects/{id}/competitors/{competitorId}. Reading needs the rankings:read scope and changing needs rankings:write.

Competitors with the API
curl -X POST https://serpel.app/api/v1/projects/$PROJECT_ID/competitors \
  -H "Authorization: Bearer $SERPEL_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "competitor.com"}'

curl https://serpel.app/api/v1/projects/$PROJECT_ID/competitors/overview \
  -H "Authorization: Bearer $SERPEL_TOKEN"

The MCP tool analyze_competitors compares the project with its saved competitors. It is read-only and free, runs no new searches and needs the rankings:read scope. It returns the visibility per domain, how often each competitor is ahead or behind and up to 25 keywords where a competitor leads. When you have no competitors yet, it suggests a few domains. The Claude Code guide explains how to connect an agent.

Why are my competitor numbers missing or old?

What you seeWhat to do
“No keywords checked yet”, or a card that says “Values arrive with the next ranking check”No tracked keyword has stored search results yet. Track keywords and run a rank check.
No suggestionsSuggestions appear after a rank check. Run one with Check now on the tracked keywords page.
The numbers do not changeThey follow your rank checks. Check more often with a schedule, see monitoring and reports.
“Competitor not added”The domain may be your own, a parent or subdomain of it, or you reached the limit. Remove a competitor to free a slot.
A competitor shows dashes everywhereIt does not appear within the checked depth for your keywords. Raise the depth in the project settings if you want to see further down.
The buttons are missingYou are a viewer. Ask a project owner to give you the editor role.

Where to go next

Updated 5 Nov 2026

See also