---
title: "SEO change measurement | SEO Skill"
description: "Compare matched Search Console periods around a recorded SEO change and keep releases, demand shifts and other confounders beside the result."
canonical: "https://seoskill.dev/docs/reports/measure-change"
language: "en"
---

# SEO change measurement

Measure what moved around a saved SEO change using matched Search Console windows. The report can show a useful before and after without claiming that the change caused the movement.

## 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 matched Search Console windows around a saved change.

```
seo change-log measure --id <change-id>
```

## What you get from this report

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

Best for

A title, template, internal-link, migration, or content change has a clear deployment date.

Needs

Search Console performance windows

You get

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

Use next

Find which search segments moved

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.

### Search Console performance windows

Provides equal finalised periods before and after the recorded change.

### Saved or ad hoc change details

Defines the site, page, query, or content group being measured and the date it changed.

### Optional Google Analytics and control evidence

Adds separate post-click or comparison context when configured.

## Use a different report for these jobs

These jobs need a different report or a manual review.

[

### You know total performance moved but need to find the pages, queries, countries, or devices behind it.

Run segment impact across the same comparable periods. It breaks the movement down by the selected Search Console dimension and keeps unmatched or partial rows visible.

SEO segment impact report

](https://seoskill.dev/docs/reports/segment-impact)

### You need proof that the recorded change caused the observed movement.

No automated report can prove causation from a before-and-after comparison, even with a control. Review releases, seasonality, demand, ranking updates, and experimental design; use this report to preserve the measured windows and confounders for that review.

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 measure-change --json
```

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

```
seo reports run measure-change --params '{"site":"sc-domain:example.com","scope":"page","target":"https://example.com/page","title":"Updated page title","changedAt":"2026-05-01","beforeDays":28,"afterDays":28}' --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": "measure-change"
}
```

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

```
{
  "id": "measure-change",
  "params": {
    "site": "sc-domain:example.com",
    "scope": "page",
    "target": "https://example.com/page",
    "title": "Updated page title",
    "changedAt": "2026-05-01",
    "beforeDays": 28,
    "afterDays": 28
  }
}
```

### 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(
  'measure-change',
  {
  "site": "sc-domain:example.com",
  "scope": "page",
  "target": "https://example.com/page",
  "title": "Updated page title",
  "changedAt": "2026-05-01",
  "beforeDays": 28,
  "afterDays": 28
},
)

console.log(result)
```

## What to do next

Read the matched windows and visible confounders before attaching the movement to your change. Record what the comparison supports and keep monitoring the affected pages instead of turning one result into a causal claim.

1.  01Keep the change if the evidence and page quality support it, or plan a measured reversal.
2.  02Use segment impact when you need to locate which pages or queries moved.

## Related reports

[

Compare Search Console movement by page, query, country or device to find which segment explains a wider gain or loss across the selected dates.

SEO segment impact report

](https://seoskill.dev/docs/reports/segment-impact)[

Find unusual Search Console movement, identify the pages and queries behind it and compare the dates with confirmed Google updates before a deeper check.

Organic traffic drop report

](https://seoskill.dev/docs/reports/traffic-anomaly)[

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

Narrative SEO report

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

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