Google Search Console
Identify pitfalls in Google Search Console API queries to avoid silent errors.
Installation
- Make sure Claude is on your device and in your terminal.
Skills load from
~/.claude/skills/when Claude Code starts up β so you need it on your machine first. If you don't have it yet, install it once with the command below, then runclaudein any terminal to verify.One-time setupnpm i -g @anthropic-ai/claude-codeAlready have it? Skip ahead.
- Paste into Claude Code or into your terminal.
This copies the whole skill folder into
~/.claude/skills/google-search-console-superdesigndev/β the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.Faster alternative (instruction-only skills)
Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates β they won't be downloaded and the skill will fail when it tries to load them.
Quick install (SKILL.md only)Sign up to copy - Restart Claude Code.
Quit and reopen Claude Code (or any other agent that loads from
~/.claude/skills/). New skills are picked up on startup. - Just ask Claude.
Skills auto-activate when your request matches the skill's description β no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the βWhat this skill doesβ section above.
Prefer to read the source first? Open on GitHub.
When Claude uses it
Traps to avoid when querying Google Search Console through treg β cases where the API returns a confident wrong answer instead of an error, especially around totals and recent-date trends. Use whenever answering questions about organic search clicks, impressions, rankings, or index status.
What this skill does
Search Console via treg β what will silently mislead you
You already know the Search Console API. This file is only the things that return a plausible
wrong answer with no error. Verified live on 2026-07-22 against sc-domain:example.com, with
each trap confirmed by watching three independent agents.
Site id: treg connections ls β resource_ref. If it's empty, no site is pinned β list them
with treg connections resources <id> and say which one you chose and why. Don't present an
inferred site as configured, and don't report the blank as a fault β it isn't one.
When nothing is pinned and the question doesn't name a site, pick the site whose domain matches
the question and state that you inferred it. Note that subdomains are separate properties, so
sc-domain:example.com and sc-domain:app.example.com are different answers β say which you used.
1. Recent days are incomplete β do not report them as a trend
3 of 3 agents concluded "organic traffic is down ~47%". It wasn't.
GSC lags ~2β3 days and simply omits missing days β a 14-day request returns 11β12 rows with no warning. Worse, the newest present days read low. The tail looked like this:
07-15: 640 07-16: 610 07-17: 500 07-18: 520 07-19: 430 β last 3 days incomplete
Cross-checked against GA4 organic sessions for the same dates, the decline does not exist β and GA4 shows 07-20 and 07-21 recovering to 746 and 849, days GSC hasn't reported at all.
Two rules:
- End ranges β₯3 days before today, and never start a window on a local peak.
- Before calling any GSC trend real, cross-check GA4 organic sessions for the same dates. Two independent sources disagreeing means the GSC tail is an artifact.
2. Dimension sums do NOT equal site totals
Illustrative (the point is that dimension sums miss the true total, not the absolutes):
| Grouped by | Rows | Impressions | vs true total |
|---|---|---|---|
query | 4,219 | ~31% β loses ~69% | |
page | 1,161 | ~151% β overcounts ~51% | |
date | 28 | (true total) | 100% β |
| (none) | 1 | (true total) | 100% β |
query undercounts because Google drops anonymised rare queries; page overcounts because one
SERP impression showing several of your pages counts once per page. (Numbers measured;
mechanisms are the standard explanation, not measured.)
Never sum a dimension to report a total β especially for "how much traffic do my top queries drive?", where summing understates organic traffic by ~69% with total confidence.
3. searchAppearance cannot be combined with any other dimension
Fails loudly with a 400: "Cannot group by search appearance dimension together with another dimension." Query it alone β and note that a sparse result there is a correct answer, not a bug.
4. Two API surfaces on one host
webmasters/v3/...β search analytics, sitemapsv1/urlInspection/index:inspectβ URL Inspection
Guessing webmasters/v3/urlInspection/... returns a Google HTML 404, not a JSON error. Two of
three agents hit this. The HTML-vs-JSON tell is worth knowing generally: HTML means the path never
routed.
Everything else
Standard API. ctr is a fraction (0.0882 = 8.82%); position is an average, so don't average it
across rows. rowLimit accepts 25000 (default reported as 1000 β unverified). Sitemap
contents[].indexed returned "0" for a fully-indexed site with 1,079 URLs β use URL Inspection
for real index status. Subdomains are separate properties.
Both sc-domain:example.com and sc-domain%3Aexample.com work in the path β verified via the
audit log. Encoding is optional; don't debug a 403 by adding it.
β οΈ Unverified: URL-prefix properties (https://example.com/, trailing slash) β none available
to test. A 403 is reported to usually mean the wrong property form rather than missing permission.
Writes (PUT/DELETE on sitemaps) change what Google crawls. Untested by design β get an
explicit target and human go-ahead first.
- Search Analytics query: https://developers.google.com/webmaster-tools/v1/searchanalytics/query
- URL Inspection: https://developers.google.com/webmaster-tools/v1/urlInspection.index/inspect
- Freshness & anonymisation: https://support.google.com/webmasters/answer/7576553
Related skills
Generative Code Art
anthropics
Create algorithmic art with p5.js using randomness and interactive parameters.
Poster & Visual Design
anthropics
Create original posters and visual art in PNG and PDF formats.
Claude API Helper
anthropics
Build, debug, and optimize Claude API applications with caching and model migration support.
MCP Server Builder
anthropics
Build protocol servers that connect language models to external APIs and services.