gsc-cli 2.1.0 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/AUTH.md +4 -1
- data/README.md +448 -408
- data/bin/gsc +28067 -5661
- data/dist/gsc +29121 -5046
- data/lib/gsc/aio_hunter.rb +343 -0
- data/lib/gsc/answer_synthesizer.rb +157 -0
- data/lib/gsc/api.rb +53 -1
- data/lib/gsc/auth.rb +26 -0
- data/lib/gsc/brand_segmenter.rb +140 -0
- data/lib/gsc/cache_manager.rb +806 -0
- data/lib/gsc/cannibalization_analyzer.rb +141 -0
- data/lib/gsc/canonical_chains.rb +367 -0
- data/lib/gsc/citation_simulator.rb +339 -0
- data/lib/gsc/cli/aio_hunter.rb +154 -0
- data/lib/gsc/cli/analytics.rb +788 -0
- data/lib/gsc/cli/audit.rb +1976 -0
- data/lib/gsc/cli/base.rb +384 -0
- data/lib/gsc/cli/cache.rb +266 -0
- data/lib/gsc/cli/canonical.rb +223 -0
- data/lib/gsc/cli/citation_simulator.rb +152 -0
- data/lib/gsc/cli/dashboard.rb +354 -0
- data/lib/gsc/cli/doctor.rb +129 -0
- data/lib/gsc/cli/eeat.rb +125 -0
- data/lib/gsc/cli/ga4.rb +852 -0
- data/lib/gsc/cli/growth.rb +650 -0
- data/lib/gsc/cli/hreflang.rb +164 -0
- data/lib/gsc/cli/image_seo.rb +162 -0
- data/lib/gsc/cli/indexing.rb +458 -0
- data/lib/gsc/cli/intent_shift.rb +125 -0
- data/lib/gsc/cli/keyword_value.rb +134 -0
- data/lib/gsc/cli/keywords.rb +795 -0
- data/lib/gsc/cli/landing_roi.rb +308 -0
- data/lib/gsc/cli/low_ctr.rb +213 -0
- data/lib/gsc/cli/mobile_parity.rb +150 -0
- data/lib/gsc/cli/report.rb +100 -0
- data/lib/gsc/cli/rich_results.rb +172 -0
- data/lib/gsc/cli/schema_generate.rb +149 -0
- data/lib/gsc/cli/seasonal.rb +232 -0
- data/lib/gsc/cli/security.rb +153 -0
- data/lib/gsc/cli/setup.rb +1291 -0
- data/lib/gsc/cli/sitemap_tree.rb +143 -0
- data/lib/gsc/cli/skill_pack.rb +62 -0
- data/lib/gsc/cli/soft_404.rb +199 -0
- data/lib/gsc/cli/sparkline.rb +227 -0
- data/lib/gsc/cli/watchdog.rb +150 -0
- data/lib/gsc/cli/zombie_purger.rb +208 -0
- data/lib/gsc/cli.rb +707 -5265
- data/lib/gsc/cli_advanced.rb +987 -44
- data/lib/gsc/client.rb +17 -2
- data/lib/gsc/color.rb +16 -1
- data/lib/gsc/command_registry.rb +47 -9
- data/lib/gsc/config.rb +2 -2
- data/lib/gsc/ctr_curve.rb +115 -0
- data/lib/gsc/decay_predictor.rb +322 -0
- data/lib/gsc/doctor.rb +434 -0
- data/lib/gsc/eeat_auditor.rb +428 -0
- data/lib/gsc/entity_auditor.rb +229 -0
- data/lib/gsc/firewall_scanner.rb +733 -0
- data/lib/gsc/geo_auditor.rb +368 -0
- data/lib/gsc/google_trends.rb +8 -1
- data/lib/gsc/heading_validator.rb +283 -0
- data/lib/gsc/hreflang_validator.rb +412 -0
- data/lib/gsc/image_seo.rb +286 -0
- data/lib/gsc/indexing_queue.rb +179 -0
- data/lib/gsc/indexnow.rb +93 -0
- data/lib/gsc/intent_shift.rb +188 -0
- data/lib/gsc/internal_links.rb +153 -36
- data/lib/gsc/keyword_value.rb +191 -0
- data/lib/gsc/landing_roi.rb +195 -0
- data/lib/gsc/llms_generator.rb +343 -22
- data/lib/gsc/low_ctr_rewriter.rb +408 -0
- data/lib/gsc/mobile_parity.rb +222 -0
- data/lib/gsc/network_tracer.rb +8 -1
- data/lib/gsc/page_analyzer.rb +47 -7
- data/lib/gsc/prompts.rb +38 -29
- data/lib/gsc/questions_harvester.rb +178 -0
- data/lib/gsc/report_generator.rb +461 -0
- data/lib/gsc/rich_results.rb +388 -0
- data/lib/gsc/robots_checker.rb +46 -15
- data/lib/gsc/schema_generator.rb +788 -0
- data/lib/gsc/schema_validator.rb +36 -38
- data/lib/gsc/seasonal_predictor.rb +381 -0
- data/lib/gsc/security_scanner.rb +496 -0
- data/lib/gsc/serp_feature_detector.rb +359 -0
- data/lib/gsc/serp_preview.rb +108 -22
- data/lib/gsc/site_crawler.rb +113 -21
- data/lib/gsc/sitemap_loader.rb +15 -4
- data/lib/gsc/sitemap_tree.rb +301 -0
- data/lib/gsc/skill_pack.rb +195 -0
- data/lib/gsc/soft_404_analyzer.rb +385 -0
- data/lib/gsc/sparkline.rb +171 -0
- data/lib/gsc/speed_correlator.rb +416 -0
- data/lib/gsc/striking_playbook.rb +190 -0
- data/lib/gsc/title_optimizer.rb +420 -0
- data/lib/gsc/vault.rb +260 -0
- data/lib/gsc/version.rb +1 -1
- data/lib/gsc/watchdog.rb +235 -0
- data/lib/gsc/zombie_purger.rb +366 -0
- data/lib/gsc.rb +118 -0
- metadata +75 -1
data/README.md
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
# 🚀 GSC
|
|
1
|
+
# 🚀 GSC-CLI: The Zero-Gem Google Search Console & Technical SEO Engine in Pure Ruby
|
|
2
2
|
|
|
3
3
|
> **Zero Gem Dependencies.** Pure Ruby standard library (`Net::HTTP`, `OpenSSL`, `JSON`).
|
|
4
|
-
> Sub-
|
|
4
|
+
> **Sub-millisecond Google Search Console inspection, instant Googlebot indexing, and AI Overview detection in pure standard library.** Extract first-party Google rankings, automate technical SEO audits, and generate server-side remediation rules in **< 50 milliseconds** with zero external dependencies.
|
|
5
5
|
|
|
6
6
|
[](https://www.ruby-lang.org)
|
|
7
7
|
[](https://rubygems.org/gems/gsc-cli)
|
|
8
8
|
[](#)
|
|
9
9
|
[](LICENSE)
|
|
10
|
-
[](#-complete-cli-command-reference-80-commands)
|
|
11
|
+
[](#8-agency-credential-vault-gsc-vault)
|
|
11
12
|
[](#-ai-agent-native-integration-antigravity-claude-cursor)
|
|
13
|
+
[](https://github.com/ApollosWave/gsc-cli)
|
|
12
14
|
|
|
13
15
|
---
|
|
14
16
|
|
|
@@ -19,45 +21,107 @@
|
|
|
19
21
|
|
|
20
22
|
<p align="center">
|
|
21
23
|
<sub>Explore other software built by our team:</sub><br>
|
|
22
|
-
⚡ <a href="https://superspeedapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli"><b>Superspeed</b></a> — Shopify speed, CRO & revenue leak intelligence app (5.0 ★)<br>
|
|
23
|
-
🛒 <a href="https://supercartapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli"><b>Supercart</b></a> —
|
|
24
|
-
📦 <a href="https://packinglog.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli"><b>PackingLog</b></a> —
|
|
24
|
+
⚡ <a href="https://superspeedapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli"><b>Superspeed</b></a> — Built for Shopify speed, CRO & revenue leak intelligence app (5.0 ★)<br>
|
|
25
|
+
🛒 <a href="https://supercartapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli"><b>Supercart</b></a> — Built for Shopify slide cart drawer, in-house shipping protection & upsells (5.0 ★)<br>
|
|
26
|
+
📦 <a href="https://packinglog.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli"><b>PackingLog</b></a> — Our newly launched physical moving inventory and QR-code tracking SaaS — where waiting weeks for Googlebot to discover new landing pages wasn't an option.
|
|
25
27
|
</p>
|
|
26
28
|
|
|
27
29
|
---
|
|
28
30
|
|
|
29
|
-
## ⚡
|
|
31
|
+
## ⚡ Why We Built This: Escaping the 40-Gem Tax
|
|
30
32
|
|
|
31
|
-
Every software
|
|
33
|
+
Every software engineer, technical SEO, and developer-operator managing search presence faces the exact same architectural frustrations:
|
|
32
34
|
|
|
33
|
-
1. **
|
|
34
|
-
2. **
|
|
35
|
-
3. **Google Search Console's Web UI
|
|
36
|
-
4. **AI
|
|
35
|
+
1. **The 40-Gem Dependency Tax**: The official Google API Ruby gems (`google-apis-searchconsole_v1`, `google-apis-indexing_v3`, `googleauth`, `signet`, `faraday`) pull in **40+ transitive gem dependencies**. They add 3 to 5 seconds to cold-boot time, trigger Bundler version conflicts, inflate container image sizes, and introduce ongoing supply-chain vulnerability alerts.
|
|
36
|
+
2. **Paying $300 to $1,000+/Month for Sampled Guesswork**: Third-party SEO suites charge hundreds of dollars per month to scrape search results with external proxy farms and estimate traffic using sampled third-party panels. Meanwhile, **Google Search Console provides 100% first-party ground-truth data** for your domain directly from production search logs—completely free.
|
|
37
|
+
3. **Google Search Console's Web UI Does Not Scale**: Inspecting 50 URLs, isolating soft-404 indexation drops, or detecting cannibalization across multiple client properties requires hours of manual tab switching, filtering, and clicking.
|
|
38
|
+
4. **Google AI Overviews (AIO) Intercepting Search Clicks**: Zero-click searches continue to expand. If technical content is not structured for citation in Gemini and AI Overviews, organic visibility drops even when ranking on Page 1.
|
|
39
|
+
5. **AI Coding Agents Cannot Click Web Buttons**: Modern coding agents (Antigravity, Claude Code, Cursor, Cline) require deterministic, sub-50ms JSON over stdout to diagnose and fix search issues directly inside the local repository.
|
|
37
40
|
|
|
38
|
-
### The
|
|
39
|
-
At **[ApollosWave](https://apolloswave.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**, we run multiple production software businesses—from Shopify revenue & speed intelligence (**[Superspeed](https://superspeedapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**) and e-commerce upsell apps (**[Supercart](https://supercartapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**) to physical moving inventory SaaS (**[PackingLog](https://packinglog.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**).
|
|
41
|
+
### 🛠️ Battle-Tested in Production (The Origin)
|
|
40
42
|
|
|
41
|
-
|
|
43
|
+
`gsc-cli` was not engineered in a vacuum or built as a synthetic demo.
|
|
42
44
|
|
|
43
|
-
|
|
45
|
+
At **[ApollosWave](https://apolloswave.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**, we operate multiple high-throughput production applications:
|
|
46
|
+
- **[Superspeed](https://superspeedapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**: Automated Core Web Vitals, INP, and speed intelligence for high-volume Shopify storefronts.
|
|
47
|
+
- **[Supercart](https://supercartapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**: High-converting slide cart and upsell infrastructure processing real-time e-commerce checkouts.
|
|
48
|
+
- **[PackingLog](https://packinglog.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**: Our newly launched physical moving inventory and QR-code tracking SaaS — where waiting weeks for Googlebot to discover new landing pages wasn't an option.
|
|
49
|
+
|
|
50
|
+
Managing Search Console indexing, sitemap trees, and SERP positions across these live codebases meant either pulling in 40+ bloated API gems, burning hours clicking in Google's web UI, or paying thousands every year for sampled proxy scrapers.
|
|
51
|
+
|
|
52
|
+
We built **`gsc-cli`** as our internal engine to automate Googlebot indexing and search diagnostics in **< 50 milliseconds** using pure standard-library Ruby.
|
|
53
|
+
|
|
54
|
+
We open-sourced it 100% free under the MIT License so every builder, engineering team, and operator can run first-party search automation with zero dependency bloat.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## 📐 Core Engineering Principles
|
|
59
|
+
|
|
60
|
+
1. **First-Party Ground Truth Over Guesswork**: Third-party estimation suites rely on sampled clickstream models and external proxy scraping. Google Search Console stores the exact, 100% first-party click, impression, and position data directly from Google's search infrastructure—completely free.
|
|
61
|
+
2. **Zero-Dependency Purity (< 1ms Boot Time)**: Official Google API gems drag in 40+ dependency gems, slowing down boot times and creating dependency lock-in. GSC-CLI communicates directly with Google's bare-metal HTTP APIs using pure Ruby standard library (`Net::HTTP`, `OpenSSL`, `JSON`), executing in **< 1 millisecond**.
|
|
62
|
+
3. **Actionable Remediation Over Passive Error Dumps**: Most diagnostic tools dump hundreds of error rows into a table without solutions. `gsc-cli` pairs forensic diagnostics with automated remediation—such as generating copy-paste redirect blocks for 14 server environments (Nginx, Caddy, Cloudflare, Next.js, Vercel, etc.) for soft-404 traps.
|
|
63
|
+
4. **Zero-Trust Local Execution (No Telemetry, No External AI Calls)**: Developer tools should respect machine resources and codebase privacy. `gsc-cli` runs 100% locally, requires zero external LLM API keys, makes zero calls to third-party AI servers, collects zero telemetry, and never reads or transmits private repository files.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## ⚡ The Contrarian Architecture: Why Pure-Ruby Beats 40-Gem SDKs
|
|
68
|
+
|
|
69
|
+
Conventional wisdom says: *"To build Google API integrations, you must install the official Google API gems (`google-apis-searchconsole_v1`, `googleauth`)."*
|
|
70
|
+
|
|
71
|
+
**We reject that completely.**
|
|
72
|
+
|
|
73
|
+
Google's APIs are just standard, RFC-compliant HTTPS endpoints returning JSON. Forcing a developer to pull in 40+ transitive gem dependencies just to send a signed HTTP POST request is architectural malpractice:
|
|
74
|
+
- It bloats container images.
|
|
75
|
+
- It inflates Docker deployment sizes.
|
|
76
|
+
- It creates endless `bundle install` version conflicts.
|
|
77
|
+
- It slows down sub-millisecond AI agent loops.
|
|
78
|
+
|
|
79
|
+
By implementing Google's JWT service account authentication in pure `OpenSSL` and streaming responses through native `Net::HTTP` with Gzip decompression, `gsc-cli` boots in **< 1 millisecond** and executes entire multi-step audit loops in under 50 milliseconds.
|
|
44
80
|
|
|
45
81
|
---
|
|
46
82
|
|
|
47
83
|
## 💎 Key Capabilities at a Glance
|
|
48
84
|
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
85
|
+
- 🤖 **Google AI Overview (AIO) Hunter (`gsc aio-hunter`)**: Detects Google AI Overviews on SERPs, extracts cited sources, measures citation gaps, and generates snippet capture recipes.
|
|
86
|
+
- 🔮 **AI Citation Simulator (`gsc cite-sim`)**: Tests how likely LLMs (Gemini, ChatGPT, Claude) are to cite your URL based on information density, fact ratios, and structural headings.
|
|
87
|
+
- 🏦 **Agency Credential Vault (`gsc vault`)**: Local AES-256-GCM encrypted store managing 50+ service accounts with instant switching (`gsc switch <domain>`), strict POSIX permissions, and path-traversal isolation.
|
|
88
|
+
- 🚨 **Soft-404 Diagnostic Engine with Instant Fixes (`gsc soft-404 --fix nginx`)**: Diagnoses soft-404 traps and outputs copy-paste redirect blocks for 14 server stacks (Nginx, Caddy, Cloudflare, SvelteKit, Next.js, Astro, Shopify, Vercel).
|
|
89
|
+
- 🎯 **Tactical Striking Distance Playbook (`gsc strike`)**: Automatically detects high-impression Page 2 queries (Positions 4–20) paired with intent-matched title hook rewrites and internal link anchor recipes.
|
|
90
|
+
- 📉 **Organic CTR Curve Simulator (`gsc ctr-curve`)**: Non-linear regression modeling expected CTR by position and calculating exact click upside for ranking leaps.
|
|
91
|
+
- ⚡ **Ultra-Low Token Modes for AI Agents (`--compact` & `--ndjson`)**: Minified single-line JSON (`--compact`) saving 35–45% LLM context tokens, and newline-delimited streaming (`--ndjson`) for array data.
|
|
92
|
+
- 📱 **Mobile vs. Desktop SERP Parity Auditor (`gsc mobile-parity`)**: Uncovers cross-device rank discrepancies, responsive suppression penalties, and mobile CTR leaks.
|
|
93
|
+
- 🩺 **Zero-Gem Cold-Start Doctor (`gsc doctor`)**: Verifies 100% standard library purity, measures sub-50ms execution speed, and validates credential security.
|
|
94
|
+
- 📈 **Real-Time Google Trends Engine (`gsc trends`)**: 5-year and 1-year search trajectory, velocity percentages, Unicode sparklines (` ▂▃▄▅▆▇█`), and regional demand breakdowns with zero authentication.
|
|
95
|
+
- 🎯 **Zero-Auth Keyword Planner (`gsc planner`)**: Instant seed expansion via Google Autocomplete with automated search intent classification (`Informational`, `Commercial`, `Transactional`).
|
|
96
|
+
- 💰 **Keywords Everywhere Ingestion (`gsc import clip` & `gsc ke`)**: Ingest free keyword tables directly from clipboard (zero credits required) or connect a [Keywords Everywhere API key](https://keywordseverywhere.com/?fpr=us25sg) *(referral link)* for automated terminal lookups.
|
|
97
|
+
- 🚀 **Instant Googlebot Re-Indexing (`gsc index`)**: Ping Google's Indexing API with `URL_UPDATED` or `URL_DELETED` for priority crawl queueing within seconds.
|
|
98
|
+
- ⚡ **Multi-Engine IndexNow Protocol (`gsc indexnow`)**: Instantly submit pages and sitemaps across Microsoft Bing, Yandex, Seznam, and Naver simultaneously.
|
|
99
|
+
- 🖥️ **Google SERP & Title Pixel Simulator (`gsc serp`)**: Simulate desktop (580px) and mobile (650px) Google SERP cards, calculate precise proportional pixel widths, and prevent truncation before publishing.
|
|
100
|
+
- 🛡️ **Cannibalization & Decay Detection (`gsc cannibalization`, `gsc decay`)**: Spot internal URLs fighting for the same queries, and compare 28-day period-over-period traffic trends.
|
|
101
|
+
- 📊 **Google Analytics 4 (GA4) Behavioral Link (`gsc realtime`, `gsc ga4`)**: Stream live active visitors and correlate SERP rankings with landing page bounce rates.
|
|
59
102
|
- 🕷️ **Autonomous Site Audit & Broken Link Repair (`gsc site-audit`)**: Crawls all sitemap URLs, checks HTTP response codes for dead internal links (404/500/timeouts), audits missing image alts and heading defects, and exports an AI-actionable Markdown fix sprint.
|
|
60
|
-
- 🤖 **AI Agent Native**: Every single command supports `--json` for instantaneous programmatic consumption by AI agents.
|
|
103
|
+
- 🤖 **AI Agent Native**: Every single command supports `--compact`, `--ndjson`, and `--json` for instantaneous programmatic consumption by AI agents.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## ⚡ Architectural Comparison & Trade-Offs
|
|
108
|
+
|
|
109
|
+
| Traditional Stack (Official SDK / SaaS) | GSC-CLI Architecture |
|
|
110
|
+
| :--- | :--- |
|
|
111
|
+
| **Manual Web UI Bottleneck**: Clicking through 15 tabs in Google Search Console to inspect 50 URLs takes 45+ minutes. | **Instant 1-Command Batching**: `gsc inspect-sitemap sitemap.xml` inspects all URLs with automatic quota pacing in seconds. |
|
|
112
|
+
| **Sampled Third-Party Guesswork**: Paying $300–$1,000+/mo ($3,600–$12,000/yr) for external proxy scrapers that model keyword volumes. | **100% Google Ground Truth ($0)**: Raw impression, click, and position logs direct from Google Search Console. |
|
|
113
|
+
| **40-Gem Dependency Tax**: Bloating your `Gemfile` with Google SDK gems that add 3–5 seconds to cold boot. | **0 Gem Dependencies**: Pure Ruby standard library (`OpenSSL`, `Net::HTTP`, `JSON`) executing in **< 1 millisecond**. |
|
|
114
|
+
| **Multi-Client Credential Chaos**: Juggling loose JSON keys across folders and risking credential leaks. | **Agency Credential Vault (`gsc vault`)**: Local AES-256-GCM encrypted vault with instant domain switching (`gsc switch`). |
|
|
115
|
+
| **Passive Error Reporting**: Diagnostic tools tell you that you have 404s, but leave you to write the server rules. | **Active Automated Remediation**: `gsc soft-404 <url> --fix nginx` synthesizes instant, copy-paste server blocks for 14 stacks. |
|
|
116
|
+
| **Blind to AI Overviews**: Unaware that Google Gemini / AI Overviews are intercepting 40% of zero-click searches. | **Google AIO Hunter & Citation Simulator**: `gsc aio-hunter` identifies AI Overviews and extracts competitor citation recipes. |
|
|
117
|
+
| **Token-Guzzling JSON in AI Agents**: Feeding pretty-printed JSON into coding agents wastes 40% of your LLM context window. | **Ultra-Low Token Modes (`--compact`, `--ndjson`)**: Minified output saving **35–50% of tokens** for Claude Code, Cursor, and Antigravity. |
|
|
118
|
+
| **Untrusted Third-Party Scripts**: Running opaque scripts that scan your repository or send files to external servers. | **Zero-Trust Local Execution**: Completely isolated, deterministic UNIX tool. Never scans, reads, or transmits your private code. |
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
> ### ⭐ Star the Repository
|
|
123
|
+
> If `gsc-cli` saved your team from 40 bloated gems or streamlined your search data pipeline:
|
|
124
|
+
> 👉 **[Star GSC CLI on GitHub](https://github.com/ApollosWave/gsc-cli)** to support zero-dependency open-source tooling.
|
|
61
125
|
|
|
62
126
|
---
|
|
63
127
|
|
|
@@ -87,6 +151,7 @@ source ~/.zshrc
|
|
|
87
151
|
Verify your installation:
|
|
88
152
|
```bash
|
|
89
153
|
gsc version
|
|
154
|
+
gsc doctor
|
|
90
155
|
```
|
|
91
156
|
|
|
92
157
|
---
|
|
@@ -124,534 +189,502 @@ gsc domains
|
|
|
124
189
|
|
|
125
190
|
---
|
|
126
191
|
|
|
127
|
-
## 🧠
|
|
192
|
+
## 🧠 Deep-Dive Feature Walkthroughs
|
|
128
193
|
|
|
129
|
-
###
|
|
194
|
+
### 1. Core Search Performance: Top Queries, Pages & CTR (`gsc top-queries`, `gsc top-pages`, `gsc performance`)
|
|
130
195
|
|
|
131
196
|
#### The Problem
|
|
132
|
-
|
|
197
|
+
Google Search Console's web UI is sluggish, hides low-volume long-tail queries behind pagination limits, and makes cross-referencing brand vs. non-brand queries painful. Exporting CSVs to spreadsheets burns 20+ minutes every time you want to check yesterday's organic clicks.
|
|
198
|
+
|
|
199
|
+
#### The Solution
|
|
200
|
+
`gsc-cli` streams your exact Google Search Console ground-truth performance directly into your terminal in **under 50 milliseconds**. Filter by brand, segment devices, compare date ranges, and export clean JSON or CSV in one command:
|
|
133
201
|
|
|
134
|
-
#### The Magic
|
|
135
|
-
`gsc page` merges both worlds into a single, cohesive 360° audit:
|
|
136
202
|
```bash
|
|
137
|
-
#
|
|
138
|
-
gsc
|
|
203
|
+
# Top 20 search queries with impressions, clicks, CTR, and average SERP position
|
|
204
|
+
gsc top-queries --limit 20
|
|
139
205
|
|
|
140
|
-
#
|
|
141
|
-
gsc
|
|
206
|
+
# Filter brand vs. non-brand queries automatically
|
|
207
|
+
gsc top-queries --brand
|
|
208
|
+
gsc top-queries --non-brand
|
|
142
209
|
|
|
143
|
-
#
|
|
144
|
-
gsc
|
|
145
|
-
```
|
|
210
|
+
# Top indexed landing pages driving search traffic
|
|
211
|
+
gsc top-pages --limit 15
|
|
146
212
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
213
|
+
# Overall 30-day domain performance scorecard with device & country breakdown
|
|
214
|
+
gsc performance --days 30
|
|
215
|
+
|
|
216
|
+
# Retrieve 100% of all queries via automated API pagination (no 1,000-row web limit)
|
|
217
|
+
gsc top-queries --all --csv > all_search_queries.csv
|
|
150
218
|
```
|
|
151
219
|
|
|
152
220
|
---
|
|
153
221
|
|
|
154
|
-
###
|
|
222
|
+
### 2. Tactical Striking Distance Playbook & Organic CTR Curve (`gsc strike` & `gsc ctr-curve`)
|
|
155
223
|
|
|
156
224
|
#### The Problem
|
|
157
|
-
|
|
225
|
+
Most SEO reports simply dump a list of keywords without telling you **what to write, where to link, or what the revenue payoff will be**. Page 2 keywords (Positions 4–20) generate 80% of your search impressions but only 5% of your clicks.
|
|
158
226
|
|
|
159
|
-
|
|
227
|
+
#### The Solution
|
|
228
|
+
- **`gsc ctr-curve`**: Generates an empirical, non-linear CTR regression curve mapping your domain's real CTR by position against Google's global benchmarks, simulating the exact click gain of advancing to Top 3.
|
|
229
|
+
- **`gsc strike`**: Automatically synthesizes a tactical Page 2 attack plan with **3 SERP-safe hook titles (< 560px)**, heading recipes, and targeted internal link anchor suggestions:
|
|
160
230
|
|
|
161
|
-
|
|
231
|
+
```bash
|
|
232
|
+
# Simulate organic CTR curve and click upside for Page 2 rankings
|
|
233
|
+
gsc ctr-curve --days 30 --target-pos 3
|
|
162
234
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
If you don't have paid API credits, or prefer using the free daily lookups on the Keywords Everywhere website:
|
|
167
|
-
|
|
168
|
-
1. **Copy Your Keywords in the Browser**:
|
|
169
|
-
* Open [Keywords Everywhere](https://keywordseverywhere.com/) (or use their Chrome/Firefox extension or bulk keyword tool).
|
|
170
|
-
* View any table of search volumes, CPCs, and competition metrics.
|
|
171
|
-
* Click **"Copy"** / **"Copy to Clipboard"** (or select the rows and press `Cmd+C` / `Ctrl+C`).
|
|
172
|
-
2. **Run One Command in Your Terminal**:
|
|
173
|
-
```bash
|
|
174
|
-
gsc import clip
|
|
175
|
-
```
|
|
176
|
-
3. **Instant Analysis & GSC Correlation**:
|
|
177
|
-
`gsc-cli` uses native OS clipboard tools (`pbpaste` on macOS, `xclip`/`wl-paste` on Linux) to:
|
|
178
|
-
* Parse volume, CPC, competition score, and monthly history at zero cost.
|
|
179
|
-
* Draw live **Unicode Sparklines (` ▂▃▄▅▆▇█`)** showing 12-month demand trajectory.
|
|
180
|
-
* Calculate **Opportunity Scores (0–100)** to prioritize low-competition/high-volume wins.
|
|
181
|
-
* Automatically cross-reference your live Google Search Console rankings (`🏆 Top 3`, `🥇 Page 1`, `🎯 Striking Distance`, or `🚀 Untargeted`).
|
|
182
|
-
* Automatically archive the snapshot into `~/.config/gsc/domains/<domain>/keywords/` so you can track rank progress over time!
|
|
235
|
+
# Generate tactical Page 2 striking distance playbook
|
|
236
|
+
gsc strike --limit 10
|
|
183
237
|
|
|
184
|
-
|
|
238
|
+
# Surface quick-win CTR underperformers (Top 10 ranking but low click-through)
|
|
239
|
+
gsc underperformers --min-imp 50
|
|
185
240
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
If you have purchased an API key from [Keywords Everywhere](https://keywordseverywhere.com/) (credits start at just $1.25 for 100,000 keyword lookups), you can query search demand directly from the terminal without ever opening a browser:
|
|
190
|
-
|
|
191
|
-
1. **Connect your API key once**:
|
|
192
|
-
```bash
|
|
193
|
-
gsc connect ke YOUR_API_KEY
|
|
194
|
-
```
|
|
195
|
-
*Your key is securely stored in `~/.config/gsc/config.json` alongside your Google service account.*
|
|
196
|
-
2. **Check your remaining account credits**:
|
|
197
|
-
```bash
|
|
198
|
-
gsc ke-credits
|
|
199
|
-
```
|
|
200
|
-
3. **Query any keyword topic or seed directly**:
|
|
201
|
-
```bash
|
|
202
|
-
gsc ke "mac cleaner" --limit 25
|
|
203
|
-
```
|
|
204
|
-
4. **Bulk inspect an entire keyword list headlessly**:
|
|
205
|
-
```bash
|
|
206
|
-
gsc ke keywords.txt --country us --limit 100 --json
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
Terminal Output:
|
|
210
|
-
```text
|
|
211
|
-
🔍 KEYWORDS EVERYWHERE SEARCH DEMAND (Seed: mac cleaner)
|
|
212
|
-
Country: US · Provider: Google Keyword Planner via Keywords Everywhere API
|
|
213
|
-
Correlated with GSC: superspeedapp.com
|
|
214
|
-
|
|
215
|
-
KEYWORD VOL/MO CPC COMP OPP SCORE INTENT GSC RANK STATUS
|
|
216
|
-
──────────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
217
|
-
best mac cleaner 2025 18,100 $4.80 0.42 82/100 Commercial 🎯 Striking Distance (Pos 8.4)
|
|
218
|
-
free mac disk cleaner 12,400 $3.10 0.28 88/100 Transactional 🚀 Untargeted
|
|
219
|
-
clean my mac alternative 6,600 $6.50 0.35 81/100 Commercial 🥇 Page 1 (Pos 4.2)
|
|
220
|
-
how to clear system storage mac 9,900 $1.20 0.15 89/100 Informational 🚀 Untargeted
|
|
241
|
+
# Export playbook directly to CSV for copywriters & content teams
|
|
242
|
+
gsc strike --limit 20 --csv docs/seo/striking_playbook.csv
|
|
221
243
|
```
|
|
222
244
|
|
|
223
245
|
---
|
|
224
246
|
|
|
225
|
-
###
|
|
247
|
+
### 3. Instant Googlebot Priority Indexing & Live URL Inspection (`gsc index`, `gsc inspect`, `gsc indexnow`)
|
|
226
248
|
|
|
227
249
|
#### The Problem
|
|
228
|
-
|
|
250
|
+
Waiting days or weeks for Googlebot to discover new landing pages or updated documentation kills organic momentum. Meanwhile, checking if Google has indexed a URL or flagged a canonical error requires tedious manual clicking inside Search Console's URL Inspection tool.
|
|
229
251
|
|
|
230
|
-
#### The
|
|
231
|
-
`gsc
|
|
232
|
-
- **Trajectory Velocity**: Compares recent interest vs historical baseline.
|
|
233
|
-
- **Velocity Badges**: `🚀 (Explosive Breakout)`, `🔥 (Strong Surging)`, `📈 (Growing Demand)`, `⚖️ (Stable Demand)`, `📉 (Cooling)`.
|
|
234
|
-
- **Unicode Sparklines**: Visualizes interest curves right in your terminal (` ▂▃▄▅▆▇█`).
|
|
235
|
-
- **Geographic Heatmap**: Identifies top states and regions driving demand.
|
|
252
|
+
#### The Solution
|
|
253
|
+
`gsc-cli` communicates directly with Google's Indexing API and live URL Inspection API to check status and force priority crawling in seconds:
|
|
236
254
|
|
|
237
255
|
```bash
|
|
238
|
-
|
|
239
|
-
|
|
256
|
+
# Query live Google indexing verdict, assigned canonical, and crawl timestamp
|
|
257
|
+
gsc inspect https://example.com/blog/core-web-vitals
|
|
240
258
|
|
|
241
|
-
|
|
242
|
-
gsc
|
|
259
|
+
# Ping Googlebot to prioritize crawling a newly published or updated URL
|
|
260
|
+
gsc index https://example.com/blog/core-web-vitals
|
|
261
|
+
|
|
262
|
+
# Batch inspect an entire XML sitemap with automatic quota pacing
|
|
263
|
+
gsc inspect-sitemap https://example.com/sitemap.xml
|
|
264
|
+
|
|
265
|
+
# Multi-Engine IndexNow: Instantly notify Bing, Yandex, Seznam, and Naver simultaneously
|
|
266
|
+
gsc indexnow https://example.com/blog/core-web-vitals
|
|
243
267
|
```
|
|
244
268
|
|
|
245
269
|
---
|
|
246
270
|
|
|
247
|
-
###
|
|
271
|
+
### 4. Cannibalization, Traffic Decay & Zombie Page Detection (`gsc cannibalization`, `gsc decay`, `gsc zombies`)
|
|
248
272
|
|
|
249
273
|
#### The Problem
|
|
250
|
-
|
|
274
|
+
Internal URLs competing for the same search intent (keyword cannibalization) split page equity, causing Google to oscillate rankings between pages. Meanwhile, stealth traffic decay and dead zero-click URLs quietly drain your Google crawl budget.
|
|
251
275
|
|
|
252
|
-
#### The
|
|
253
|
-
`gsc
|
|
254
|
-
- **Informational**: *"how to pack dishes for moving"*, *"why is mac running slow"*
|
|
255
|
-
- **Commercial**: *"best moving apps"*, *"superspeed vs cleanmymac"*
|
|
256
|
-
- **Transactional**: *"buy wardrobe moving boxes cheap"*, *"hire movers near me"*
|
|
276
|
+
#### The Solution
|
|
277
|
+
`gsc-cli` diagnoses algorithmic cannibalization conflicts and period-over-period decay before traffic crashes:
|
|
257
278
|
|
|
258
|
-
It then checks your active domain's GSC rankings so you instantly see untargeted opportunities:
|
|
259
279
|
```bash
|
|
260
|
-
|
|
280
|
+
# Detect internal URLs fighting for the exact same queries
|
|
281
|
+
gsc cannibalization
|
|
282
|
+
|
|
283
|
+
# Period-over-period decay detection (28-day comparison: decaying vs surging queries)
|
|
284
|
+
gsc decay --compare 28
|
|
285
|
+
|
|
286
|
+
# Scan XML sitemap for 90-day zero-impression zombie pages draining crawl budget
|
|
287
|
+
gsc zombies https://example.com/sitemap.xml --purge-map
|
|
261
288
|
```
|
|
262
289
|
|
|
263
290
|
---
|
|
264
291
|
|
|
265
|
-
###
|
|
292
|
+
### 5. Zero-Cost Clipboard Keyword Ingestion & Demand Trends (`gsc import clip`, `gsc trends`, `gsc planner`)
|
|
266
293
|
|
|
267
294
|
#### The Problem
|
|
268
|
-
|
|
295
|
+
Keyword research tools either lock data behind expensive API subscriptions or leave valuable volume data trapped in disconnected browser extensions.
|
|
269
296
|
|
|
270
|
-
#### The
|
|
271
|
-
`gsc
|
|
297
|
+
#### The Solution
|
|
298
|
+
`gsc-cli` provides zero-cost clipboard ingestion and real-time demand tracking with **zero API keys required**:
|
|
272
299
|
|
|
273
300
|
```bash
|
|
274
|
-
# 1
|
|
301
|
+
# 1. Copy any keyword table from Keywords Everywhere or Google Ads in your browser (Cmd+C)
|
|
302
|
+
# 2. Run one command to parse volumes, sparklines, and cross-reference live GSC rankings:
|
|
275
303
|
gsc import clip
|
|
276
304
|
|
|
277
|
-
#
|
|
278
|
-
gsc
|
|
279
|
-
|
|
280
|
-
# Import a Google Ads Keyword Planner CSV/TSV:
|
|
281
|
-
gsc import path/to/google-ads-keywords.csv --limit 30
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
`gsc` automatically:
|
|
285
|
-
- **Deduplicates** redundant keyword rows across multiple concatenated batches.
|
|
286
|
-
- **Normalizes** search volumes, CPC bids, and competition tiers.
|
|
287
|
-
- **Extracts 12-Month Historical Demand**: Automatically identifies monthly columns and renders a live **Unicode Sparkline** (` ▂▃▄▅▆▇█`) for each keyword in your terminal.
|
|
288
|
-
- **Calculates Opportunity Scores (0–100)**:
|
|
289
|
-
$$\text{Opportunity} = \text{Search Volume (0–50)} + (1 - \text{Competition}) \times 50$$
|
|
290
|
-
- **Cross-References Live GSC Rankings**: Instantly flags whether your active domain is already ranking (`🏆 Top 3`, `🥇 Page 1`, `🎯 Striking Distance`) or represents an untapped gap (`🚀 Untargeted`).
|
|
291
|
-
- **Auto-Archives to Domain Storage**: Automatically persists the dataset to `~/.config/gsc/domains/<domain>/keywords/` for historical rank tracking.
|
|
305
|
+
# Real-time Google Trends 5y/1y search trajectory and velocity percentage (zero-auth)
|
|
306
|
+
gsc trends "technical seo audit" --geo US --time 12m
|
|
292
307
|
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
Opp Score | Volume/mo | CPC | Comp | Tier | Trend% [12m] | GSC Status | Intent | Keyword
|
|
296
|
-
--------------------------------------------------------------------------------------------------------------------------------
|
|
297
|
-
75 | 1,000 | $11.04 | 0.10 | Low | -69% ▄▅▅█▅▁ | 🚀 Untargeted | Navigational | moving from san francisco to new york
|
|
298
|
-
69 | 77 | $0.00 | 0.00 | Low | +0% ▄▄▄▄▄▄ | 🚀 Untargeted | Navigational | moving from dallas to orlando
|
|
299
|
-
68 | 390 | $1.99 | 0.17 | Low | +25% ▁▄▄▄██ | 🚀 Untargeted | Navigational | storage unit size calculator
|
|
300
|
-
68 | 110 | $1.74 | 0.05 | Low | -65% ▂██▁▄▁ | 🚀 Untargeted | Navigational | moving checklist app
|
|
301
|
-
64 | 30 | $2.19 | 0.05 | Low | +83% ▃▁▁▆██ | 🚀 Untargeted | Navigational | moving volume calculator
|
|
308
|
+
# Google Autocomplete intent expander (Informational, Commercial, Transactional)
|
|
309
|
+
gsc planner "nextjs seo"
|
|
302
310
|
```
|
|
303
311
|
|
|
304
312
|
---
|
|
305
313
|
|
|
306
|
-
###
|
|
314
|
+
### 6. Detailed Off-Page + On-Page SEO Merger & Site Audit (`gsc page` & `gsc site-audit`)
|
|
307
315
|
|
|
308
316
|
#### The Problem
|
|
309
|
-
|
|
317
|
+
On-page SEO checkers (titles, headings, meta tags) live in browser extensions, completely disconnected from your real Google Search Console performance data.
|
|
310
318
|
|
|
311
|
-
#### The
|
|
312
|
-
`gsc
|
|
319
|
+
#### The Solution
|
|
320
|
+
`gsc page` unites on-page DOM inspection with 90-day GSC search queries, clicks, and rankings in a single terminal view:
|
|
313
321
|
|
|
314
|
-
```text
|
|
315
|
-
~/.config/gsc/
|
|
316
|
-
├── config.json
|
|
317
|
-
├── service-account.json
|
|
318
|
-
└── domains/
|
|
319
|
-
├── packinglog.com/
|
|
320
|
-
│ └── keywords/
|
|
321
|
-
│ ├── 2026-09-10-kw-md.json
|
|
322
|
-
│ └── 2026-09-10-moving-boxes.json
|
|
323
|
-
└── superspeedapp.com/
|
|
324
|
-
└── keywords/
|
|
325
|
-
└── 2026-09-10-mac-cleaner.json
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
#### List Saved Snapshots
|
|
329
322
|
```bash
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
```text
|
|
333
|
-
📁 SAVED KEYWORD RESEARCH ARCHIVES (packinglog.com)
|
|
334
|
-
Location: ~/.config/gsc/domains/packinglog.com/keywords
|
|
323
|
+
# Audit any URL combining DOM inspection with GSC 90-day search performance
|
|
324
|
+
gsc page https://example.com/
|
|
335
325
|
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
[1] | 2026-09-10 | Import | 209 | KW.md
|
|
339
|
-
[2] | 2026-09-10 | Google Autocomplete | 50 | moving boxes
|
|
340
|
-
```
|
|
326
|
+
# Deep internal link verification: tests HTTP status codes (200, 404, 500)
|
|
327
|
+
gsc page https://example.com/ --check-links
|
|
341
328
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
```bash
|
|
345
|
-
gsc saved check 1
|
|
346
|
-
```
|
|
347
|
-
|
|
348
|
-
```text
|
|
349
|
-
══════════════════════════════════════════════════════════════
|
|
350
|
-
📊 KEYWORD RANKING & OPPORTUNITY TRACKER (packinglog.com)
|
|
351
|
-
══════════════════════════════════════════════════════════════
|
|
352
|
-
🏆 Top 3 Rankings: 2 (+2 new)
|
|
353
|
-
🥇 Page 1 Rankings (4–10): 5 (+3 new)
|
|
354
|
-
🎯 Striking Distance (11–20): 14 (+6 new)
|
|
355
|
-
🚀 Untargeted / Unranked: 188
|
|
356
|
-
📈 Total Tracked Keywords: 209
|
|
357
|
-
══════════════════════════════════════════════════════════════
|
|
329
|
+
# Crawl entire XML sitemaps to audit dead links, missing alts, and heading hierarchy
|
|
330
|
+
gsc site-audit https://example.com/sitemap.xml --report docs/seo/site_audit_issues.md
|
|
358
331
|
```
|
|
359
332
|
|
|
360
333
|
---
|
|
361
334
|
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
### 1. Setup, Configuration & Domain Switching
|
|
365
|
-
| Command | Description |
|
|
366
|
-
|---|---|
|
|
367
|
-
| `gsc connect` | 1-Click interactive setup wizard: auto-detects key in Downloads or drag & drop |
|
|
368
|
-
| `gsc connect ke [key]` | Connect Keywords Everywhere API key and save to `~/.config/gsc/config.json` |
|
|
369
|
-
| `gsc connect-ga4` | Interactive Google Analytics 4 linking wizard |
|
|
370
|
-
| `gsc domains` | List all verified Search Console properties and linked GA4 properties |
|
|
371
|
-
| `gsc use <domain or #>` | Switch active default domain (e.g. `gsc use 2` or `gsc use packinglog.com`) |
|
|
372
|
-
| `gsc open` | Open `~/.config/gsc` configuration directory in Finder |
|
|
373
|
-
| `gsc where` | Inspect CLI binary path, active credential file, and config path |
|
|
374
|
-
| `gsc update` | Self-update `gsc` to the latest version directly from GitHub |
|
|
375
|
-
| `gsc version` | Display CLI version and Ruby runtime environment |
|
|
376
|
-
|
|
377
|
-
### 2. Google Trends & Keyword Intelligence
|
|
378
|
-
| Command | Description |
|
|
379
|
-
|---|---|
|
|
380
|
-
| `gsc trends <query>` | Real-time Google Trends 5y/1y demand velocity, sparklines, and geo breakdown |
|
|
381
|
-
| `gsc planner <seed>` | Zero-auth Google Suggest intent expander with live GSC rank correlation |
|
|
382
|
-
| `gsc import <file or clip>` | Ingest Google Ads / Keywords Everywhere data from clipboard (`gsc import clip`) or file (.csv, .tsv, .md) with 12m sparklines |
|
|
383
|
-
| `gsc planner-import <file>` | Ingest Google Ads / Keywords Everywhere export (alias for `import`) |
|
|
384
|
-
| `gsc ke <seed or file>` | Keywords Everywhere: Exact monthly volume, CPC, competition & GSC correlation |
|
|
385
|
-
| `gsc ke-credits` | Check remaining Keywords Everywhere account API credits |
|
|
386
|
-
| `gsc saved` | List saved keyword research snapshots for the active domain |
|
|
387
|
-
| `gsc saved check [id]` | Re-check saved keyword snapshots against live GSC rankings to track wins |
|
|
388
|
-
| `gsc saved view [id]` | View stored keyword metrics and opportunity scores |
|
|
389
|
-
| `gsc saved delete [id]` | Delete a saved keyword research snapshot |
|
|
390
|
-
|
|
391
|
-
### 3. Search Performance & SEO Growth Intelligence
|
|
392
|
-
| Command | Description |
|
|
393
|
-
|---|---|
|
|
394
|
-
| `gsc top-queries` | Top search queries, impressions, CTR, and average position |
|
|
395
|
-
| `gsc top-pages` | Top indexed landing pages driving organic clicks & impressions |
|
|
396
|
-
| `gsc opportunities` | **Striking-distance queries (Pos 7–20)** to push to Page 1 and Top 3 |
|
|
397
|
-
| `gsc underperformers` | High-ranking queries (Top 10) with below-average CTR (title & meta tag wins) |
|
|
398
|
-
| `gsc cannibalization` | Detect multiple internal URLs competing for the same search queries |
|
|
399
|
-
| `gsc decay [--compare 28]` | Period-over-period decay detection (decaying vs surging queries) |
|
|
400
|
-
| `gsc devices` | Search traffic breakdown by device (Desktop, Mobile, Tablet) |
|
|
401
|
-
| `gsc countries` | Geographic search demand by country with flags and CTR |
|
|
402
|
-
| `gsc snippets` | Search appearance appearances (Reviews, Products, FAQs) |
|
|
403
|
-
| `gsc audit` | Comprehensive 4-step 360° SEO & Indexing Health Audit |
|
|
404
|
-
|
|
405
|
-
### 4. Detailed On-Page DOM & Autonomous Site Crawling
|
|
406
|
-
| Command | Description |
|
|
407
|
-
|---|---|
|
|
408
|
-
| `gsc page <url or file>` | 360° On-Page DOM audit (Title pixel width, meta, H1-H6, images, schema) + GSC rankings |
|
|
409
|
-
| `gsc page <url> --check-links` | Verify HTTP status codes (detects 404 broken links) across all page links |
|
|
410
|
-
| `gsc site-audit [sitemap]` | Crawl sitemap/site, test dead links, audit DOM flaws, and output summary |
|
|
411
|
-
| `gsc site-audit --report <file>` | Export comprehensive AI-actionable Markdown fix sprint (e.g. `site_issues.md`) |
|
|
412
|
-
|
|
413
|
-
### 4. Live Indexation & Googlebot Control
|
|
414
|
-
| Command | Description |
|
|
415
|
-
|---|---|
|
|
416
|
-
| `gsc inspect <url>` | Live Google Search Console URL inspection (coverage, canonical, crawl date) |
|
|
417
|
-
| `gsc index <url>` | Notify Googlebot to crawl/index a newly published URL immediately (`URL_UPDATED`) |
|
|
418
|
-
| `gsc remove <url>` | Notify Googlebot a URL has been permanently deleted (`URL_DELETED`) |
|
|
419
|
-
| `gsc status <url>` | Check Google Indexing API submission status and latest notification timestamp |
|
|
420
|
-
| `gsc inspect-sitemap <file/url>` | Bulk inspect indexation status for all URLs in an XML sitemap |
|
|
421
|
-
| `gsc index-sitemap <file/url>` | Batch submit all URLs in an XML sitemap to Google Indexing API |
|
|
422
|
-
| `gsc zombies <sitemap>` | Identify zero-impression deadweight URLs wasting crawl budget over 90 days |
|
|
423
|
-
| `gsc sitemaps-list` | List registered XML sitemaps in Search Console |
|
|
424
|
-
| `gsc sitemaps-submit <url>` | Submit or re-submit an XML sitemap to Search Console |
|
|
425
|
-
|
|
426
|
-
### 5. Google Analytics 4 (GA4) On-Site Behavior
|
|
427
|
-
| Command | Description |
|
|
428
|
-
|---|---|
|
|
429
|
-
| `gsc realtime [--watch]` | Stream active visitors, real-time page paths, and countries |
|
|
430
|
-
| `gsc ga4 [--organic]` | Landing page bounce rates, engagement rates, and average session duration |
|
|
431
|
-
| `gsc correlation` | Merge GSC keyword rankings with GA4 bounce rates per landing page |
|
|
432
|
-
| `gsc channels` | Traffic acquisition channels (Organic Search, Direct, Referral, Paid) |
|
|
433
|
-
| `gsc ads` | Google Ads campaign performance (Clicks, Cost, CPC, Conversions) |
|
|
335
|
+
### 7. Google AI Overview (AIO) Opportunity Hunter & Citation Simulator (`gsc aio-hunter` & `gsc cite-sim`)
|
|
434
336
|
|
|
435
|
-
|
|
337
|
+
#### The Problem
|
|
338
|
+
Google AI Overviews (Gemini in search results) intercept high-intent queries before users ever reach blue links. If an AI Overview appears for your core keywords, your organic CTR can crater unless your site is cited inside the AI answer box.
|
|
436
339
|
|
|
437
|
-
|
|
340
|
+
#### The Solution
|
|
341
|
+
`gsc aio-hunter` scans live SERPs for AI Overviews, extracts cited sources, and measures your citation readiness:
|
|
438
342
|
|
|
439
|
-
|
|
343
|
+
```bash
|
|
344
|
+
# Hunt AI Overview presence and extract cited competitor sources
|
|
345
|
+
gsc aio-hunter "best technical seo audit tools"
|
|
440
346
|
|
|
441
|
-
|
|
347
|
+
# Test how likely LLMs (Gemini, ChatGPT, Perplexity) are to cite your URL
|
|
348
|
+
gsc cite-sim https://example.com/guides/core-web-vitals
|
|
442
349
|
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
350
|
+
# Synthesize 40–60 word high-density direct answers with FAQ schema embedding
|
|
351
|
+
gsc answer "what is soft 404 error"
|
|
352
|
+
```
|
|
446
353
|
|
|
447
|
-
|
|
448
|
-
gsc audit --json
|
|
354
|
+
---
|
|
449
355
|
|
|
450
|
-
|
|
451
|
-
gsc ke "moving boxes" --limit 50 --json
|
|
356
|
+
### 8. Soft-404 Forensic Diagnostic Engine with 14-Stack Instant Fixes (`gsc soft-404`)
|
|
452
357
|
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
358
|
+
#### The Problem
|
|
359
|
+
Soft-404 errors silently destroy your Google crawl budget by returning `200 OK` on empty templates or missing content. Writing server redirect rules manually across different stacks is slow and error-prone.
|
|
360
|
+
|
|
361
|
+
#### The Solution
|
|
362
|
+
`gsc soft-404` detects empty templates, blank pages, and canonical loops, auto-detects your tech stack, and generates copy-paste redirect blocks for 14 server environments:
|
|
456
363
|
|
|
457
|
-
Install the official AI Agent Skill:
|
|
458
364
|
```bash
|
|
459
|
-
|
|
365
|
+
# Diagnose any URL for soft-404 status (auto-detects tech stack & server)
|
|
366
|
+
gsc soft-404 https://example.com/broken-page
|
|
367
|
+
|
|
368
|
+
# Generate copy-paste rules for your specific tech stack:
|
|
369
|
+
gsc soft-404 https://example.com/broken-page --fix sveltekit
|
|
370
|
+
gsc soft-404 https://example.com/broken-page --fix caddy
|
|
371
|
+
gsc soft-404 https://example.com/broken-page --fix cloudflare
|
|
372
|
+
gsc soft-404 https://example.com/broken-page --fix nextjs
|
|
373
|
+
gsc soft-404 https://example.com/broken-page --fix nginx
|
|
374
|
+
gsc soft-404 https://example.com/broken-page --fix shopify
|
|
375
|
+
gsc soft-404 https://example.com/broken-page --fix all
|
|
460
376
|
```
|
|
461
377
|
|
|
462
378
|
---
|
|
463
379
|
|
|
464
|
-
|
|
380
|
+
### 9. Agency Credential Vault & Instant Domain Switching (`gsc vault` & `gsc switch`)
|
|
465
381
|
|
|
466
|
-
|
|
382
|
+
#### The Problem
|
|
383
|
+
Agencies and multi-brand operators juggle dozens of client Google service account JSON files. Leaving unencrypted keys scattered across client folders invites credential leakage, path-traversal vulnerabilities, and accidental cross-client query pollution.
|
|
384
|
+
|
|
385
|
+
#### The Solution
|
|
386
|
+
`gsc vault` provides a hardened, local **AES-256-GCM encrypted credential vault** supporting 50+ client service accounts with strict POSIX permissions (0700/0600) and instant zero-friction domain switching:
|
|
387
|
+
|
|
388
|
+
```bash
|
|
389
|
+
# Check encrypted vault status, stored keys & cipher health
|
|
390
|
+
gsc vault status
|
|
467
391
|
|
|
468
|
-
|
|
392
|
+
# Add a client service account key to the encrypted store
|
|
393
|
+
gsc vault add ./client-key.json --domain client.com --alias client1
|
|
469
394
|
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
395
|
+
# List all vaulted domains, client emails & GA4 property links
|
|
396
|
+
gsc vault list
|
|
397
|
+
|
|
398
|
+
# Switch active client context instantly (by domain, alias, or index #)
|
|
399
|
+
gsc switch client.com
|
|
400
|
+
gsc switch client1
|
|
401
|
+
gsc use 2
|
|
402
|
+
```
|
|
473
403
|
|
|
474
404
|
---
|
|
475
405
|
|
|
476
|
-
##
|
|
406
|
+
## 🛠️ Complete CLI Command Reference (80 Commands)
|
|
407
|
+
|
|
408
|
+
> **💡 Token Economy Note for AI Agents & Pipelines:**
|
|
409
|
+
> Every command supporting `--json` also natively supports `--compact` (single-line minified JSON saving **35–45% LLM tokens**) and `--ndjson` (newline-delimited streaming JSON). Commands handling tabular ranking data also support `--csv` (saving **65–75% LLM tokens**).
|
|
410
|
+
|
|
411
|
+
### 1. Setup, Doctor & Authentication
|
|
412
|
+
| Command | Shortcut | Description | Flags |
|
|
413
|
+
|---|---|---|---|
|
|
414
|
+
| `gsc connect` | `auth` | 1-Click interactive setup wizard (auto-detects service account in Downloads) | `--json`, `--compact` |
|
|
415
|
+
| `gsc connect ke [key]` | — | Connect Keywords Everywhere API key | — |
|
|
416
|
+
| `gsc connect-ga4` | — | Interactive Google Analytics 4 property linking wizard | — |
|
|
417
|
+
| `gsc doctor` | `health` | Zero-Gem Stdlib & Cold Start Doctor: validates < 50ms latency & config integrity | `--fix`, `--json`, `--compact` |
|
|
418
|
+
| `gsc domains` | `sites` | List all verified Search Console properties and linked GA4 properties | `--json`, `--compact` |
|
|
419
|
+
| `gsc use <domain>` | `switch` | Switch active default domain property | — |
|
|
420
|
+
| `gsc switch <domain>` | `use` | Fast agency switch between client domains or credential vault profiles | — |
|
|
421
|
+
| `gsc vault [status|add|list|remove]`| — | AES-256-GCM encrypted credential vault manager (multi-client safe) | `--json`, `--compact` |
|
|
422
|
+
| `gsc where` | — | Inspect CLI binary path, active credential file, and config path | `--json`, `--compact` |
|
|
423
|
+
| `gsc version` | `-v` | Display CLI version and Ruby runtime environment | `--json`, `--compact` |
|
|
424
|
+
| `gsc commands` | — | Machine-readable catalog of all 80 commands | `--json`, `--compact` |
|
|
425
|
+
|
|
426
|
+
### 2. Search Analytics & Organic Performance
|
|
427
|
+
| Command | Shortcut | Description | Flags |
|
|
428
|
+
|---|---|---|---|
|
|
429
|
+
| `gsc performance` | `perf` | Search performance summary (Clicks, Impressions, CTR, Position) | `--days`, `--json` |
|
|
430
|
+
| `gsc top-queries` | `queries` | Top search queries, impressions, CTR, and average position | `--limit`, `--days`, `--brand`, `--non-brand`, `--csv`, `--json` |
|
|
431
|
+
| `gsc top-pages` | `pages` | Top indexed landing pages driving organic clicks & impressions | `--limit`, `--days`, `--csv`, `--json` |
|
|
432
|
+
| `gsc opportunities` | `opps` | Striking-distance queries (Pos 7–20) with high impression volume | `--min-imp`, `--days`, `--csv`, `--json` |
|
|
433
|
+
| `gsc strike` | `striker` | Tactical Striking Playbook: High-yield queries primed for Top 3 rankings | `--min-imp`, `--limit`, `--json` |
|
|
434
|
+
| `gsc underperformers` | `u` | High-ranking queries with below-average CTR (title & meta tag wins) | `--limit`, `--days`, `--json` |
|
|
435
|
+
| `gsc cannibalization` | `cannibal` | Detect multiple internal URLs competing for the same search queries | `--limit`, `--days`, `--json` |
|
|
436
|
+
| `gsc decay` | — | Period-over-period decay detection (decaying vs surging queries) | `--compare`, `--days`, `--json` |
|
|
437
|
+
| `gsc devices` | — | Search traffic breakdown by device (Desktop, Mobile, Tablet) | `--days`, `--json` |
|
|
438
|
+
| `gsc countries` | — | Geographic search demand by country with flags and CTR | `--days`, `--json` |
|
|
439
|
+
| `gsc snippets` | — | Search appearance appearances (Reviews, Products, FAQs) | `--days`, `--json` |
|
|
440
|
+
| `gsc brand` | — | Brand vs. Non-brand query segmentation and traffic split | `--days`, `--brand-terms`, `--json` |
|
|
441
|
+
| `gsc ctr-curve` | — | Empirical CTR curve modeling by position with revenue lift simulator | `--days`, `--target-pos`, `--json` |
|
|
442
|
+
| `gsc intent-shift` | — | Search intent volatility and position shift monitor | `--days`, `--min-imp`, `--json` |
|
|
443
|
+
| `gsc kw-value` | `kwval` | Mathematical keyword conversion pipeline & dollar valuation matrix | `--aov`, `--conv-rate`, `--margin`, `--target-pos`, `--csv`, `--json` |
|
|
444
|
+
| `gsc landing-roi <url>` | `roi` | Landing page economic ROI & revenue leakage audit (merges GSC + bounce rates) | `--aov`, `--conv-rate`, `--benchmark`, `--csv`, `--json` |
|
|
445
|
+
|
|
446
|
+
### 3. AI Search, Generative Engine Optimization (GEO) & SERP Simulation
|
|
447
|
+
| Command | Shortcut | Description | Flags |
|
|
448
|
+
|---|---|---|---|
|
|
449
|
+
| `gsc aio-hunter <query>` | `aio` | Google AI Overview Opportunity Hunter: detects AIO presence & cited sources | `--limit`, `--min-imp`, `--days`, `--csv`, `--json` |
|
|
450
|
+
| `gsc cite-sim <url>` | `citability` | AI Citation Simulator: tests LLM citability readiness and content density | `--json` |
|
|
451
|
+
| `gsc geo <url>` | `aeo` | Generative Engine Optimization (GEO) & LLM answer audit | `--json` |
|
|
452
|
+
| `gsc serp <title>` | `preview` | Google SERP Card & Pixel Simulator (Desktop 580px, Mobile 650px) | `--desc`, `--url`, `--json` |
|
|
453
|
+
| `gsc serp-features <q>` | — | Live SERP feature detector (AI Overviews, PAA, Featured Snippets) | `--geo`, `--json` |
|
|
454
|
+
| `gsc llms <url>` | `ai-ready` | AI Knowledge Base Generator: outputs structured `/llms.txt` bundle | `--save`, `--json` |
|
|
455
|
+
| `gsc entity <url>` | `kg` | Knowledge Graph & Entity Authority Auditor (Wikidata, Wikipedia links) | `--json` |
|
|
456
|
+
| `gsc firewall <url>` | `ai-bots` | AI Search Bot Firewall Scanner: audits robots.txt for GPTBot, ClaudeBot | `--json` |
|
|
457
|
+
| `gsc answer <q>` | — | Direct answer box and featured snippet synthesizer | `--json` |
|
|
458
|
+
|
|
459
|
+
### 4. Technical SEO, Crawl Errors & Automated Fixes
|
|
460
|
+
| Command | Shortcut | Description | Flags |
|
|
461
|
+
|---|---|---|---|
|
|
462
|
+
| `gsc soft-404 <url>` | — | Soft-404 Diagnostic Engine with automated multi-stack redirect generation | `--fix <stack>`, `--json` |
|
|
463
|
+
| `gsc mobile-parity <dom>`| `mobile` | Mobile vs. Desktop SERP Parity Auditor: cross-device rank gap diagnosis | `--days`, `--gap-threshold`, `--csv`, `--json` |
|
|
464
|
+
| `gsc audit` | `360` | Comprehensive 360° technical and organic health audit | `--json` |
|
|
465
|
+
| `gsc report` | — | Executive 360° Health Scorecard with letter grade and sparklines | `--days`, `--sparkline`, `--json` |
|
|
466
|
+
| `gsc page <url>` | — | Detailed On-Page DOM audit (meta, headings, alts, schema) + GSC performance | `--check-links`, `--json` |
|
|
467
|
+
| `gsc site-audit <sitemap>`| — | Crawls sitemaps, tests 404 dead links, audits DOM flaws, and outputs fix sprint | `--report <file>`, `--json` |
|
|
468
|
+
| `gsc speed <url>` | `vitals` | Official Core Web Vitals via PageSpeed Insights (LCP, INP, CLS, TTFB) | `--strategy mobile|desktop`, `--json` |
|
|
469
|
+
| `gsc speed-correlate` | `sc-perf` | Correlates Core Web Vitals page speed with GSC organic rankings | `--days`, `--strategy`, `--json` |
|
|
470
|
+
| `gsc canonical-chains` | `chains` | Canonical redirect loops and multi-hop chain detector | `--limit`, `--json` |
|
|
471
|
+
| `gsc low-ctr` | — | High-impression low-CTR title & meta description rewriter | `--limit`, `--min-imp`, `--json` |
|
|
472
|
+
| `gsc titles <url>` | `title-opt` | Title pixel width calculator and SERP truncation optimizer | `--json` |
|
|
473
|
+
| `gsc headings <url>` | `h1` | Heading structure (H1–H6) depth, order, and keyword presence auditor | `--json` |
|
|
474
|
+
| `gsc orphans` | — | Internal link equity analyzer: rescues orphaned unlinked pages | `--json` |
|
|
475
|
+
| `gsc internal-links` | — | Deep internal link equity audit and anchor text distribution | `--json` |
|
|
476
|
+
| `gsc image-seo <url>` | — | Image SEO auditor: missing alt attributes, next-gen formats (WebP/AVIF) | `--json` |
|
|
477
|
+
| `gsc hreflang <url>` | — | International hreflang reciprocity and ISO language/region validator | `--json` |
|
|
478
|
+
| `gsc eeat <url>` | — | E-E-A-T Auditor: author credentials, publisher transparency & trust signals | `--json` |
|
|
479
|
+
| `gsc security <url>` | — | Security & HTTP headers auditor: SSL, HSTS, CSP, and X-Robots-Tag | `--json` |
|
|
480
|
+
| `gsc rich-results <url>` | `rich` | Google Rich Results eligibility and Schema.org test | `--type`, `--json` |
|
|
481
|
+
| `gsc schema <url>` | `ld-json` | JSON-LD Structured Data Validator and generator | `--json` |
|
|
482
|
+
| `gsc schema-generate` | `schema-gen`| Valid Schema.org JSON-LD generator (`faq`, `software`, `article`, `product`)| `--type`, `--json` |
|
|
483
|
+
| `gsc trace <domain>` | `redirects` | Multi-hop 301/302 redirect tracer with SSL and header inspection | `--json` |
|
|
484
|
+
| `gsc robots <url>` | `robots-txt`| Robots.txt crawler permissions simulator across major bots | `--bot`, `--json` |
|
|
485
|
+
| `gsc authority <domain>` | `opr` | OpenPageRank Domain Authority (0–10) and Global Rank from Common Crawl | `--json` |
|
|
486
|
+
| `gsc compare <u1> <u2>` | `vs` | Head-to-head on-page technical benchmark comparison | `--json` |
|
|
487
|
+
| `gsc content-gap <u1> <u2>`| `gap` | Topical content gap analyzer: missing 1-gram, 2-gram, and 3-gram keyphrases | `--json` |
|
|
488
|
+
|
|
489
|
+
### 5. Live Indexation & Googlebot Control
|
|
490
|
+
| Command | Shortcut | Description | Flags |
|
|
491
|
+
|---|---|---|---|
|
|
492
|
+
| `gsc inspect <url>` | — | Live Google URL inspection (coverage status, assigned canonical, crawl date)| `--json` |
|
|
493
|
+
| `gsc index <url>` | — | Priority Googlebot crawl submission (`URL_UPDATED`) | `--dry-run`, `--json` |
|
|
494
|
+
| `gsc remove <url>` | — | Notify Googlebot of permanently deleted URL (`URL_DELETED`) | `--dry-run`, `--json` |
|
|
495
|
+
| `gsc status <url>` | — | Check Google Indexing API submission status and latest notification timestamp| `--json` |
|
|
496
|
+
| `gsc index-batch` | — | Batch URL indexing processor with daily 200-URL quota tracking | `--run`, `--status`, `--json` |
|
|
497
|
+
| `gsc indexnow <url>` | — | Multi-engine instant submission (Bing, Yandex, Seznam, Naver) | `--key`, `--json` |
|
|
498
|
+
| `gsc zombies <sitemap>` | — | Detect zero-impression deadweight URLs wasting crawl budget over 90 days | `--days`, `--json` |
|
|
499
|
+
| `gsc sitemaps-list` | — | List registered XML sitemaps in Search Console | `--json` |
|
|
500
|
+
| `gsc sitemaps-submit <url>`| — | Submit or re-submit an XML sitemap to Search Console | `--json` |
|
|
501
|
+
| `gsc sitemap-tree <url>` | — | Visual sitemap hierarchy tree and URL limit validator | `--json` |
|
|
502
|
+
|
|
503
|
+
### 6. Keyword Research & Demand Trends
|
|
504
|
+
| Command | Shortcut | Description | Flags |
|
|
505
|
+
|---|---|---|---|
|
|
506
|
+
| `gsc trends <query>` | — | Real-time Google Trends trajectory velocity, sparklines & geo breakdown | `--geo`, `--time`, `--json` |
|
|
507
|
+
| `gsc planner <seed>` | — | Autocomplete seed expander with intent classification & live GSC correlation| `--limit`, `--json` |
|
|
508
|
+
| `gsc suggest <seed>` | — | Google Autocomplete & Alphabet Soup (a-z) keyword harvester | `--alphabet`, `--json` |
|
|
509
|
+
| `gsc questions <seed>` | `paa` | People Also Ask (PAA) question miner for FAQs and blog outlines | `--limit`, `--json` |
|
|
510
|
+
| `gsc import <file|clip>`| — | Ingest Google Ads / Keywords Everywhere data from clipboard (`clip`) or file | `--limit`, `--json` |
|
|
511
|
+
| `gsc ke <seed|file>` | — | Keywords Everywhere direct API: exact monthly volume, CPC & competition | `--country`, `--limit`, `--json` |
|
|
512
|
+
| `gsc ke-credits` | — | Check remaining Keywords Everywhere account API credits | `--json` |
|
|
513
|
+
| `gsc saved` | — | List saved keyword research snapshots for the active domain | `--json` |
|
|
514
|
+
| `gsc saved check [id]` | — | Re-check saved keyword snapshots against live GSC rankings to track wins | `--json` |
|
|
515
|
+
| `gsc saved view [id]` | — | View stored keyword metrics and opportunity scores | `--json` |
|
|
516
|
+
| `gsc saved delete [id]`| — | Delete a saved keyword research snapshot | — |
|
|
517
|
+
| `gsc seasonal <keyword>` | — | Seasonal keyword demand forecasting and peak month detection | `--json` |
|
|
518
|
+
| `gsc sparkline <query>` | — | High-resolution Unicode sparkline visualizer (` ▂▃▄▅▆▇█`) | `--days`, `--json` |
|
|
519
|
+
|
|
520
|
+
### 7. Google Analytics 4 (GA4) On-Site Behavior
|
|
521
|
+
| Command | Shortcut | Description | Flags |
|
|
522
|
+
|---|---|---|---|
|
|
523
|
+
| `gsc realtime` | — | Stream active visitors, real-time page paths, and countries (`--watch`) | `--watch`, `--json` |
|
|
524
|
+
| `gsc ga4` | — | Landing page bounce rates, engagement rates, and average session duration | `--organic`, `--json` |
|
|
525
|
+
| `gsc correlation` | — | Merge GSC keyword rankings with GA4 bounce rates per landing page | `--json` |
|
|
526
|
+
| `gsc channels` | — | Traffic acquisition channels (Organic Search, Direct, Referral, Paid) | `--json` |
|
|
527
|
+
| `gsc ads` | — | Google Ads campaign performance (Clicks, Cost, CPC, Conversions) | `--json` |
|
|
528
|
+
|
|
529
|
+
### 8. AI Agent Skills & System Tools
|
|
530
|
+
| Command | Shortcut | Description | Flags |
|
|
531
|
+
|---|---|---|---|
|
|
532
|
+
| `gsc skills [install|show]` | — | Inspect or auto-install native AI Agent Skill (`SKILL.md`) | `--json` |
|
|
533
|
+
| `gsc skill-pack` | — | Autonomous Agent Skill Pack Generator for Cursor, Antigravity, and Claude | `--install`, `--json` |
|
|
534
|
+
| `gsc prompts [list|show]` | — | 27 battle-tested tactical SEO growth prompts and playbooks | `--json` |
|
|
535
|
+
| `gsc vault [status|add|list|remove]` | — | AES-256-GCM encrypted credential vault manager | `--json` |
|
|
536
|
+
| `gsc cache [status|clear]` | — | Multi-tier gzip response cache manager | `--json` |
|
|
477
537
|
|
|
478
|
-
|
|
538
|
+
---
|
|
479
539
|
|
|
480
|
-
|
|
481
|
-
Harvest 100+ high-intent search suggestions across the full alphabet in seconds without paying for KeywordTool.io:
|
|
482
|
-
```bash
|
|
483
|
-
# Standard Google search suggestions
|
|
484
|
-
gsc suggest "moving boxes"
|
|
540
|
+
## 🤖 AI Agent Native Integration (Antigravity, Claude, Cursor)
|
|
485
541
|
|
|
486
|
-
|
|
487
|
-
gsc suggest "storage units" --alphabet
|
|
542
|
+
> 💡 **Zero External LLM Calls**: `gsc-cli` does NOT require an OpenAI or Anthropic API key and sends zero data to third-party AI servers. Everything runs locally on your machine. "AI Agent Native" refers to our deterministic `--compact` (minified JSON) and `--ndjson` flags designed to save 35–45% context tokens when called by local coding agents (Claude Code, Cursor Composer, Antigravity).
|
|
488
543
|
|
|
489
|
-
|
|
490
|
-
gsc suggest "commercial packaging" --alphabet --json
|
|
491
|
-
```
|
|
544
|
+
`gsc-cli` was engineered from the ground up to serve as the high-speed sensory organ for autonomous AI coding agents (**Antigravity**, **Claude Code**, **Cursor Composer**, **Windsurf**, and **OpenCode**).
|
|
492
545
|
|
|
493
|
-
|
|
494
|
-
Mine real user questions directly from Google search intent modules to build instant FAQ sections and blog content outlines:
|
|
495
|
-
```bash
|
|
496
|
-
gsc questions "packing dishes"
|
|
497
|
-
```
|
|
546
|
+
Traditional CLI tools output ANSI-colored terminal text designed exclusively for human eyes—forcing AI agents to burn thousands of tokens scraping strings, guessing table columns, and hallucinating missing fields. `gsc-cli` eliminates this waste completely with **sub-millisecond execution**, **zero gem overhead**, and **three ultra-efficient machine output formats**.
|
|
498
547
|
|
|
499
|
-
###
|
|
500
|
-
Directly measure Google's official Core Web Vitals (LCP, INP, CLS, FCP, TTFB) and Lighthouse scores with 25,000 free queries/day:
|
|
501
|
-
```bash
|
|
502
|
-
# Audit mobile Core Web Vitals
|
|
503
|
-
gsc speed https://packinglog.com/ --strategy mobile
|
|
548
|
+
### 📉 Token Economics: Why Format Matters for AI Agents
|
|
504
549
|
|
|
505
|
-
|
|
506
|
-
gsc speed https://packinglog.com/features --strategy desktop --json
|
|
507
|
-
```
|
|
550
|
+
Every token consumed by CLI output burns developer budget, introduces LLM generation latency, and pushes critical prompt context out of the agent's memory window. `gsc-cli` provides four deterministic output formats to optimize your token economics:
|
|
508
551
|
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
552
|
+
| Format | Flag | Avg. Chars (100 Rows) | Est. Tokens | Token Savings | Optimal AI Agent Scenario |
|
|
553
|
+
| :--- | :--- | :--- | :--- | :--- | :--- |
|
|
554
|
+
| **Tabular CSV** | `--csv` | 3,920 | ~980 | **72.5% savings** | High-cardinality exports (100–5,000 keywords/pages) |
|
|
555
|
+
| **Compact JSON**| `--compact` | 8,110 | ~2,028 | **43.0% savings** | Default for Claude Code & Cursor single-turn queries |
|
|
556
|
+
| **Streaming NDJSON** | `--ndjson` | 8,230 | ~2,058 | **42.2% savings** | Streaming processors, jq/grep pipes & subagent tasks |
|
|
557
|
+
| **Pretty JSON** | `--json` | 14,240 | ~3,560 | 0% *(Baseline)* | Human developer terminal inspection & debugging |
|
|
514
558
|
|
|
515
|
-
|
|
516
|
-
Run an instant side-by-side comparison of titles, meta descriptions, H1 counts, image alt tags, JSON-LD schemas, and server response times:
|
|
517
|
-
```bash
|
|
518
|
-
gsc compare https://packinglog.com/free-moving-labels https://uhaul.com/moving-supplies/boxes/
|
|
519
|
-
```
|
|
559
|
+
> ⚡ **The Bottom Line:** Switching your autonomous agents from `--json` to `--compact` immediately **cuts token consumption by ~43%**, allowing your agents to ingest more than **double the keyword and performance data** within identical context limits.
|
|
520
560
|
|
|
521
|
-
|
|
522
|
-
Perplexity, ChatGPT, and Claude prioritize sites with clean markdown knowledge bases and structured layouts:
|
|
523
|
-
```bash
|
|
524
|
-
# Generate a production-ready /llms.txt file from your sitemap
|
|
525
|
-
gsc llms https://packinglog.com/ --save
|
|
561
|
+
---
|
|
526
562
|
|
|
527
|
-
|
|
528
|
-
gsc llms https://packinglog.com/ audit
|
|
529
|
-
```
|
|
563
|
+
### 📋 Deterministic Output Contract & Zero-Pollution Guarantee
|
|
530
564
|
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
565
|
+
Autonomous coding agents require strict, unpolluted output streams. `gsc-cli` enforces a military-grade stdout/stderr separation contract:
|
|
566
|
+
- **Zero ANSI Pollution**: When `--compact`, `--ndjson`, `--json`, or `--csv` is detected, all ANSI terminal colors, progress bars, and Unicode spinners are automatically suppressed.
|
|
567
|
+
- **Pure Stdout Payload**: Stdout contains *only* valid, parseable JSON, NDJSON, or CSV.
|
|
568
|
+
- **Stderr Diagnostic Routing**: Network warnings, rate-limit retries, and error traces are routed strictly to `stderr`.
|
|
569
|
+
- **POSIX Exit Codes**: Clean exit `0` on success, `1` on error or validation failure.
|
|
570
|
+
|
|
571
|
+
---
|
|
536
572
|
|
|
537
|
-
|
|
538
|
-
gsc schema generate faq
|
|
573
|
+
### 🚀 Autonomous Agent Workflow Recipes
|
|
539
574
|
|
|
540
|
-
|
|
541
|
-
gsc schema generate software
|
|
542
|
-
```
|
|
575
|
+
Feed these exact commands to your AI agents (or add them to your `cursorrules` / agent system prompts):
|
|
543
576
|
|
|
544
|
-
|
|
545
|
-
Render an exact ASCII preview of your Google desktop search snippet and OpenGraph/Twitter social cards before publishing:
|
|
577
|
+
#### 1. Tactical Striking Distance Harvest
|
|
546
578
|
```bash
|
|
547
|
-
|
|
579
|
+
# Agent prompt: "Find our highest-impression striking distance queries (Pos 7–20) and save token budget"
|
|
580
|
+
gsc strike --min-imp 25 --limit 15 --compact
|
|
548
581
|
```
|
|
549
582
|
|
|
550
|
-
|
|
551
|
-
Trace multi-hop 301/302 redirect loops, HSTS security headers, canonical links, and `X-Robots-Tag` directives:
|
|
583
|
+
#### 2. Google AI Overview (AIO) Defense Scan
|
|
552
584
|
```bash
|
|
553
|
-
|
|
585
|
+
# Agent prompt: "Check if Google is showing an AI Overview for our core product query and who they cite"
|
|
586
|
+
gsc aio-hunter "technical seo checklist" --compact
|
|
554
587
|
```
|
|
555
588
|
|
|
556
|
-
|
|
557
|
-
Simulate crawl permissions for Googlebot, GPTBot, PerplexityBot, or ClaudeBot:
|
|
589
|
+
#### 3. Forensic Soft-404 Audit & Automated Server Fix
|
|
558
590
|
```bash
|
|
559
|
-
|
|
591
|
+
# Agent prompt: "Inspect missing landing page and synthesize an automated Nginx redirect block"
|
|
592
|
+
gsc soft-404 https://example.com/missing-guide --fix nginx --compact
|
|
560
593
|
```
|
|
561
594
|
|
|
562
|
-
|
|
563
|
-
Query PageRank (0–10) and Global Web Rank computed across Common Crawl's open graph with 300,000 free calls/month:
|
|
595
|
+
#### 4. Instant Googlebot Priority Indexing Notification
|
|
564
596
|
```bash
|
|
565
|
-
|
|
597
|
+
# Agent prompt: "Submit our newly published blog post to Google's Indexing API for crawl queueing"
|
|
598
|
+
gsc index https://example.com/blog/high-impact-seo --compact
|
|
566
599
|
```
|
|
567
600
|
|
|
568
|
-
|
|
569
|
-
Ingest your official Google Search Console External Links export without third-party crawler fees:
|
|
601
|
+
#### 5. Multi-Client Agency Domain Switching
|
|
570
602
|
```bash
|
|
571
|
-
#
|
|
572
|
-
gsc
|
|
573
|
-
gsc backlinks import Links_External_Pages.csv
|
|
574
|
-
|
|
575
|
-
# View top referring domains and most linked landing pages
|
|
576
|
-
gsc backlinks packinglog.com
|
|
603
|
+
# Agent prompt: "Switch to client domain and pull 28-day performance summary"
|
|
604
|
+
gsc switch clientdomain.com && gsc perf --days 28 --compact
|
|
577
605
|
```
|
|
578
606
|
|
|
579
607
|
---
|
|
580
608
|
|
|
581
|
-
|
|
609
|
+
### 📦 1-Click AI Agent Skill Installation
|
|
582
610
|
|
|
583
|
-
|
|
584
|
-
Get complete ground-truth Search Console analytics, instant Googlebot indexing, and real-time trends in under 50ms — even if you refuse to pay third-party API fees, run heavy Docker containers, or manage bloated database dependencies.
|
|
611
|
+
Install the official `gsc-cli` skill directly into your coding agent's environment:
|
|
585
612
|
|
|
586
|
-
|
|
613
|
+
```bash
|
|
614
|
+
# Installs SKILL.md into Antigravity, Claude, and Cursor skill directories
|
|
615
|
+
gsc skills install
|
|
616
|
+
```
|
|
587
617
|
|
|
588
|
-
|
|
589
|
-
2. **The 500MB Docker Bloat Trap**: Other suites require launching `docker-compose`, PostgreSQL databases, Redis queues, and heavy Node.js web servers just to audit 50 URLs. They are impossible to embed into lightweight terminal workflows or autonomous AI agent loops.
|
|
590
|
-
3. **The Fragile Single-Feature Script**: Python-based tools often drag in heavy `pandas` and `pytrends` dependencies that break whenever Google updates internal endpoint tokens, without offering Google Search Console, Google Indexing, or actionable ranking correlation.
|
|
618
|
+
Once installed, your agent automatically understands all 80 commands, flag permutations, token-saving modes, and diagnostic workflows without needing manual prompting.
|
|
591
619
|
|
|
592
|
-
|
|
620
|
+
---
|
|
593
621
|
|
|
594
|
-
|
|
622
|
+
## 🥊 How GSC CLI Compares (The Zero-Bloat Advantage)
|
|
595
623
|
|
|
596
|
-
| Capability |
|
|
624
|
+
| Capability | Google Search Console Web UI | Official Google API SDK (40 Gems) | Enterprise SEO Suites ($300–$1,000+/mo) | **ApollosWave/gsc-cli (v2.2.2)** |
|
|
597
625
|
| :--- | :--- | :--- | :--- | :--- |
|
|
598
|
-
| **
|
|
599
|
-
| **Dependencies** |
|
|
600
|
-
| **
|
|
601
|
-
| **
|
|
602
|
-
| **
|
|
603
|
-
| **
|
|
604
|
-
| **
|
|
605
|
-
| **
|
|
606
|
-
| **
|
|
607
|
-
| **
|
|
608
|
-
| **
|
|
626
|
+
| **Pricing** | Free ($0) | Free ($0) | $300–$1,000+/mo ($3,600–$12,000/yr) | **100% Free & Open Source ($0)** |
|
|
627
|
+
| **Dependencies** | Web Browser only | 40+ transitive gems (`googleauth`, etc.) | SaaS Web Application | **0 Gems / Pure Standard Library** |
|
|
628
|
+
| **Boot / Execution Latency** | Slow (manual clicking) | 3–5 seconds cold boot | Web UI latency | **< 1 millisecond (Compiled Binary)** |
|
|
629
|
+
| **Data Accuracy** | 100% Google Ground Truth | 100% Google Ground Truth | Sampled external proxy estimates | **100% Google Ground Truth (Direct API)** |
|
|
630
|
+
| **CLI Command Surface** | ❌ None (Web only) | Raw Ruby code required | ❌ None (Web dashboard) | **80 Production Commands** |
|
|
631
|
+
| **Core GSC Workflows** | Manual tab clicking & export | Complex API code boilerplate | Partial GSC sync via OAuth | **`top-queries`, `top-pages`, `performance`** |
|
|
632
|
+
| **Instant Googlebot Indexing** | Manual 1-by-1 submit | Complex JWT boilerplate | ❌ None | **✅ 1-Click Priority Ping (`gsc index`)** |
|
|
633
|
+
| **Multi-Engine IndexNow** | ❌ None | ❌ None | ❌ None | **✅ Bing, Yandex, Seznam, Naver (`gsc indexnow`)** |
|
|
634
|
+
| **Striking Distance Playbook** | ❌ Manual spreadsheet work | ❌ None | Expensive add-on tiers | **✅ Automated Page 2 Playbook (`gsc strike`)** |
|
|
635
|
+
| **Google AI Overviews (AIO)** | ❌ None | ❌ None | Limited / expensive beta tiers | **✅ Built-in `aio-hunter` & `cite-sim`** |
|
|
636
|
+
| **Automated Fix Generation** | ❌ None (Error tables only) | ❌ None | ❌ None | **✅ 14-Stack Redirects (`gsc soft-404 --fix`)** |
|
|
637
|
+
| **Token Economics for AI** | ❌ None | Verbose unformatted JSON | ❌ None | **✅ Native `--compact`, `--ndjson`, `--csv` (35–75% savings)** |
|
|
638
|
+
| **Autonomous AI Agent Skills** | ❌ None | ❌ None | ❌ None | **✅ Native Skill for Claude, Cursor, Antigravity** |
|
|
609
639
|
|
|
610
640
|
---
|
|
611
641
|
|
|
612
|
-
## 🏗️ Architecture &
|
|
642
|
+
## 🏗️ Architecture & Pure-Ruby Design
|
|
613
643
|
|
|
614
|
-
`gsc-cli` is engineered
|
|
644
|
+
`gsc-cli` is engineered with 100% pure Ruby standard library. It compiles into a single, self-contained, zero-dependency executable:
|
|
615
645
|
|
|
616
646
|
```text
|
|
617
647
|
gsc-cli/
|
|
618
648
|
├── bin/
|
|
619
|
-
│
|
|
649
|
+
│ ├── gsc # Compiled single-file binary (RubyGems entry point)
|
|
650
|
+
│ └── test_live # Visual showcase & internal test harness
|
|
620
651
|
├── lib/
|
|
621
|
-
│ ├── gsc.rb # Central
|
|
652
|
+
│ ├── gsc.rb # Central stdlib loader
|
|
622
653
|
│ └── gsc/
|
|
623
|
-
│ ├── version.rb # Semantic versioning (2.
|
|
654
|
+
│ ├── version.rb # Semantic versioning (2.2.2)
|
|
624
655
|
│ ├── color.rb # Zero-dependency ANSI formatting
|
|
625
|
-
│ ├── config.rb #
|
|
656
|
+
│ ├── config.rb # Configuration persistence
|
|
626
657
|
│ ├── auth.rb # Pure OpenSSL JWT generator
|
|
627
|
-
│ ├── client.rb # Net::HTTP client with
|
|
628
|
-
│ ├── api.rb # GSC, Indexing
|
|
629
|
-
│ ├──
|
|
630
|
-
│ ├──
|
|
631
|
-
│ ├──
|
|
632
|
-
│ ├──
|
|
633
|
-
│ ├──
|
|
634
|
-
│
|
|
658
|
+
│ ├── client.rb # Net::HTTP client with Gzip decompression
|
|
659
|
+
│ ├── api.rb # GSC, Indexing, GA4, PageSpeed endpoints
|
|
660
|
+
│ ├── aio_hunter.rb # Google AI Overview Opportunity Hunter
|
|
661
|
+
│ ├── citation_simulator.rb# AI Citability score & grounding heuristics
|
|
662
|
+
│ ├── soft_404_analyzer.rb # Soft-404 diagnostic & multi-stack fix generator
|
|
663
|
+
│ ├── mobile_parity.rb # Cross-device SERP parity auditor
|
|
664
|
+
│ ├── doctor.rb # Zero-gem cold-start benchmark doctor
|
|
665
|
+
│ ├── command_registry.rb # Catalog of all 80 production commands
|
|
666
|
+
│ ├── cli/ # Modular subcommand domains (audit, keywords, growth...)
|
|
667
|
+
│ └── cli.rb # Primary command dispatcher & router
|
|
635
668
|
├── dist/
|
|
636
|
-
│ └── gsc # Standalone bundled binary (curl
|
|
669
|
+
│ └── gsc # Standalone bundled binary (1-click curl & GitHub releases)
|
|
637
670
|
├── gsc.gemspec # Standard RubyGem specification
|
|
638
|
-
├── Rakefile #
|
|
671
|
+
├── Rakefile # Build, test, and standalone install tasks
|
|
639
672
|
└── install.sh # Universal 1-click shell installer
|
|
640
673
|
```
|
|
641
674
|
|
|
642
675
|
### Development Tasks
|
|
643
676
|
```bash
|
|
644
|
-
# Run syntax
|
|
677
|
+
# Run syntax checks and all 359 unit test suites
|
|
645
678
|
rake test
|
|
646
679
|
|
|
680
|
+
# Run 100-scenario deep forensic regression suite
|
|
681
|
+
rake test:forensic
|
|
682
|
+
|
|
647
683
|
# Build the standalone single-file binary into dist/gsc
|
|
648
684
|
rake build:standalone
|
|
649
685
|
|
|
650
686
|
# Install local development build to ~/.local/bin/gsc
|
|
651
687
|
rake install:standalone
|
|
652
|
-
|
|
653
|
-
# Build gem package
|
|
654
|
-
rake gem:build
|
|
655
688
|
```
|
|
656
689
|
|
|
657
690
|
---
|
|
@@ -675,12 +708,13 @@ If GSC CLI saves your team hours of manual audit work or hundreds in monthly Saa
|
|
|
675
708
|
|
|
676
709
|
👉 **[Read the Full Sponsorship Prospectus & Tier Breakdown →](FUNDING.md)**
|
|
677
710
|
|
|
711
|
+
---
|
|
678
712
|
|
|
679
713
|
### ApollosWave Ecosystem
|
|
680
714
|
GSC CLI is maintained by [ApollosWave LLC](https://apolloswave.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli). Check out our products:
|
|
681
715
|
- **[Superspeed](https://superspeedapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**: Autonomous Core Web Vitals & website speed optimization engine.
|
|
682
716
|
- **[Supercart](https://supercartapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**: High-converting slide cart drawer for Shopify merchants.
|
|
683
|
-
- **[PackingLog](https://packinglog.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**:
|
|
717
|
+
- **[PackingLog](https://packinglog.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**: Our newly launched physical moving inventory and QR-code tracking SaaS — where waiting weeks for Googlebot to discover new landing pages wasn't an option.
|
|
684
718
|
|
|
685
719
|
---
|
|
686
720
|
|
|
@@ -692,6 +726,12 @@ GSC CLI is maintained by [ApollosWave LLC](https://apolloswave.com/?utm_source=g
|
|
|
692
726
|
|
|
693
727
|
---
|
|
694
728
|
|
|
695
|
-
##
|
|
729
|
+
## ⚖️ Open Source Philosophy & License
|
|
730
|
+
|
|
731
|
+
`gsc-cli` is 100% free, open-source software licensed under the **[MIT License](LICENSE)**.
|
|
732
|
+
|
|
733
|
+
We built this because we believe command-line developer tools should be fast, transparent, and respect your machine's resources. The modern Ruby standard library is more than capable of handling enterprise-grade API integrations and cryptographic authentication without dragging in 40 third-party gems.
|
|
734
|
+
|
|
735
|
+
If `gsc-cli` saves your team time, eliminates an unnecessary SaaS subscription, or accelerates your search pipelines, stars, feedback, and pull requests are always welcome.
|
|
696
736
|
|
|
697
|
-
|
|
737
|
+
👉 **[Get Started with 1-Click Install](#-quick-installation)** | **[Star on GitHub ⭐](https://github.com/ApollosWave/gsc-cli)**
|