---
title: "Narrative SEO report | SEO Skill"
description: "Turn crawl findings into a concise narrative that explains what matters, what changed and which evidence supports the next action without hiding limits."
canonical: "https://seoskill.dev/docs/reports/narrative-report"
language: "en"
---

# Narrative SEO report

Turn structured crawl evidence into a report a client or teammate can read. It keeps the important limits and affected pages in view instead of polishing them out of the story.

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

Turn report findings into a client-ready narrative.

```
seo report-narrative --project example
```

## What you get from this report

Turn crawl findings into a concise narrative that explains what matters, what changed and which evidence supports the next action without hiding limits.

Best for

Structured reports already exist and need a readable decision summary.

Needs

Property diagnosis results

You get

Turn crawl findings into a concise narrative that explains what matters, what changed and which evidence supports the next action without hiding limits.

Use next

Review SEO performance

Every report follows the same rules for missing data and outside estimates.[See how report data works](https://seoskill.dev/docs/reports#how-report-data-works).

## What you need before you run it

The report uses the information below. Optional sources are only used when you ask for them.

### Property diagnosis results

Provides supported movement, segments, decay, overlap, and opportunity evidence.

### Saved change and monitoring results

Adds measured changes, technical monitoring, skipped sections, and source caveats when available.

## Use a different report for these jobs

These jobs need a different report or a manual review.

[

### You need to discover what changed in Search Console rather than explain reports that already exist.

Run the search performance overview first. It compares recent and earlier evidence, narrows movement by page, query, country, and device, and recommends focused follow-ups. Narrative report cannot create source evidence that was never collected.

SEO performance report

](https://seoskill.dev/docs/reports/search-performance-overview)

### You need a factual explanation for why traffic or rankings changed.

No automated report can prove the cause from a narrative. Review the underlying reports, known releases, tracking changes, demand, seasonality, and representative pages. Use the narrative only to communicate the conclusions that evidence supports.

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 narrative-report --json
```

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

```
seo reports run narrative-report --params '{"site":"sc-domain:example.com","days":90,"recentDays":7,"limit":10,"includeBrand":false,"changeLimit":5}' --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": "narrative-report"
}
```

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

```
{
  "id": "narrative-report",
  "params": {
    "site": "sc-domain:example.com",
    "days": 90,
    "recentDays": 7,
    "limit": 10,
    "includeBrand": false,
    "changeLimit": 5
  }
}
```

### 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(
  'narrative-report',
  {
  "site": "sc-domain:example.com",
  "days": 90,
  "recentDays": 7,
  "limit": 10,
  "includeBrand": false,
  "changeLimit": 5
},
)

console.log(result)
```

## What to do next

Check every main claim against the linked crawl evidence before sharing the narrative. Keep affected pages, warnings and missing sections attached so the reader can inspect what supports the recommendation.

1.  01Run the focused report behind any unresolved headline.
2.  02Share the caveats with the actions so certainty is not overstated.

## Related reports

[

See what changed in Search Console and which pages, queries, countries or devices explain the movement before choosing what to investigate next.

SEO performance report

](https://seoskill.dev/docs/reports/search-performance-overview)[

Create a monthly SEO report from finalised Search Console data with clear comparisons, page evidence, missing data and next actions for the next month.

Monthly SEO report

](https://seoskill.dev/docs/reports/monthly-report)[

Compare matched Search Console periods around a recorded SEO change and keep releases, demand shifts and other confounders beside the result.

SEO change measurement

](https://seoskill.dev/docs/reports/measure-change)

## Sources used by this report

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

-   [Search Console Search Analytics API guidance](https://developers.google.com/webmaster-tools/v1/how-tos/search_analytics)
