Installation
$npx skills add YogeshKu7877/claude-seo-skills --skill seo-gsc-overviewSummary
The agent can fetch and format a 28-day Google Search Console performance snapshot (clicks, impressions, CTR, position) with top 25 queries and pages. Invoke when the user requests GSC data, search console performance, or organic visibility metrics.
SKILL.MD
GSC Overview — Performance Dashboard
@skills/seo/references/mcp-degradation.md @skills/seo/references/gsc-api-reference.md
Shows actual GSC performance data for the last 28 days: total clicks, impressions, CTR, average position, top 25 queries, and top 25 pages.
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
references/mcp-degradation.mdand stop:
## Google Search Console MCP Not Available
The `/seo gsc overview` 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
site: The GSC property URL. Accept both formats:- Domain property:
sc-domain:example.com - URL prefix:
https://example.comorhttps://www.example.com - If user provides a bare domain (no prefix, e.g.
example.com), calllist_sitesto help identify the correct property format registered in GSC.
- Domain property:
Date Calculation
Use Bash to calculate dates (GSC data has ~3 day delay):
endDate=$(date -v-3d +%Y-%m-%d)
startDate=$(date -v-31d +%Y-%m-%d)
echo "endDate: $endDate | startDate: $startDate"
This gives a 28-day window ending 3 days ago.
Execution
Step 1 — Top Queries (28 days):
Call query_search_analytics with:
siteUrl: the site propertystartDate: calculated startDateendDate: calculated endDatedimensions:["query"]rowLimit: 25
Step 2 — Top Pages (28 days):
Call query_search_analytics with:
siteUrl: the site propertystartDate: calculated startDateendDate: calculated endDatedimensions:["page"]rowLimit: 25
Step 3 — Top Pages by Clicks:
Call get_top_pages with:
siteUrl: the site propertystartDate: calculated startDateendDate: calculated endDatesortBy:"clicks"limit: 25
Aggregation: From Step 1 results, compute totals by summing across all returned rows:
- Total Clicks = sum of all
clicks - Total Impressions = sum of all
impressions - Avg CTR = (sum of clicks / sum of impressions) * 100 — format as X.XX%
- Avg Position = weighted average of
positionby impressions
CTR display rule: API returns CTR as decimal (0.0523) — always multiply by 100 for display (show 5.23%).
Output Format
## GSC Overview: [site property]
**Period:** [startDate] to [endDate] (28 days)
### Summary
| Metric | Value |
|--------|-------|
| Total Clicks | [number] |
| Total Impressions | [number] |
| Average CTR | [X.XX%] |
| Average Position | [X.X] |
### Top 25 Queries
| Query | Clicks | Impressions | CTR | Position |
|-------|--------|-------------|-----|----------|
| [query] | [clicks] | [impressions] | [X.XX%] | [X.X] |
...
### Top 25 Pages
| Page URL | Clicks | Impressions | CTR | Position |
|----------|--------|-------------|-----|----------|
| [url] | [clicks] | [impressions] | [X.XX%] | [X.X] |
...
Sort queries by clicks descending. Sort pages by clicks descending.
Truncate long URLs to 60 characters with ... for readability.