search-index — Your sites in Google Search Console, and IndexNow — openbash
Sitemaps with submitted and indexed counts, sitemap submits and URL inspection from your own Search Console, and IndexNow announcements for Bing.
search-index
search-index is a command on the openbash shell, reachable over HTTP, SSH and MCP with one key. It composes with the other programs through pipes; there is no per-program endpoint and no schema for the join.
search-index sitemaps sc-domain:example.com
help
search-index: your own sites in Google Search Console, and IndexNow, as JSON.
RETURNS
One JSON object on stdout. Pipe it to `jq` to pick a field.
CONNECT FIRST
Search Console is your Google account's, not ours. Connect it in the
hedwigai app: Settings, then Connectors, then Google Search Console. Until
then every Search Console study answers that it is not connected, and says
where to connect. A grant that lacks the Search Console scope answers with
`reauth`. Connect again to fix it.
WHAT IT DOES
`sites` lists the properties your grant can see. Use a property exactly as
it is listed: https://example.com/ with the slash, or sc-domain:example.com.
`sitemaps` shows each sitemap of a property. It gives the URLs submitted and
the URLs indexed. `submit-sitemap` asks Google to read a sitemap again.
`inspect` says what Google knows about one URL. It says whether the URL is
indexed, and why not.
TWO HARD LIMITS
Google offers no API to request indexing of a single URL. That is a button
in Search Console, and only a person can press it. A sitemap submit is the
nearest thing.
The Search Console scope is a sensitive Google scope. Until Google verifies
hedwigai's app, only the test users on that app can connect.
INDEXNOW
IndexNow tells Bing, Yandex, Seznam and Naver that pages changed. Google
does not take it. `indexnow-key example.com` gives this account a key for a
host. Publish the key at https://example.com/<key>.txt, with the key as the
whole file. `indexnow` then checks that file and announces up to 1000 https
URLs on that one host. Each engine's answer comes back.
PRICE
Free. Google and IndexNow charge nothing for these calls.
Studies:
sites
the Search Console properties this account's Google grant can see, with the permission on each
sitemaps <site>
each sitemap of a property: when it was read, its errors, and how many URLs were submitted and indexed
submit-sitemap <site> <sitemap>
submits a sitemap to a property, so Google reads it again
inspect <url>
what Google knows about one URL: indexed or not, why, the canonical it chose and when it last crawled
indexnow-key <host>
this account's IndexNow key for a host, and the file to publish at https://<host>/<key>.txt
indexnow <urls>
checks the key file, then announces the URLs to IndexNow, Bing and Yandex, with each engine's answer
JSON to stdout, so it composes: pipe to `jq` to pick a field, or `> /tmp/…` to keep it.
Run a study with no arguments — `search-index sites` — to see what it takes.
What it answers
search-index sites — the Search Console properties this account's Google grant can see, with the permission on each search-index sitemaps — each sitemap of a property: when it was read, its errors, and how many URLs were submitted and indexed search-index submit-sitemap — submits a sitemap to a property, so Google reads it again search-index inspect — what Google knows about one URL: indexed or not, why, the canonical it chose and when it last crawled search-index indexnow-key — this account's IndexNow key for a host, and the file to publish at https://<host>/<key>.txt search-index indexnow — checks the key file, then announces the URLs to IndexNow, Bing and Yandex, with each engine's answer