SEO Skill

SEO content decay report for pages losing Search Console clicks.

Use this to find pages or queries that recently lost meaningful clicks and separate position movement from CTR or demand changes. It builds a recovery list from matched Search Console evidence, not publication dates.

Run this report from the CLI, an MCP client, or application code. Every surface uses the same report definition and returns the same evidence. JSON is the source of truth; Markdown makes it readable without hiding dates, limits, warnings, or skipped work.

What this report helps you decide

Which returned search segments lost meaningful clicks in the comparison period?

  • You need a repeatable refresh or investigation queue based on observed losses.
  • Both comparison windows contain enough finalised evidence.

Command facts

Report id
decaying-pages
Execution
Local process
Outputs
JSON and Markdown
Example parameters
site, days, comparison, limit, minDropPct, minPreviousClicks, minClickLoss
Agent discovery
seo reports describe decaying-pages --json
Interactive prompts
Human CLI commands only

When this report is not the right tool

These cases need a different report, more evidence, or a human decision. Do not force this report to answer a question its data cannot support.

  • Search performance changed but you do not yet know whether the movement is a decline, which segment moved, or where to start. Recommended report: Review SEO performance. Run the search performance overview. It checks broader movement and breaks it down by page, query, country, and device before recommending a focused follow-up.
  • You need a definitive explanation for why a page lost clicks. No automated report can isolate the cause from Search Console rows. Review the live page, competing results, demand, release history, tracking, links, and known Google updates. This report can still identify the affected pages, dates, and whether position, CTR, or impressions moved with the loss.

Data sources and inputs

  • Two matched finalised Search Console windows. Provides comparable page and query rows with clicks, impressions, CTR, and average position.
  • Optional live-page verification. Adds current technical and content observations for a limited set of declining pages.

What this report checks

  • Aggregates duplicate returned rows and compares matched page and query evidence across equal windows.
  • Ranks supported click declines and keeps unmatched, partial, filtered, capped, and failed verification states separate.

How it works

  • Requires evidence in both windows, applies explicit loss thresholds, and ranks supported declines consistently.

The JSON result keeps dates, thresholds, limits, skipped work, and source completeness beside the finding. Missing, partial, capped, filtered, and complete data remain different states.

Run the report from the CLI

Compare matched windows for returned click declines. Agents and CI should inspect the live schema before their first run.

Run it from the CLI

seo decaying --project example

Check the agent input schema

seo reports describe decaying-pages --json

Run it from an agent or script

seo reports run decaying-pages --params '{"site":"sc-domain:example.com","days":28,"comparison":"previous-period","limit":20,"minDropPct":20,"minPreviousClicks":10,"minClickLoss":5}' --json

Project profiles can fill supported property and analytics inputs for the human-facing commands. The catalog form shown here is explicit by design, so agents and CI jobs do not prompt or guess.

How an MCP agent should use it

Call seo_describe_report first so the agent sees when this report is useful and gets the current input schema. Then callseo_run_report with the validated parameters. Read the status, warnings, source limits, and skipped sections before acting on a finding.

Describe the report with MCP

{
  "id": "decaying-pages"
}

Run the report with MCP

{
  "id": "decaying-pages",
  "params": {
    "site": "sc-domain:example.com",
    "days": 28,
    "comparison": "previous-period",
    "limit": 20,
    "minDropPct": 20,
    "minPreviousClicks": 10,
    "minClickLoss": 5
  }
}

Use a follow-up report returned by the result instead of guessing the next tool. The local MCP server and CLI use the same report definition and evidence. Their outer transport envelopes differ.

Use the report in a TypeScript app

Install seo as a project dependency, then call the same report catalog used by the CLI and MCP. executeReportrejects an unknown report id or invalid parameters. Provider and runtime failures come back as structured results withisError set.

Install the library

npm install seo

Run this report from TypeScript

import { executeReport } from 'seo/mcp'

const result = await executeReport(
  'decaying-pages',
  {
  "site": "sc-domain:example.com",
  "days": 28,
  "comparison": "previous-period",
  "limit": 20,
  "minDropPct": 20,
  "minPreviousClicks": 10,
  "minClickLoss": 5
},
)

console.log(result)

The TypeScript library guide also covers direct core functions, schema discovery, and the difference betweenexecuteReport and runReport.

What comes back and how to read it

  • Declining pages and queries with before and after metrics, absolute movement, percentage movement, and source dates.
  • Investigation signals, optional page evidence, completeness, caveats, and no claim about why the decline happened.
  • Separate demand loss, position movement, CTR movement, and technical evidence. A decline tells you where to look, not what caused it.

Start with dataStatus, source details, warnings, and caveats. Then inspect the observed evidence before derived findings or suggested actions.

What this report cannot tell you

  • Seasonality and missing lower-volume rows can change the shape of a comparison.

What to do next

  1. Audit affected pages and inspect their query mix before refreshing content.
  2. Use update correlation or segment impact when the decline is broad.

Sources behind the guidance

These primary sources define the provider data or search controls used in the interpretation above.

Browse all reports in Search opportunities.