Two kinds of keyword opportunity, from two kinds of data
A keyword opportunity is a search with real demand where your site has a fair chance of earning more clicks than it gets today. Some of those searches already show your pages in Google. Others don't show your site at all yet, and the evidence for each kind comes from a different place:
| Kind | Evidence and where it comes from |
|---|---|
| Searches you already appear for | Impressions, clicks, click-through rate and average position, from your own Search Console through the SEO report. |
| Searches you don't appear for yet | Search volume, keyword difficulty, cost per click and who ranks, from your DataForSEO or Ahrefs key through keyword research. |
Start with the first kind. Search Console shows what people actually typed and where Google already places you, so an opportunity there has evidence behind it. Provider numbers are estimates. Your agent keeps them in their own columns and never adds them to your clicks.
Find keyword opportunities your site already ranks for
Add the hosted MCP server to Claude Code, Codex, Cursor or ChatGPT with the commands at the top of this page and sign in with Google (access is read only). Then ask:
Find the keyword opportunities for example.com in my Search Console. Show the top 10 with the page that ranks for each.In a terminal, after npm i -g seo and seo start:
seo report --site example.comThe report overview counts the rows in each section and shows its top rows, so you can pick where to look first. Six sections hold keyword opportunities:
| Section | What it lists |
|---|---|
second-page | Pages at an average position above 10 and up to 20, each with the queries that put it there. |
striking-distance | Query and page pairs in the same range, with impressions. |
quick-wins | Pairs at positions 4 to 10 that get fewer clicks than your site's own curve says they should. |
low-ctr | Pairs at positions 1 to 4 below the same curve. Titles and snippets to review. |
ai-queries | Searches shaped like AI prompts and follow-up questions, grouped by question, with the page Google showed. |
cannibalization | Queries where two or more of your pages share the impressions. |
Open one section by name, such as seo report --site example.com --section second-page. Brand searches are left out, and the top 20 pages in every section except ai-queries are fetched live, so a page that now redirects or returns an error shows before you spend time on it. The striking distance keywords page covers the page-two, quick wins and low CTR lists in depth, including the hand method in Search Console.
How a keyword opportunity score is worked out from your clicks
SEO Skill scores each Search Console opportunity with your own numbers, using one of two formulas. Both are heuristics for sorting the list, and the report labels them that way.
| Rows | Score |
|---|---|
| Page two (above 10, up to 20) | Impressions × closeness to page one. Closeness is 1 up to position 11 and drops by 0.1 for each position after it, to 0.1 at position 20. So 400 impressions at position 11 score 400, and the same 400 at position 16 score 200. |
| Page one (positions 1 to 10) | Impressions × the gap between your curve's click-through rate for that position and the row's own rate. So 2,000 impressions at position 6 with a 1% rate, where your curve says 4%, score 60 clicks missed in 28 days. |
The curve is built from your own site: for each position on page one, the click-through rate that one page in four beats. A site with too little data falls back to a built-in curve, and the report says which one it used. Brand searches, ads and AI Overviews all change click rates, so treat a high score as a page to open first.
Most published keyword opportunity scores are built from provider estimates instead. Moz's Priority weighs volume, difficulty and organic click-through rate, and SEOmonitor's opportunity score divides the clicks a top three position would add by difficulty. For keywords you don't rank for yet, your agent can build a score like that from keyword metrics and show its formula:
Score these 30 keywords by search volume, keyword difficulty and whether example.com already ranks for them. Show the formula you used.Estimate the SEO potential of a keyword you don't rank for
SEO potential is the number of clicks a keyword could bring if your page ranked for it. For a search with no Search Console row, any such number is the provider's volume times an assumed click-through rate. Ask your agent to label it as an estimate and to check the results page first. An AI Overview, ads or a video block above the organic results takes some of the clicks the arithmetic assumes.
A blank volume means the provider has no data, which is different from zero. In November 2026 DataForSEO had no US volume for "algorithm update checker", while Search Console showed one seoskill.dev page 267 impressions for it in the 28 days to 7 November 2026.
Find new keyword opportunities from a seed keyword
For searches your site doesn't appear for, you need a DataForSEO or Ahrefs key saved on your account page (the provider bills you, and every DataForSEO result says what the request cost). Then ask for ideas and metrics together:
Give me keyword ideas for "invoice template" in the US, then get volume and difficulty for the 30 best fits for example.comseo research keyword_ideas --keywords "invoice template" --country us
seo research keyword_metrics --keywords "invoice template for contractors,free invoice template word" --country usKeyword ideas take up to 5 seed keywords and return the searches that contain each one, highest volume first. Keyword metrics take up to 100 keywords. The AI keyword research tool page walks through the whole research workflow.
Check who ranks before you call it an opportunity
A low difficulty score is a provider's model. The results page is the evidence. Ask for the SERP:
seo research serp --keywords "invoice template for contractors" --country usEach ranking page comes with its domain's authority and a free column of Domain Rating by Ahrefs, plus, with DataForSEO, whether Google showed an AI Overview and which sites it cites. A page one with several sites weaker than yours is a real opening. To decide whether a group of keywords needs one page or several, ask for a serp_overlap, which counts the top 10 pages each pair of searches shares.
Find keyword opportunities your competitors already win
The searches a competitor ranks for and you don't are opportunities with proof that the topic can rank. Ask your agent:
Who are example.com's search competitors? For the top 3, list the keywords they rank for in the top 10 that example.com doesn't.The agent finds the domains that share your keywords, reads each one's ranked keywords and compares them with your Search Console queries. The keyword gap analysis page covers that comparison step by step, and the free competitor keyword research tool shows what any domain ranks for with no account.
A worked example: one keyword opportunity on seoskill.dev
We ran the steps above on seoskill.dev's own Search Console on 11 November 2026. These are the real numbers for one page, the Google algorithm update checker.
- The striking distance section for 11 October to 7 November 2026 ranked "algorithm update checker" first: 267 impressions, 8 clicks (a 3% click-through rate) and an average position of 11.08, on
/tools/google-algorithm-update-checker. The live check found the page returning 200, with the search in its title and H1. - Its score works out as closeness (21 − 11.08) ÷ 10 = 0.992, times 267 impressions, which is about 265. The report shows 264.81 because it uses the unrounded position.
- The second-page section scores the same page as a whole: 809 impressions across 12 queries at an impression-weighted position of 13.88. Closeness is (21 − 13.88) ÷ 10 = 0.712, and 809 × 0.712 is about 576, the report's 576.14. It was the second-highest page in that section, behind the SERP checker.
- Keyword metrics from DataForSEO for the US had no volume for the exact search. Two near variants had some: "google algorithm checker" 40 a month (KD 0) and "algorithm checker" 40 (KD 0). Here Search Console is the better evidence of demand than the provider.
- The SERP for "algorithm update checker" on desktop in the US had an AI Overview, and 5 of the top 8 results were articles about updates rather than checkers. The ranking sites included peoplefirstcontent.com (Domain Rating 16) and aysa.ai (23), and virtina.com (48) held first place.
Read together, the page already matches the search, Google already shows it at the top of page two, and page one includes sites with a Domain Rating of 16 and 23. That makes it a better bet than a new page. The next step is seo page on the URL to see its other queries and what the articles above it cover. Mark the change fixed in the issues list on the day it ships, so its clicks can be compared 28 and 56 days later.
The keywords this page targets
We sized this page's own keywords the same way. Keyword metrics from DataForSEO for the US, November 2026, in searches a month with keyword difficulty from 0 to 100:
| Keyword | Searches (KD) |
|---|---|
| keyword opportunity | 140 (KD 24) |
| keyword opportunities | 140 (KD 14) |
| seo opportunities | 70 (KD 32) |
| seo potential | 40 (KD 0) |
| opportunity keywords | 20 (KD 0) |
| keyword opportunity score | 10 (no KD) |
| keyword opportunity report | No data |
The SERP for "seo opportunities" ruled that one out. All 9 organic results were about Sponsors for Educational Opportunity, a nonprofit that is also called SEO (a fair reminder to read the results before trusting a volume).
Turn the list into a keyword opportunity report
A keyword opportunity report is the list in a form you can act on and share. Ask for one in a single prompt:
Write a keyword opportunity report for example.com. First the top 10 Search Console opportunities with their score and the page for each. Then 10 new keywords with volume, difficulty and who ranks, in a separate table. Say which numbers are estimates.Monthly is a sensible cadence. Keep the same 28 days of Search Console data each time so the scores compare. When you fix a page from the list, your agent can mark it fixed in the report's issues list, which later shows that page's clicks for the 28 and 56 days after the change, as the striking distance keywords page explains.