SEO opportunities

Opportunities, ranked by the SoV they would unlock.

Most rank trackers slap a “quick wins” tag on anything in 11–20 and call it strategy. SERPVoyager ranks every keyword by the Share of Voice it would unlock at position #1. The top of the list is what’s actually worth doing next.

An opportunity is a number

Math beats vibes. Every opportunity is the SoV you would unlock at #1.

Most tools call a keyword an “opportunity” because it’s ranking 11–20 and looks close to page one. That’s a vibe. It ignores search volume and how steeply CTR drops between #6 and #2.

Our definition is a single number: for each keyword, the SoV it would earn at #1 minus the SoV it earns at its current position. Sort the project by that and the keywords worth working on are at the top.

Same CTR curve Movers, SoV, and Experiments use. Same volumes already on your keywords. Same URL taxonomy. The math is reproducible from your data with a pocket calculator. No proprietary scoring.

SoV gap · definition
v1 shipped
current_sov = (vol × CTR[current_pos]) ÷ total_vol × 100
potential_sov = (vol × CTR[1]) ÷ total_vol × 100
sov_gap = potential_sovcurrent_sov ( kept if > 0 )
Worked example
keyword“running shoes”vol/mo110,000current_pos#11CTR[11]0.0121CTR[1]0.3170total_vol1,000,000
current_sov = (110,000 × 0.0121) ÷ 1,000,000 × 100 = 0.13 pts
potential_sov = (110,000 × 0.3170) ÷ 1,000,000 × 100 = 3.49 pts
sov_gap+3.35 pts
Same CTR curve as Movers, SoV, Experiments

The same row that’s top of the keyword table in the hero. Two multiplications, one subtraction. No proprietary scoring.

Group by page

You don’t edit keywords. You edit pages.

A keyword-level list is a triage tool, not how the work gets done. Nobody opens a ticket called “move running shoes for flat feet to #1.” They open one called “rewrite /guides/running-shoes-flat-feet/.”

Flip the same view to a page grouping. Every keyword is bucketed by its target URL; the gaps sum per URL; the table re-sorts by total page gap. The row at the top is a sprint candidate, with every keyword on that page underneath as evidence.

Drill into a row to see every keyword and its individual gap. Filter the whole view by page type or category and the table only shows pages of that shape: PDPs separately from category pages, category pages separately from guides.

Opportunities · by page
109 pages
By keywordBy page
same filters, same crawl
  • /running-shoes/
    47 kw · avg #8.4
    +6.42
  • /running-shoes/womens/
    23 kw · avg #7.1
    +3.18
  • /running-shoes/trail/
    18 kw · avg #11.2
    +2.04
  • /running-shoes/nike/pegasus-41/
    12 kw · avg #6.0
    +1.21
  • /guides/running-shoes-flat-feet/
    9 kw · avg #9.3
    +0.78
Bar = page gap relative to top · SoV pts

Same project, same crawl, same filters. One toggle changes the unit of work from keyword to page.

What it pairs with

Four neighbors that share the same gap math.

The same CTR curve and the same URL taxonomy power every report on this list. Adopting opportunities isn’t a new mental model — it’s the other side of the SoV and Movers chart you’re already reading.

01

Share of Voice, the same denominator.

The gap on every opportunity row is denominated in the same SoV points as the chart on the SoV page. Closing them moves that chart. One number, two views.

02

Movers, sorted by traffic impact.

The daily Movers report sorts by clicks gained or lost — the same CTR-weighted math from the other direction. Yesterday’s wins are today’s smaller opportunities.

03

URL-centric filters, everywhere.

Filter opportunities to a page type, a primary category, or a sub-tree of your URL taxonomy — then group by page to see which URLs inside that slice are worth touching first.

04

Daily refresh, automatic recompute.

Every nightly crawl recomputes every gap. When a keyword moves from #11 to #6 overnight, its opportunity row shrinks immediately. You don’t close stale tickets.

Common questions

The four questions teams ask about opportunities.

Why is the “potential” always position #1 and not a more realistic target?

Because it’s the only honest upper bound. Any target other than #1 (“assume you can get to #3”) forces a per-keyword feasibility guess. Pegging the ceiling at #1 gives every row the same math, and you prioritize by absolute upside. Per-row overrides may come as a feature; the project-wide ranking stays anchored to #1.

What CTR curve does the gap use?

The v1 industry-baseline curve, same one Movers, Share of Voice, and Experiments use (pos #1 = 31.7%, pos #11 = 1.21%, pos #20 = 0.28%). One curve across the product means the SoV gap, Movers’ clicks-gained delta, and the SoV chart are all in the same units.

Does the gap account for AI Overviews or other SERP features pushing organic down?

Not in v1. The gap math is pure CTR-from-position; it doesn’t discount the click pool for queries with an AIO, featured snippet, or heavy feature stack. Opportunities for AIO-heavy queries are slightly overstated. A feature-aware curve is on the roadmap once AIO citation data has enough history to back the discount factors.

Can I export opportunities to a sprint planning tool?

Not directly today. The table is filterable, sortable, and groupable in-app; CSV export is on the v2 list, with Linear, Jira, and Notion integrations further out. If exporting would change whether the product is useful to you, mention it during the trial; that’s how we triage roadmap weight.

Other questions?See full pricing & FAQ
See your real opportunities

See the keywords where a small rank improvement moves the business.

Plug in your keywords today. Tomorrow morning, every keyword is sorted by the Share of Voice it’d unlock at position #1, with position buckets so page-2 keywords surface separately.

14-day free trial. No credit card.