Claude-seo-skills seo-gsc-drops
install
source · Clone the upstream repo
git clone https://github.com/lionkiii/claude-seo-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/lionkiii/claude-seo-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/seo-gsc-drops" ~/.claude/skills/lionkiii-claude-seo-skills-seo-gsc-drops && rm -rf "$T"
manifest:
skills/seo-gsc-drops/SKILL.mdsource content
GSC Drops — Ranking Drop Detection
@skills/seo/references/mcp-degradation.md @skills/seo/references/gsc-api-reference.md
Identifies pages and keywords that lost clicks between the last 28 days and the prior 28-day period. Sorts by biggest losses first. Highlights CRITICAL drops (>50% loss).
MCP Check
Before calling any GSC tool, verify the MCP is connected:
- Use ToolSearch with query
+google-search-console - If tools returned — note the actual tool name prefix, proceed to Inputs
- If no tools returned — display the GSC MCP error template from
and stop:references/mcp-degradation.md
## Google Search Console MCP Not Available The `/seo gsc drops` command requires the GSC MCP, which is not currently connected. **What you can do:** - Use `/seo technical <url>` for crawlability and indexability analysis (no live data) - Use `/seo audit <url>` for a full static SEO audit **To connect GSC MCP:** - Install and configure a Google Search Console MCP server (see README for setup) - Add it to ~/.claude/mcp.json at user scope (NOT project scope) - Verify GSC property access before running commands (domain vs URL prefix format) - See references/gsc-api-reference.md for property format details
Inputs
: The GSC property URL. Accept both formats:site- Domain property:
sc-domain:example.com - URL prefix:
orhttps://example.comhttps://www.example.com - If user provides a bare domain (no prefix), call
to identify the correct property format registered in GSC.list_sites
- Domain property:
Date Calculation
Use Bash to calculate the two comparison periods (GSC has ~3 day delay):
currentEnd=$(date -v-3d +%Y-%m-%d) currentStart=$(date -v-31d +%Y-%m-%d) previousEnd=$(date -v-31d +%Y-%m-%d) previousStart=$(date -v-59d +%Y-%m-%d) echo "Current: $currentStart to $currentEnd | Previous: $previousStart to $previousEnd"
Execution
Step 1 — Page-level comparison: Call
compare_performance with:
: the site propertysiteUrl
: currentStartcurrentStartDate
: currentEndcurrentEndDate
: previousStartpreviousStartDate
: previousEndpreviousEndDate
:dimension"page"
: 500limit
Step 2 — Query-level comparison: Call
compare_performance with the same date params but:
:dimension"query"
: 500limit
Post-processing:
- Filter Step 1 results to rows where
(pages that lost clicks)clicksChange < 0 - Filter Step 2 results to rows where
(queries that lost clicks)clicksChange < 0 - Sort both lists by
ascending (biggest losses first)clicksChange - For each row, calculate change percentage if not provided:
changePercent = (clicksChange / previousClicks) * 100 - Mark rows with
as CRITICALchangePercent < -50
Output Format
## GSC Drops: [site property] **Current Period:** [currentStart] to [currentEnd] **Previous Period:** [previousStart] to [previousEnd] ### Top Dropping Pages | Page URL | Current Clicks | Previous Clicks | Change | Change% | Severity | |----------|---------------|-----------------|--------|---------|----------| | [url] | [n] | [n] | [n] | [X.X%] | CRITICAL / — | ... ### Top Dropping Queries | Query | Current Clicks | Previous Clicks | Change | Change% | Severity | |-------|---------------|-----------------|--------|---------|----------| | [query] | [n] | [n] | [n] | [X.X%] | CRITICAL / — | ... **Note:** CRITICAL = more than 50% drop in clicks between periods.
Show top 25 dropping pages and top 25 dropping queries. Truncate long URLs to 60 characters with
... for readability.
If no drops detected, report: "No pages or queries lost clicks between the two periods."