How it works
Google Search Console (GSC) tracks every query that brings your site an impression or click. ZensInk connects to the GSC API to pull this data — which queries rank, what position, what CTR.
This is your own data, not estimates. It’s the most accurate picture of how Google sees your site.
Setup
1. Verify your site in Google Search Console
Add your domain at search.google.com/search-console. Verify ownership (DNS TXT record is easiest for domain properties).
2. Create OAuth credentials
ZensInk needs read-only API access. Create a Desktop OAuth client in Google Cloud Console, then run the one-time setup script:
python3 -m zens_ink.setup_gsc
This opens a browser to authorize and saves credentials to ~/.config/gcloud/application_default_credentials.json.
3. Configure your site URL
In .env:
GSC_SITE_URL=sc-domain:example.com
Use sc-domain: for domain properties, or https:// for URL-prefix properties.
Usage
Top queries
See which search queries bring you the most impressions:
python3 -m zens_ink.search_performance --queries
Top pages
See which pages get the most search traffic:
python3 -m zens_ink.search_performance --pages
Filter by page path
Zoom into a specific section:
python3 -m zens_ink.search_performance --page /blog/
Date range
python3 -m zens_ink.search_performance --start 2025-01-01 --end 2025-06-30
Country breakdown
python3 -m zens_ink.search_performance --country
Output format
================================================================================
sc-domain:example.com | query | 2025-01-01 - 2025-06-25
47 rows | 3402 impressions | 89 clicks
================================================================================
seo tools free imp= 420 clk= 12 CTR=2.9% pos= 12.4
keyword research tool imp= 310 clk= 8 CTR=2.6% pos= 15.1
best ai seo tool imp= 180 clk= 5 CTR=2.8% pos= 18.7
Data takes time. Google indexes new sites slowly. If you see “No data yet”, your site hasn’t been crawled or has zero search traffic yet. This is normal for sites under 3 months old.