---
title: "Find keyword opportunities in your own search data"
description: "Find keyword opportunities from your own Search Console, score them by the clicks they could win, and size new keywords with your DataForSEO or Ahrefs key."
canonical: "https://seoskill.dev/features/keyword-opportunities"
language: "en"
---

# Keyword opportunities

A keyword opportunity is a search where one change to your site could win clicks it is not getting yet. Ask your agent for them and it starts from your own Search Console, then sizes new keywords with your DataForSEO or Ahrefs key.

Run it in a terminal, then sign in with Google.

Or run it on your machine

Installs the CLI, signs you in and adds the skill to your agents. Site crawls and Bing data run this way, on your own machine. A crawl fetches many pages, and Bing blocks our hosted server.

## 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.com
```

The 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](https://seoskill.dev/features/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](https://moz.com/help/keyword-explorer/keyword-metrics/priority) weighs volume, difficulty and organic click-through rate, and [SEOmonitor's opportunity score](https://help.seomonitor.com/en/articles/6222130-seo-opportunity) 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](https://seoskill.dev/docs/keys) 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.com
```

```
seo research keyword_ideas --keywords "invoice template" --country us
seo research keyword_metrics --keywords "invoice template for contractors,free invoice template word" --country us
```

Keyword 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](https://seoskill.dev/features/keyword-research) 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 us
```

Each ranking page comes with its domain's authority and a free column of Domain Rating by [Ahrefs](https://ahrefs.com/), 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](https://seoskill.dev/features/keyword-gap) page covers that comparison step by step, and the free [competitor keyword research tool](https://seoskill.dev/tools/competitor-keyword-research) 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](https://seoskill.dev/tools/google-algorithm-update-checker).

1.  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.
2.  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.
3.  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.
4.  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.
5.  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](https://seoskill.dev/docs/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](https://seoskill.dev/features/striking-distance-keywords) page explains.

## Read more

[

### Striking distance keywords

Queries just off page one, quick wins, low CTR and content decay, and each fix measured 28 and 56 days later.

Striking distance keywords](https://seoskill.dev/features/striking-distance-keywords)[

### AI keyword research tool

Keyword ideas, search volume, SERPs and SERP overlap in your agent, from your own key.

AI keyword research](https://seoskill.dev/features/keyword-research)[

### Keyword gap analysis

The searches your competitors rank for and you don’t, against your own Search Console queries.

Keyword gap analysis](https://seoskill.dev/features/keyword-gap)[

### Competitor keyword research

See what any domain ranks for in your browser, with no account.

Free tool](https://seoskill.dev/tools/competitor-keyword-research)[

### SEO report

Every section of the Search Console report, with its dates and how to ask for it.

SEO report docs](https://seoskill.dev/docs/report)
