When the user wants to analyze Google Search Console data, use the GSC API, or interpret search performance. Also use when the user mentions "GSC," "Search Console," "indexing report," "Core Web Vitals," "Enhancements," "Insights report," "search performance," "search queries," "search performance report," "URL inspection," "impressions," "CTR," "average position," "index coverage," "GSC data analysis," "Search Console API," or "searchanalytics.query." When the user wants to rewrite title tags (not only report on them), use title-tag. For meta description rewrites, use meta-description.
npx skills add https://github.com/kostja94/marketing-skills --skill google-search-console
Guides analysis of Google Search Console (GSC) data: performance metrics, indexing, sitemaps, Core Web Vitals, and rich results. Covers best practices for monthly monitoring and actionable insights.
When invoking: On first use, if helpful, open with 1-2 sentences on what this skill covers and why it matters, then provide the main output. On subsequent use or when the user asks to skip, go directly to the main output.
| Practice | Why |
|----------|-----|
| Focus one metric at a time | Stacked bar charts hide fluctuations; toggle off other metrics to see each clearly |
| Don't compare just two points | End-of-month vs prior month misses mid-month drama; examine full trend |
| Check beyond top 10 | Many reports default to top 10; scroll or paginate for more rows |
| Screenshot charts | GSC retains limited history; save images for future reference |
| Record in spreadsheet | Export at month-end; use formulas to track correlations over time |
| Track release dates | Join dev standups, read release notes; correlate GSC shifts with deployments |
Location: Performance ? Search results
| Metric | Use |
|--------|-----|
| Clicks | Traffic from Google Search |
| Impressions | How often site appeared in results |
| CTR | Whether users think page answers query |
| Average position | Ranking trend |
Dimensions: Query, page, country, device, date. Filter by search type: web, image, video, news. Use to find low-CTR high-impression pages (title/meta optimization opportunities).
Search appearance: AMP, blue link, rich results (filterable in UI and API).
Use to compare actual CTR vs expected. Benchmarks vary by SERP features (AI Overviews, featured snippets). Zero-click: When SERP features satisfy intent without a click, organic CTR drops; factor into expectations. See serp-features (Zero-Click section), featured-snippet. Clean SERPs:
| Position | Expected CTR (baseline) | With AI Overviews (lower) |
|----------|-------------------------|---------------------------|
| 1 | 25-35% | ~19% |
| 2 | 12-18% | ~12% |
| 3 | 8-12% | ~7% |
| 4-5 | 5-7% | ~5% |
| 6-10 | 2-5% | 2-5% |
Interpretation: If actual CTR is below expected for your position, prioritize title/meta optimization. Over 90% of first-page results have CTR below 10%; significant upside exists.
Pages with review stars, FAQ schema, or other rich snippets see 10-20% more clicks. See schema-markup.
Location: Performance ? Insights (or Overview)
Simplified overview; replaces standalone Search Console Insights. Data from GSC only (GA data removed Dec 2024).
| Card | Use |
|------|-----|
| Clicks and impressions | Site visibility and click effectiveness |
| Your content | Top, trending up, trending down pages |
| Queries leading to your site | Top, trending up, trending down queries |
| Top countries | Geographic audience |
| Branded vs non-branded | Brand recognition (AI-labeled; may mislabel) |
| Additional traffic sources | Image, Video, News search, Discover |
Trending: Based on click change vs previous period. Click items to jump to Performance report filtered to that item.
Query groups: Similar queries grouped; group name = best-performing query. Not available for sub-properties or low-impression sites.
Location: Indexing ? Page indexing
Status grouping (updated): Valid + Valid with warning ? Indexed. Error + Excluded ? Not indexed.
Indexed vs Not indexed are complementary: Not all site content should be indexed. Login, admin, duplicate content, legal boilerplate, and low-value pages often intentionally use noindex. Indexed and non-indexed pages can reference each other (e.g., sitemap includes indexable URLs; noindex pages still exist and link internally). Non-indexed is not inherently a problem--investigate only when important pages are excluded. See indexing (noindex usage) and robots-txt (crawl control) for when to exclude.
| Metric | Action |
|--------|--------|
| Pages indexed | Turn off "Pages not indexed" to view alone; watch for drops |
| Pages not indexed | Turn off "Pages indexed" to view alone; watch for spikes. Distinguish intentional (noindex, robots) from accidental |
Filter: All submitted pages / Unsubmitted pages only (dropdown near top).
Source column: Indicates whether issue is caused by website or Google.
Why pages are not indexed: Drill into reasons and example URLs. Common culprits:
Quick check: If trend line is stable, spend ~3 seconds; move on. Investigate if fourth column (trend) shifts.
Diagnosis workflow: GSC Coverage ? click Issue ? view sample URLs ? identify pattern ? fix (see indexing for fix actions).
Coverage issue types:
| Issue | Meaning | Next step |
|-------|---------|-----------|
| Crawled - currently not indexed | Crawled but not indexed | See indexing |
| Excluded by "noindex" tag | Intentionally excluded; often valid (login, admin, legal, etc.) | Ignore if expected; verify important pages not accidentally noindexed |
| Blocked by robots.txt | Crawl blocked | See robots-txt; may be intentional |
| Redirect / 404 | Redirect or missing | Fix URL or redirect |
| Duplicate / Canonical | Duplicate content | Usually OK; keep canonical |
URL Inspection: Verdicts: "URL is on Google," "URL is on Google, but has issues," "URL is not on Google." Use for important pages; verify canonical, internal links, sitemap; Request indexing if needed.
Location: Indexing ? Video indexing
See video-optimization for video SEO; youtube-seo for YouTube.
Location: Indexing ? Sitemaps
| Check | Action |
|------|--------|
| Status | Confirm each sitemap says "Success" |
| URLs indexed | Click sitemap ? see indexed count; drops indicate indexing issues |
| Bellwether sitemaps | For large sites, monitor templated sitemaps (by country, language, division) |
Enterprise: Glitches can block new URL crawling, cause hreflang confusion, delay fresh content discovery.
Location: Experience ? Core Web Vitals
Priority: Mobile first (Google's higher expectations for mobile).
| Metric | Mobile | Desktop |
|--------|-------|---------|
| Good URLs | Target | Secondary |
| Needs improvement | Fix | Monitor |
| Poor URLs | Fix | Monitor |
Why URLs don't have good score: Click "Open report" → grouped example URLs by issue type. For threshold values and fixes, see core-web-vitals.
Tip: Historical chart is short; export to spreadsheet for longer trends. Share with dev team regularly; correlate dates with releases.
Layout (updated): Two tables--Poor or Need improvement; Good (click "View data about usable pages").
Location: Experience ? Enhancements (Product snippets, Merchant listings under Shopping)
Status (updated): Two-tier?*invalid* (critical issues, may not appear) vs valid (no critical issues; may still have warnings). Warnings no longer top-level.
| Type | Examples |
|------|----------|
| Content | Breadcrumbs, FAQ, Events, Videos (see video-optimization), Job postings, Review snippets, Q&A, Discussion forums |
| Shopping | Product snippets, Merchant listings |
| Other | Recipes, Datasets, Hotels, Vacation rentals, Profile pages, Practice problems, Math solvers, Image metadata |
Note: Reports show sample items, not full list. Use URL Inspection for unlisted URLs.
(?i)^(who|what|where|when|why|how|which|is|are|can|does|should)|\b(vs|versus|compare|difference|pros and cons|guide|tutorial|best|top|list)\b
For GA4 AI traffic tracking, see ai-traffic-tracking.
Location: Links (inbound links), Security & Manual Actions
Method: searchanalytics.query() --exposes all Performance report data.
Clicks, Impressions, CTR, Position.
date, query, page, country, device. Search appearance (AMP, blue link, rich results). Filter by search type: web, image, video, news.
| Limit | Value |
|-------|-------|
| Rows per day per search type per property | 50,000 |
| Rows per response | 25,000 (use pagination: startRow, rowLimit) |
| Data availability | 2-3 days after |
Tip: Run daily queries for one day of data to avoid quota. Verify data presence first (dimensions: date only, no filters).
Optimization: Gzip compression; fields parameter for partial responses; pagination for large datasets.
References: Search Console API, searchanalytics.query
Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas
Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like \"the xlsx in my downloads\") — and wants something done to it or produced from it. Also trigger for cleaning or restructuring messy tabular data files (malformed rows, misplaced headers, junk data) into proper spreadsheets. The deliverable must be a spreadsheet file. Do NOT trigger when the primary deliverable is a Word document, HTML report, standalone Python script, database pipeline, or Google Sheets API integration, even if tabular data is involved.
Picks random winners from lists, spreadsheets, or Google Sheets for giveaways, raffles, and contests. Ensures fair, unbiased selection with transparency.
Query openFDA API for drugs, devices, adverse events, recalls, regulatory submissions (510k, PMA), substance identification (UNII), for FDA regulatory data analysis and safety research.
MATLAB and GNU Octave numerical computing for matrix operations, data analysis, visualization, and scientific computing. Use when writing MATLAB/Octave scripts for linear algebra, signal processing, image processing, differential equations, optimization, statistics, or creating scientific visualizations. Also use when the user needs help with MATLAB syntax, functions, or wants to convert between MATLAB and Python code. Scripts can be executed with MATLAB or the open-source GNU Octave interpreter.
UMAP dimensionality reduction. Fast nonlinear manifold learning for 2D/3D visualization, clustering preprocessing (HDBSCAN), supervised/parametric UMAP, for high-dimensional data.
Creating interactive data visualisations using d3.js. This skill should be used when creating custom charts, graphs, network diagrams, geographic visualisations, or any complex SVG-based data visualisation that requires fine-grained control over visual elements, transitions, or interactions. Use this for bespoke visualisations beyond standard charting libraries, whether in React, Vue, Svelte, vanilla JavaScript, or any other environment.
Access AlphaFold 200M+ AI-predicted protein structures. Retrieve structures by UniProt ID, download PDB/mmCIF files, analyze confidence metrics (pLDDT, PAE), for drug discovery and structural biology.
Take kostja94/google-search-console from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.