Keyword rank tracking report
Track the same saved keywords in a fixed market and device, then compare each exact snapshot with the prior compatible run. Results stay on your machine, including queued task state, cost and history.
Install and run the monitor
Install the CLI once, then run seo start to connect your site and Google data. After setup you can run this monitor yourself or ask your agent to run it.
Install the SEO CLI globally.
npm i -g seoRun setup after installation.
seo startCollect or resume one exact rank run for a saved keyword set.
seo reports run rank-tracking --params '{"projectId":"example","set":"Priority","targetDomain":"example.com","devices":["desktop"],"collectionMethod":"queued","cadence":"weekly"}' --jsonWhat the monitor records
Track exact organic positions for a saved keyword set by location and device. Compare ranking changes with local history, coverage and provider cost.
- Best for
- A saved keyword set needs repeatable position checks for one fixed market and device.
- Needs
- Saved keyword set and target domain
- You get
- Track exact organic positions for a saved keyword set by location and device. Compare ranking changes with local history, coverage and provider cost.
- Use next
- Inspect live search results
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.
Saved keyword set and target domain
Select up to 50 keywords for live collection or 1,000 for queued collection, with an optional saved tag filter.
Fixed search market and device
Uses the saved country, language, location, and one or two explicit device configurations without blending their positions.
Connected exact-rank provider
Posts or collects limited search snapshots with task ids, exact ranks, requested depth, coverage, warnings, and cost.
Use a different report for these jobs
These jobs need a different report or a manual review.
You need clicks, impressions, CTR, or average position from searches associated with the site.
Use a Search Console opportunity report for Search Console performance. Exact rank snapshots do not contain clicks or impressions and should not replace average position.
You need to inspect one current result page but do not need saved history.
Run live search results for that query and market. It returns the returned result page and features without creating a recurring tracking configuration.
Use the monitor 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 monitor 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 monitor with the validated parameters.
Check the current input before the agent or script runs the monitor.
seo reports describe rank-tracking --jsonOnce the input is valid, run the monitor through the report catalog.
seo reports run rank-tracking --params '{"projectId":"example","set":"Priority","targetDomain":"example.com","devices":["desktop"],"collectionMethod":"queued","cadence":"weekly","depth":100}' --jsonMCP
An MCP agent follows the same two-step flow. It inspects the current schema, fills the required fields and only then runs the monitor.
Ask the MCP server for the current monitor input.
{
"id": "rank-tracking"
}Run the monitor after the agent has checked and filled the input.
{
"id": "rank-tracking",
"params": {
"projectId": "example",
"set": "Priority",
"targetDomain": "example.com",
"devices": [
"desktop"
],
"collectionMethod": "queued",
"cadence": "weekly",
"depth": 100
}
}TypeScript
Install the package in a Node 22 project when your application needs to run the monitor 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 monitor from your TypeScript application.
import { executeReport } from 'seo/mcp'
const result = await executeReport(
'rank-tracking',
{
"projectId": "example",
"set": "Priority",
"targetDomain": "example.com",
"devices": [
"desktop"
],
"collectionMethod": "queued",
"cadence": "weekly",
"depth": 100
},
)
console.log(result)What to do next
Check market, device, depth, coverage and cost before reading the position changes. Inspect changed ranking URLs and add Search Console evidence before deciding that a movement deserves work.
- 01Inspect the current result page and ranking URL when a change could reflect intent drift or a competing template.
- 02Run a Search Console opportunity report before prioritising work from position movement alone.
Related reports
Inspect exact organic ranks, domains, URLs, titles, snippets and result features for one keyword, location, language and device-specific search snapshot.
Review saved keyword research, stale provider metrics, tags and page mappings from one local project set without repeating paid provider requests.
Find page-one queries with useful impressions and weaker CTR evidence, then inspect the search result before changing titles, snippets or page copy.
Group Search Console queries around positions 11 to 20 into focused content, snippet, internal link and template review actions for each page.
Sources used by this monitor
These primary sources define the provider data or search controls used by the result.