---
title: "SEO keyword ranking report from Search Console | SEO Skill"
description: "A keyword report from your own Search Console. Every query your site shows for, with its page, clicks, impressions, CTR and position against last period."
canonical: "https://seoskill.dev/features/keyword-report"
language: "en"
---

# SEO keyword report

Ask your agent which keywords your site gets from Google. It reads your own Search Console and returns each query with the page that ranks, its clicks, impressions, CTR and average position, and how they changed against the period before.

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.

## A keyword report lists the searches your site already gets

An SEO keyword report from Search Console answers one question. Which searches showed your pages in Google over a period, and how did each one do against the period before? Every row is a real search that Google recorded, not a keyword someone picked and a tool estimated.

People also call it a keyword ranking report or a keyword performance report. On this page all three mean your own Search Console numbers for the searches you already appear in.

SEO Skill reads that report live from your own Search Console each time you ask. Each row holds these keyword metrics:

| Column | What it tells you |
| --- | --- |
| Query | The search people typed, as Search Console recorded it. |
| Page | The URL on your site that Google showed for that search. |
| Clicks | Visits from Google Search to that page for that query. |
| Impressions | How often a link to the page was seen in the results. |
| CTR | Clicks divided by impressions. |
| Average position | Where the page appeared, averaged over every impression. |
| Previous period | Last period's clicks and average position, and the change in clicks. |

The query and the page sit in one row. That matters more than it looks, because a keyword that moves from one page to another is a different problem from a keyword that drops, and a list of queries alone hides it.

## Run a keyword report for your site in two prompts

Add the hosted MCP server with the commands at the top of this page and sign in with Google (access is read only). Start with the overview, which runs `seo_report`:

```
Show me the overview section of the SEO report for example.com
```

```
seo report --site example.com --section overview
```

It returns the site's clicks, impressions, CTR and average position against the previous period, then the top 10 queries and pages by clicks and the ones that gained or lost the most. For a quick keyword performance report, that is often enough.

For every keyword, ask for the rows. Your agent runs `seo_data` grouped by query and page:

```
Give me a keyword report for example.com: every query with the page that ranks for it, clicks, impressions, CTR and average position for the last 28 days against the 28 days before. Leave out searches for my brand.
```

In a terminal, after `npm i -g seo` and `seo start`, the same rows come from `seo data`:

```
seo data --site example.com --dimensions query,page
```

Both cover the last 28 days of final Search Console data unless you give other dates. The comparison is always the same number of days just before, so a 28-day report compares with the 28 days before it.

## Narrow the keyword report by folder, country or device

A whole-site list gets long fast (a site with a few hundred pages can have thousands of query and page rows). Filter it to the part you care about. This lists the keywords for one folder, a page of rows at a time:

```
seo data --site example.com --dimensions query,page --page /blog/ --detail rows
```

Swap the second dimension to split keywords by market or device instead of page:

```
seo data --site example.com --dimensions query,country --query invoice
```

For a calendar month, give the dates, and add `--json` when a spreadsheet or script reads the result:

```
seo data --site example.com --dimensions query,page --start-date 2026-10-01 --end-date 2026-10-31 --json
```

The same filters work in a prompt, such as "keywords for pages under /blog/, split by country". Queries that look like referral spam or rank tracker test searches are labelled in the rows and kept in, so the numbers still match Search Console.

## Average position is an average over every impression

Search Console's average position is the topmost spot a link to your site held each time it was seen, averaged across all those impressions. [Google's own definition](https://support.google.com/webmasters/answer/7042828) says a position is only recorded when the result is actually seen, and that it varies with location and search history.

So a keyword at an average position of 8.4 may have shown at 3 for some people and 14 for others. Read position next to impressions. A move from 9 to 6 on 20 impressions is noise, while the same move on 4,000 impressions means far more people saw the page higher up. A query that showed only on page five, where few people scroll, can show a poor average on a handful of impressions.

A row with no impressions in the current period shows 0 clicks and no position. That means Google recorded no impression for that query and page, which is not the same as dropping to position 100.

## What this keyword report does not do

SEO Skill is not a rank tracker, and the keyword report is built from Search Console only. Here is what it leaves out:

-   It does not check your positions every day or keep a ranking history. Each report reads Search Console when you ask.
-   It does not take a list of keywords to watch. It shows the searches Google recorded for your site, so a keyword you never appeared for has no row.
-   It does not show where competitors rank, or the search volume and difficulty of a keyword.
-   It cannot go further back than Search Console keeps, which is about 16 months.
-   It does not include searches Search Console hides for privacy, so the query rows add up to less than the site totals.

For a live look at one results page, the [SERP checker](https://seoskill.dev/tools/serp-checker) shows who ranks for a keyword right now and where your domain sits. For volume, difficulty and competitors' keywords, use [keyword research](https://seoskill.dev/features/keyword-research) with your own DataForSEO or Ahrefs key. Its numbers are estimates, so they stay out of this report.

## Worked example: 5 rows from seoskill.dev's own keyword report

These rows come from a real keyword report for seoskill.dev, run with `seo_data` grouped by query and page. It covers 11 October to 7 November 2026 against 13 September to 10 October 2026. Each row shows the later period, with the earlier period's clicks and position in brackets.

| Query on page | Last 28 days (28 days before) |
| --- | --- |
| seo skills on the home page | 61 clicks (31), 1,644 impressions, position 7.1 (16.6) |
| algorithm update checker on /tools/google-algorithm-update-checker | 8 clicks (0), 100 impressions, position 15.8 (no position) |
| google search console mcp on /features/search-console | 0 clicks (0), 517 impressions, position 64.2 (70.5) |
| mcp seo on /features/mcp | 0 clicks (0), 130 impressions, position 80.7 (73.7) |
| ai seo skills on the home page | 1 click (0), 15 impressions, position 11.9 (29.8) |

Source: Search Console for seoskill.dev, web search, read with SEO Skill on 11 November 2026. Impressions are for the later period only.

"seo skills" is the row that matters. It moved from an average position of 16.6 to 7.1 on more than 1,600 impressions, and clicks went from 31 to 61. That is a page one result, and the click count backs it up.

The algorithm update checker row had no position before because the page had no impressions for that query in the earlier period, so it is a new keyword rather than a climb. "google search console mcp" improved from 70.5 to 64.2 on 517 impressions, but at page seven it brings no clicks yet. "ai seo skills" jumped from 29.8 to 11.9 on 15 impressions, which is too few to read as a trend.

## Turn the keyword report into a client or monthly report

The keyword report gives your agent the rows. The [SEO reporting tool](https://seoskill.dev/features/seo-reporting) page shows how to have it write a weekly or client report around them, with Google Analytics sessions kept under their own name. If you only need a month-on-month document from a Search Console export, the free [monthly SEO report](https://seoskill.dev/tools/monthly-seo-report) builds one in your browser with no sign-in.

## Act on the keywords that moved

A keyword report shows what changed. The next step depends on the row.

-   Keywords at positions 11 to 20, or on page one with too few clicks, are covered by [striking distance keywords](https://seoskill.dev/features/striking-distance-keywords), which ranks them and measures each fix later.
-   For one page that lost a keyword, [seo page](https://seoskill.dev/docs/page) shows its live title, H1, index status and every query it gets.
-   For a keyword where two of your pages split the impressions, ask for the cannibalization section of the [SEO report](https://seoskill.dev/docs/report).

## The keywords this page targets, and why

We picked them with the same tools. Search volume and KD (DataForSEO's keyword difficulty, 0 to 100) are for the US in November 2026:

| Keyword | Searches (KD) |
| --- | --- |
| keyword ranking report | 880 (KD 51) |
| seo keyword report | 140 (KD 16) |
| seo keyword ranking report | 140 (KD 35) |
| keyword metrics | 70 (KD 39) |
| keyword performance report | 40 (KD 0) |

In November 2026 the US results for these searches were a mix of keyword tool home pages from Semrush, Moz and Google's Keyword Planner, lists of rank tracking tools, and guides from reporting dashboard companies such as DashThis and Klipfolio. None of the top ten showed a real report from a site's own Search Console with the query and page in one row. That is the gap this page is for.

## Read more

[

### seo data

Raw Search Console rows by query, page, country or device, each beside the previous period.

seo data docs](https://seoskill.dev/docs/data)[

### SEO report

The overview and every section of the Search Console report, with its dates.

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

### Striking distance keywords

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

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

### SEO reporting tool

Weekly and client SEO reports your agent writes from Search Console and Google Analytics.

SEO reporting](https://seoskill.dev/features/seo-reporting)[

### Monthly SEO report

Turn a Search Console export into a month-on-month report in your browser, free.

Monthly SEO report](https://seoskill.dev/tools/monthly-seo-report)[

### AI keyword research tool

Search volume, difficulty and who ranks for keywords you do not get yet, from your own DataForSEO or Ahrefs key.

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