SEO Skill

SEO quick wins report for low-CTR page-one rankings.

Quick wins looks for queries already ranking on page one, usually positions 4 to 10, where CTR is below the site's own benchmark. It gives you a focused review queue, not a promise that changing a title will increase clicks.

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 already-visible search rows deserve a focused CTR or content review?

  • You want a small queue from returned positions 4 to 10 with meaningful impressions.
  • You can verify the live result and page before proposing work.

Command facts

Report id
quick-wins
Execution
Local process
Outputs
JSON and Markdown
Example parameters
site, days, limit, minImpressions, verifyContent, verifyLimit
Agent discovery
seo reports describe quick-wins --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.

  • You want pages averaging positions 11 to 20 rather than page-one rows with weak CTR. Recommended report: Find pages close to page one. Run second page. It returns a page-oriented queue with the queries, impressions, clicks, CTR, and average position behind each candidate, while keeping the position range as a review filter rather than a ranking forecast.
  • You need to know whether changing a title or snippet will definitely increase clicks. No automated report can decide that in advance. Review the live result page, query intent, competing snippets, and the page itself, then record the change and measure a complete later period. Quick wins can still select the strongest rows for that review.

Data sources and inputs

  • Returned Search Console query and page rows. Provides impressions, clicks, CTR, and average position for the selected finalised window.
  • Optional live-page checks. Fetches a limited number of candidate pages for title, snippet, content, and technical context.

What this report checks

  • Finds query and page rows with strong average positions and enough impressions to review.
  • Compares CTR with the site's own position-aware heuristic benchmark.
  • Filters branded searches by default, ranks rows consistently, and verifies selected pages when requested.

How it works

  • Filters positions 4 to 10, compares CTR with the stated benchmark, ranks consistently, and bounds optional page fetches.

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

Find visible queries and pages that deserve a closer CTR review. Agents and CI should inspect the live schema before their first run.

Run it from the CLI

seo quick-wins --project example

Check the agent input schema

seo reports describe quick-wins --json

Run it from an agent or script

seo reports run quick-wins --params '{"site":"sc-domain:example.com","days":90,"limit":20,"minImpressions":100,"verifyContent":true,"verifyLimit":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": "quick-wins"
}

Run the report with MCP

{
  "id": "quick-wins",
  "params": {
    "site": "sc-domain:example.com",
    "days": 90,
    "limit": 20,
    "minImpressions": 100,
    "verifyContent": true,
    "verifyLimit": 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(
  'quick-wins',
  {
  "site": "sc-domain:example.com",
  "days": 90,
  "limit": 20,
  "minImpressions": 100,
  "verifyContent": true,
  "verifyLimit": 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

  • A ranked query and page list with impressions, clicks, CTR, average position, benchmark, and estimated click shortfall.
  • Page evidence and practical title, snippet, or SERP framing checks for selected rows.
  • Clear caveats that label the CTR benchmark and click shortfall as prioritisation heuristics.
  • Check benchmark confidence and verification status. Estimated click shortfall is a prioritisation heuristic, not a traffic forecast.

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

  • Search appearance, device mix, brand intent, and SERP features can all explain CTR differences.

What to do next

  1. Inspect the SERP and live page for the best-supported rows.
  2. Record a specific change and measure it over a complete later window.
  • Build a content optimization brief. Create a focused brief for one existing page from its own search queries and the content observed on the live URL.
  • Audit one page. Inspect one live URL before changing its metadata, canonical, directives, structured data, links, or content.
  • Measure an SEO change. Compare equal, finalised search windows around a recorded change and see what moved without claiming the change caused it.

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.