---
name: seo-rank-tracking
description: Tracks a site's Google rankings from its own Search Console data via the Caybl.ai connector - winners, losers, new and lost queries and pages over the last 28 days or around a named Google update - with Bing as a second engine. Use for "how are our rankings", "what moved this week", "did the core update hit us", "rank tracking", or as a weekly scheduled report.
license: MIT
compatibility: Requires the Caybl.ai MCP connector (https://api.caybl.ai/mcp) with Search Console connected; Bing Webmaster Tools optional.
metadata:
  author: Caybl.ai
  version: "1.0"
  adapted-from: Ryze-AI-Adgent/open-seo-mcp-skills (rank-tracking), MIT
---

# SEO rank tracking

## Requires

The Caybl.ai MCP connector with Search Console connected (https://caybl.ai/search-console-mcp).

## Workflow

1. **Windows.** Default: last 28 days vs the previous 28, ending 2 days ago (Search Console lags). If the user names an algorithm update or a site change, split the windows around that date instead.
2. `run_search_analytics_report` for both windows, by `query` and by `page` (`rowLimit` high enough to cover the site; exclude app/login paths with `pageFilters`).
3. **Join** each window on query and on page. Compute delta clicks, impressions, CTR and position.
4. **Bucket:**
   - **Winners** - position improved by 2+ (sort by clicks gained),
   - **Losers** - position dropped by 2+ (sort by clicks lost),
   - **New** - queries/pages with impressions now and none before,
   - **Lost** - impressions before and none now.
5. **Bing** (if connected): `bing_top_queries` for the same period to show whether a drop is Google-only.
6. For the 3 biggest losers, `inspect_url` the page - an indexing or canonical change explains a drop faster than any theory.

## Output

1. **Verdict** first: net clicks change and the one thing that explains most of it.
2. Four tables (Winners, Losers, New, Lost): | Query or page | Clicks | Delta | Position | Delta | Impressions |
3. Likely causes for the biggest losses (indexing, cannibalization, intent shift, competitor, update) - labelled as likely, not certain.
4. Suggest running this weekly as a scheduled task.

## Guardrails
- Positions are averages across all impressions; a move from 9.8 to 11.2 on 40 impressions is noise. Ignore small-volume swings.
- Don't attribute a drop to a Google update without the dates lining up.
