---
title: "Keyword metrics report | SEO Skill"
description: "Compare keyword search volume, monthly trends, CPC, competition, difficulty, intent and result counts for one country and language with cost and coverage."
canonical: "https://seoskill.dev/docs/reports/keyword-metrics"
language: "en"
---

# Keyword metrics report

Check a limited keyword set against independent market estimates before committing to deeper research. The report keeps missing data, request cost and provider coverage visible, so a neat number never looks more certain than it is.

## Install and run the report

Install the CLI once, then run `seo start` to connect your site and Google data. After setup you can run this report yourself or ask your agent to run it.

Install the SEO CLI globally.

```
npm i -g seo
```

Run setup after installation.

```
seo start
```

Compare a limited keyword set in one country and language.

```
seo reports run keyword-metrics --params '{"keywords":["seo audit tool"],"countryCode":"US","languageCode":"en"}' --json
```

## What you get from this report

Check a limited keyword set against independent market estimates while keeping missing fields, provider coverage, cache status, and local request cost visible.

Best for

You already have a keyword list and need estimates for a specific country and language.

Needs

Keyword list and search market

You get

Typed metrics for each retained keyword with provider, market, coverage, cache, cost, request, and warning evidence.

Use next

Group related search queries

## What you need before you run it

This report uses A connected keyword provider, the requested market, provider coverage, cache status, local request cost, and typed metric values.

### Keyword list and search market

Sets at most 50 terms, one country, one language, and an optional location or device context.

### Connected keyword provider

Returns market-level volume, monthly history, CPC, competition, difficulty, intent, and result-count estimates where available.

## How the report finds the opportunity

The report uses existing search and page evidence to build a limited review list. An opportunity is a reason to inspect a page, not a promise of more traffic.

01

Normalises duplicate terms, validates every provider field, and keeps observed zero separate from missing or invalid data.

02

Compares the latest three monthly estimates with the preceding three only when six consecutive months exist.

## Check the evidence behind each opportunity

Start with the query, page and date range behind each suggestion. Thin or partial evidence belongs in the review pile, not the implementation queue.

| Read first | Why it matters |
| --- | --- |
| Result | Typed metrics for each retained keyword with provider, market, coverage, cache, cost, request, and warning evidence. |
| More detail | Limited trend findings with direct evidence references and no traffic, ranking, or future-demand forecast. |
| Read it with | Use volume and trend to choose what to investigate. Check Search Console and the current results before deciding that a term fits the site or deserves a new page. |

## What the result cannot prove

Every metric is a third-party estimate. Difficulty is not a ranking probability, result count is not a complete competitor set, and a trend is not a forecast.

Use volume and trend to choose what to investigate. Check Search Console and the current results before deciding that a term fits the site or deserves a new page. Inspect a current result page in the same market before choosing a content or programmatic template target.

## Use a different report for these jobs

You need proof of how your own pages perform. Use a Search Console report for that. You need an exact rank or a live comparison of the current results.

[

### You need evidence of searches already associated with your own pages.

Run query clusters for the Search Console property. It groups returned first-party query evidence instead of estimating wider market demand.

Search query clustering report

](https://seoskill.dev/docs/reports/query-clusters)

### You need to know who ranks now or whether the result page matches the intended topic.

Inspect a current result page in the same country, language, location, and device. Keyword metrics alone cannot identify current competitors or prove intent fit.

Needs more evidence

## Use the report with an agent or in code

The command above is enough for most work. These options let an agent, script or application run the same report with explicit input and structured output.

### CLI

Use the report catalog when an agent, script or CI job needs predictable JSON instead of the normal terminal output. Check the current input first, then run the report with the validated parameters.

Check the current input before the agent or script runs the report.

```
seo reports describe keyword-metrics --json
```

Once the input is valid, run the report through the report catalog.

```
seo reports run keyword-metrics --params '{"keywords":["seo audit tool","technical seo audit"],"countryCode":"US","languageCode":"en"}' --json
```

### MCP

An MCP agent follows the same two-step flow. It inspects the current schema, fills the required fields and only then runs the report.

Ask the MCP server for the current report input.

```
{
  "id": "keyword-metrics"
}
```

Run the report after the agent has checked and filled the input.

```
{
  "id": "keyword-metrics",
  "params": {
    "keywords": [
      "seo audit tool",
      "technical seo audit"
    ],
    "countryCode": "US",
    "languageCode": "en"
  }
}
```

### TypeScript

Install the package in a Node 22 project when your application needs to run the report directly. The result includes the same evidence, warnings and limits returned through the CLI and MCP server.

Add the SEO package to your project.

```
npm install seo
```

Run the report from your TypeScript application.

```
import { executeReport } from 'seo/mcp'

const result = await executeReport(
  'keyword-metrics',
  {
  "keywords": [
    "seo audit tool",
    "technical seo audit"
  ],
  "countryCode": "US",
  "languageCode": "en"
},
)

console.log(result)
```

## What to do next

Start with terms that combine useful estimated demand with a clear fit for the site. Compare them with first-party search evidence and inspect the current results before creating a page, expanding a template or promising an outcome.

1.  01Compare the most promising terms with Search Console impressions, clicks, pages, and average position.
2.  02Inspect a current result page in the same market before choosing a content or programmatic template target.

## Related reports

[

Turn a large returned Search Console query set into reproducible groups that are easier to review for shared demand.

Search query clustering report

](https://seoskill.dev/docs/reports/query-clusters)[

Find page-one rankings with weak CTR where title or snippet work may earn more clicks.

SEO quick wins report

](https://seoskill.dev/docs/reports/quick-wins)[

Group position 11 to 20 Search Console queries into practical actions.

Striking distance SEO report

](https://seoskill.dev/docs/reports/striking-distance)

## Sources used by this report

These primary sources define the provider data or search controls used by the result.

-   [DataForSEO keyword overview API reference](https://docs.dataforseo.com/v3/dataforseo_labs-google-keyword_overview-live/)
