CTR optimization report
Find titles and snippets that may be underselling pages with useful rankings. The expected CTR is a review benchmark, not a Google target or a forecast of extra clicks.
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 seoRun setup after installation.
seo startFind high-impression queries with weaker CTR evidence.
seo ctr-underperformers --project exampleWhat you get from this report
Find high-impression Search Console queries with weaker CTR than expected for their position. Review the real result before rewriting a snippet.
- Best for
- You need a limited list of high-impression rows for title and snippet investigation.
- Needs
- Returned Search Console query rows
- You get
- Find high-impression Search Console queries with weaker CTR than expected for their position. Review the real result before rewriting a snippet.
- Use next
- Build a content optimization brief
Every report follows the same rules for missing data and outside estimates.See 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.
Returned Search Console query rows
Provides impressions, clicks, CTR, average position, dates, and property scope.
Documented CTR expectation
Defines the position-aware benchmark and minimum evidence used to create the review set.
Use a different report for these jobs
These jobs need a different report or a manual review.
The main opportunity is queries averaging positions 11 to 20 rather than weak CTR at an existing position.
Run second-page opportunities. It groups the returned page and query evidence near page one without treating the average position as a fixed rank.
You need to know whether changing a title or snippet actually improved clicks or CTR.
Record and measure the change across matched Search Console windows. It adds before-and-after evidence, but it still cannot isolate the edit from demand, ranking, SERP, or seasonality changes.
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 ctr-underperformers --jsonOnce the input is valid, run the report through the report catalog.
seo reports run ctr-underperformers --params '{"site":"sc-domain:example.com","minImpressions":250,"includeBrand":false}' --jsonMCP
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": "ctr-underperformers"
}Run the report after the agent has checked and filled the input.
{
"id": "ctr-underperformers",
"params": {
"site": "sc-domain:example.com",
"minImpressions": 250,
"includeBrand": false
}
}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 seoRun the report from your TypeScript application.
import { executeReport } from 'seo/mcp'
const result = await executeReport(
'ctr-underperformers',
{
"site": "sc-domain:example.com",
"minImpressions": 250,
"includeBrand": false
},
)
console.log(result)What to do next
Inspect the live search result and query intent before rewriting a title or description. Record the change, leave the page long enough to collect comparable data and check the same query set again.
- 01Use content optimization for a supported page-level brief.
- 02Record and measure any title or snippet change instead of forecasting clicks.
Related reports
Build a content brief from one page, its Search Console queries and the headings or topics already present. Keep every suggestion tied to demand.
Find page-one queries with useful impressions and weaker CTR evidence, then inspect the search result before changing titles, snippets or page copy.
Compare matched Search Console periods around a recorded SEO change and keep releases, demand shifts and other confounders beside the result.
Sources used by this report
These primary sources define the provider data or search controls used by the result.