SEO rank tracking

A free Claude skill. Winners, losers, new and lost queries from Search Console over the last 28 days or around a Google update - with Bing alongside.

Needs: the Caybl.ai connector with Search Console, Bing Webmaster Tools (optional) connected. Try: “How have our Google rankings moved in the last 28 days?”

What you get

  • Verdict
  • Winners / losers / new / lost tables
  • Likely causes for the biggest drops

Install

claude.ai and Claude Desktop

  1. Download the .zip.
  2. In Claude, go to Settings, Capabilities, Skills, and upload it.
  3. Connect Caybl.ai from the connector directory if you haven’t already.

Claude Code

mkdir -p ~/.claude/skills/seo-rank-tracking && curl -fsSL https://caybl.ai/skills/seo-rank-tracking/SKILL.md -o ~/.claude/skills/seo-rank-tracking/SKILL.md
claude mcp add --transport http caybl https://api.caybl.ai/mcp

The skill

This is the full SKILL.md - the same file you download. View raw.

---
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.

Adapted from Ryze-AI-Adgent/open-seo-mcp-skills (MIT). See NOTICES.md.

More SEO skills

  • SEO audit from Search Console - An SEO audit from your own Search Console, Bing and GA4 data: indexation, decaying pages, CTR fixes, striking-distance keywords and cannibalization.
  • SEO vs Google Ads overlap - Finds what you pay for in Google Ads while already ranking top 3 organically, and the paid winners SEO should build pages for.
  • Core Web Vitals audit - Finds your highest-traffic pages that fail Core Web Vitals for real visitors, works out why, and ranks the fixes by time saved and traffic.

Connect your data, then run the skill

Sign in with Google, connect your accounts and add Caybl.ai to Claude. Google Analytics is free.

Get started free →