Insights
Find striking-distance queries, low CTR for the position, cannibalization, decliners, and new or lost queries with gsc insights, computed locally with their thresholds shown.
Each insight runs ordinary Search Analytics queries and computes the result locally. The thresholds it used are printed on stderr and included in JSON output, along with a note on how the result was computed, and the main thresholds have flags. Results describe the rows Google exposes; anonymized queries are never included.
All insights take --last (default 28d), --start, --end, --type, --filter, --data-state,
--aggregation, and --limit.
Striking distance
gsc insights striking-distance --last 28d
gsc insights striking-distance --min-position 8 --max-position 15 --min-impressions 500Queries whose average position is between --min-position (default 4) and --max-position (default
20), with at least --min-impressions (default 100), sorted by impressions. Average position is per
query across all pages.
Low CTR
gsc insights low-ctr --factor 0.5 --min-impressions 200Queries whose CTR is below --factor (default 0.5) of this site's median CTR for the same position
bucket. Buckets are positions 1 to 10 one by one (rounded), then 11 to 20, then 21 and beyond; a
bucket with fewer than three qualifying queries is skipped. missed_clicks_estimate is impressions times the gap to the
median: an estimate, not a forecast.
Cannibalization
gsc insights cannibalization --min-share 0.2Queries with at least --min-impressions (default 100) where two or more pages each have at least
--min-share (default 0.1) of the query's impressions. Rows list one competing page each, grouped by
query, with that page's share.
Decliners
gsc insights decliners --by page --compare yoyQueries (or pages with --by page) that lost the most clicks against the --compare period (previous
by default, or yoy), among rows with at least --min-clicks (default 5) in the comparison period. Only
rows returned in both periods count: a row missing from one period is left out rather than treated as
zero.
New and lost queries
gsc insights new-queries --compare previous
gsc insights lost-queries --by pagenew-queries lists rows returned now but not in the comparison period; lost-queries lists the reverse.
Both describe exposure within the fetched rows, not rankings: a query can drop out of the returned rows
without losing its position.