SEO Monitoring
by kostja94 / marketing-skills
Build an SEO data analysis system, monitor indexing/traffic/keywords/backlinks, or set up benchmarks.
Review how a Seolyticize client's tracked keywords moved and why.
Listed ·Updated
Install data from skills.sh
Rank Tracking Review is an Analytics and Rank Tracking skill for AI agents, published in the seoskills.sh catalog. Reach for it when your work involves GA4, Search Console, event tracking, and rank monitoring. Install it with one command and it runs inside your own agent, so the work happens in your workflow, not a separate SEO tool.
Outcome: a short account of what moved, the likely cause of each significant move with its evidence, and one action per pattern. It reads stored captures, so it is free. The only paid steps are a fresh capture and AI Mode reads, and both are quoted first.
clientId from list_clients. Read get_client_brief for the goal, key pages and earlier research notes.list_rank_trackers gives the tracker ids, with engine, device, cadence and locale. A tracker that reads both devices has two separate series. Review each device on its own; never average them.list_tracked_keywords shows the terms and competitors. Pinned keywords are the ones the team agreed matter, so they lead the review.Headline. get_rank_summary counts keywords improved, declined and held, with the average position.
Shape. get_position_distribution over 30 or 90 days, with the device set. Is the 1–3 and 4–10 share growing?
Is it us or Google?
get_serp_volatility compares the client's daily movement index with an industry-wide one and lists Google updates in the window.list_annotations (with Google updates on by default) and get_search_timeline put deploys, publishes and campaigns beside traffic.Movers. get_rank_history for the biggest movers (keywordIds, days, device). It gives each day's position, the ranking page and the features on the results page.
URL swaps. get_url_swaps lists keywords whose ranking page changed, including pages taking turns and keywords where several pages rank at once.
get_cannibalization (one snapshot, with the registered owner and shouldOwn) and get_landing_pages (which pages carry the rankings).get_query_page_swaps reads Search Console.SERP features.
get_serp_features shows which features appear on each keyword and which the client holds. Its imagePresence section lists keywords where the client ranks but has no image in the pack. Features are null when the capture's source did not report them; that is not the same as none.get_serp_intent_shifts lists keywords whose results page changed character, such as an AI Overview or shopping arriving.get_ai_overview_citations shows whether the client is cited in AI Overviews and who is, from stored captures.AI Mode. get_tracker_ai_mode puts beside each latest position whether Google AI Mode cites the client, and which domains it does cite. It is one paid read per keyword, up to limit. Quote it with estimate_cost, tell the user the total, then call it with the quote as maxCostMicros. Use it for the pinned or money keywords, not the whole tracker.
Who moved in. get_serp_newcomers lists domains new to the top 20 this week. get_competitor_page_changes shows what the pages above the client changed (title, H1, length, sections).
Fresh data, only if needed. If the latest capture is old and the user needs today's positions:
refresh_rankings is paid, every keyword on every device. Quote it with estimate_cost, tell the user, and pass maxCostMicros.get_run_status with job rank, then re-read.next step; follow it.Annotate. Ask before writing. If the review uncovered a cause the timeline lacks, such as a deploy or a content change, add_annotation records it for the next review. pin_tracked_keywords and tag_keywords keep the agreed keywords at the top and grouped.
Record. Call update_client_brief with a research entry holding the findings. If the user wants it for the client, save it with save_written_report. Never create share links (create_report_link, set_report_sharing) unless asked.
Read references/movement-patterns.md for the full pattern → cause → action table, including device splits and local trackers.
next step. get_error_catalogue lists every code.refresh_rankings, get_tracker_ai_mode, get_serp_history, get_ai_mode_answer, get_live_serps) are quoted with estimate_cost, or run with dryRun: true, first. Check get_budget_status (free) if spend looks high.Idempotency-Key on writes.| Keyword | Device | Was → now | Ranking page (changed?) | Cause | Evidence | Action |
|---|
Not using the CLI? Copy the SKILL.md and paste it straight into ChatGPT, Claude, or any agent.