gsc_check_status
Check if URLs are indexed in Google Search and see the exact status—indexed, crawled, discovered, or blocked—to diagnose indexing problems.
Instructions
Check whether each URL is indexed by Google Search, via the URL Inspection API.
READ-ONLY: this tool inspects current index status and submits NOTHING. It never requests indexing and never spends a Request-Indexing slot. No tool here does yet — requesting indexing is not built, so an assistant asked to get a URL indexed should say so rather than reaching for this one, which answers a different question and spends a different budget doing it. This tool DOES spend URL Inspection quota, a separate per-property budget of 2,000 calls a day and roughly 600 a minute (see gsc_quota) — one call per URL inspected.
concurrency defaults to the configured inspect_concurrency
(config.load()["inspect_concurrency"]) when omitted.
Properties come from the local store, the same one gsc_list_sites populates. If the store has never been synced — e.g. this is the very first call this install has ever made — it is synced automatically first, so a first-ever gsc_check_status call does not fail with "no property matches" purely because nothing has been synced yet.
Returns {"rows": [...], "checked": int, "skipped_quota": [...], "quota": {...}}. "quota" is per property, and its
daily_free_at_gate/minute_free_at_gate are the headroom measured
BEFORE this call reserved its own budget — they are a record of what
the gate saw, not current headroom, and are already stale by the size
of this batch by the time you read them. gsc_quota's similarly-shaped
daily_free/minute_free are the ones measured now; do not compare
the two pairs or plan a second batch against these. binding_at_gate
(here and on each "skipped_quota" entry) carries the suffix for the
same reason: it names only the exhausted INSPECTION window as seen at
the gate, where gsc_quota's binding covers the submission budget too
and is read now. Each row is
{"url", "status", "detail", "unverified"}. status is one of: indexed, crawled_not_indexed,
discovered_not_indexed, unknown_to_google, redirect, noindex,
duplicate, alternate_canonical, not_found, soft_404, blocked_robots,
no_property, error. no_property means no Search Console property in
this account covers that URL's host. unverified is True when a
concurrent burst produced a suspect result (unknown_to_google or
error) that a sequential re-check could not confirm before quota or
time ran out — treat such a row as UNKNOWN, not as a confirmed
"not indexed".
On a missing, expired, or rejected token, returns {"ok": False, "error": "auth_required", "fix": ...} instead of raising; if no
OAuth client is configured at all, returns {"ok": False, "error": "not_configured", "fix": ...}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | ||
| concurrency | No |