gsc_find_unindexed
Uncover which URLs are missing from Google's index and the reason for each. Uses sitemaps or stored URLs to sample, inspect, and report unindexed pages with actionable codes.
Instructions
Which of a property's URLs are not in Google's index, and why.
source chooses where candidate URLs come from: "sitemap" fetches and
parses the property's registered sitemaps fresh, "store" uses only
URLs already seen, "both" (the default) unions them.
limit caps how many URLs are INSPECTED, not how many are returned —
inspection spends a daily budget, so a cap that only trimmed the
output would pay full price for an answer it threw away. Which URLs a
capped run reaches follows the store's url ordering (alphabetical),
not staleness: a capped run is a sample, not a worst-first sweep. The
result reports candidates_total, inspected and limited so you
can tell a truncated answer from a complete one.
limit is not the only thing that can cut a run short. Inspection
quota is per property and roughly eleven slots a day, so on any site
larger than that the run reaches the gate and stops: inspected is
what was handed to the API, checked is what actually reached it,
and skipped_quota lists the URLs accounting for the difference.
Report both numbers rather than inspected alone — a run that
answered for three of forty URLs is not a survey of the property, and
the remaining URLs are answerable tomorrow at no extra cost.
Only URLs whose last inspection is older than inspection_ttl_days
are re-inspected; the rest are reported from their stored status. A
second call the same day therefore costs no budget and still answers
in full. "fresh": true on a row means only that THIS run did not
inspect it — usually because it was within the TTL, but also when
limit cut the run short before reaching it. It is not a promise
that the stored status is within the TTL.
Each unindexed row carries reason (one of ten codes), action,
submitting_helps and needs_site_access. Act on
submitting_helps before calling gsc_request_indexing: submitting a
404, a redirect, a noindex, or a page Google crawled and declined
wastes an unrecoverable quota slot.
URLs whose state this run did not establish are in undetermined,
never in unindexed. Read each one's status before wording the
answer: it separates two cases a reader acts on differently. "We
looked and could not tell" covers a failed inspection and a result
the burst re-verify pass could not confirm. "skipped_quota" is the
other case and means the opposite: we never got to look, because the
property's daily budget ran out first. That is not a problem with the
URL, needs no investigation, and is answered by running again
tomorrow — say so rather than reporting it as a fault.
A refusal is {"ok": false, "error": <code>, "fix": <what to do>},
plus status when Search Console refused the call and detail (an
exception type name) when the failure was unexpected.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | ||
| limit | No | ||
| source | No | both |