Google Indexing API & AI Overviews

Use the Google Indexing API to push pages straight into Google's index, see what actually got indexed, and scale past the 200-a-day cap.

The Google Indexing API pushes pages directly into Google's index — the index Google Search, AI Overviews, and Gemini's web search all read from — using a Google Cloud project you create and own. It requires more setup than Bing's IndexNow route, but in exchange it is the only engine connection that reports back real coverage data: indexed, crawled-not-indexed, or discovered-not-indexed.

Last updated 2026-08-15

Google does not take part in the protocol Bing and the other engines share. Reaching it means a direct connection, using a Google Cloud project of your own.

That is more setup than the Bing route, and it buys two things the Bing route cannot:

  • Pushing to the Google index, which is what Google Search and AI Overviews read from — and what Gemini reads from when it searches the web.
  • Coverage data. Google is the only engine that will tell you whether a URL actually made it into the index. Everything CrawlReady shows you about indexed, crawled-not-indexed and time-to-index comes from here.

Why it uses your own Google Cloud project#

Google allows 200 submissions per day per Cloud project. That allowance belongs to the project, and the project belongs to you.

We could not resell it if we wanted to — 200 a day shared across every customer would be worth nothing. Using your own project means the allowance is yours, the connection is yours, and you can revoke it at any time from your own console.

Cloud projects are free, and this API is free to call.

Setup#

The wizard at Indexing → Google & AI Overviews → Set this up walks through all of it. Roughly ten minutes, most of it in Google's own consoles.

1. Create a Cloud project. Any name. console.cloud.google.com/projectcreate

2. Enable two APIs.

  • Web Search Indexing API — submits your pages.
  • Google Search Console API — proves you own the site, and reports back which pages were indexed.

3. Create a service account and download its JSON key. No Cloud roles or permissions are needed. After creating the account, open Keys → Add key → Create new key → JSON.

4. Give us the key. Paste or upload the JSON in the wizard. The private key is encrypted before storage, is never shown again, and is never returned by any API.

5. Grant it access in Search Console. Copy the service account's email address — it looks like something@your-project.iam.gserviceaccount.com — and add it as an Owner of your property at search.google.com/search-console/users.

This grant is the whole ownership proof. There is no DNS record and no file to upload: if Google says this account owns the property, that settles it. Anything less than Owner cannot submit.

6. Verify. The wizard asks Google which properties the account can see and matches it against your site.

With gcloud instead#

gcloud projects create crawlready-indexing-1
gcloud config set project crawlready-indexing-1
gcloud services enable indexing.googleapis.com searchconsole.googleapis.com
gcloud iam service-accounts create crawlready-indexer
gcloud iam service-accounts keys create key.json \
  --iam-account crawlready-indexer@crawlready-indexing-1.iam.gserviceaccount.com

Then upload key.json in the wizard and grant its address Owner in Search Console.

Going past 200 a day#

The allowance is per Cloud project, not per service account. Five service accounts inside one project still share 200 a day. What multiplies it is projects.

1 Cloud project  →  1 service account  →  Owner on your Search Console property
                 →  +200 submissions/day  and  +2,000 coverage checks/day

4 projects on the same property  →  800 submissions/day

Search Console explicitly supports multiple owners on one property, and each Cloud project has its own legitimate allowance. Nothing here works around a limit — it uses the limit as designed.

In practice: create project number two exactly as you created the first, add its service account as another Owner on the same property, and connect it. CrawlReady rotates across every connected project and skips any whose daily allowance is spent, so capacity is additive with nothing further to configure.

Connect another project is a permanent control on the Google card and on the last step of the wizard, because this is a recurring decision rather than a setup step. A site publishing 500 pages a day needs three projects and there is no other way to get there.

The same arithmetic applies to coverage checks: 2,000 per day per project. A 50,000-page site with one project can verify 4% of its pages daily; with five, 20%.

Reading coverage#

Once connected, CrawlReady inspects submitted URLs hourly and maps what Google says into four states:

StateWhat Google meansWhat to do
IndexedIn the index, eligible to appearNothing
Crawled, not indexedGoogle fetched the page and chose not to index itSubmitting again will not change the answer. This is a signal about the page — run a scan
Discovered, not indexedGoogle knows the URL exists but has not fetched itUsually crawl budget or site-level quality, not a verdict on this page
ExcludedBlocked by robots, noindex, or a canonical pointing elsewhereIntentional, usually. Check if it isn't

The Diagnose action on a not-indexed row runs a readiness scan against that URL. A page Google has declined more than once is a content or crawlability problem, and resubmitting it is both wasted allowance and a worse answer than finding out why.

Decisions#

  • Bring your own credential. The allowance is per project and belongs to the project owner. A shared pool would be worth nothing and would put our account between you and Google.
  • Search Console ownership is the only proof required. If Google says the account owns the property, that is stronger than any file or DNS record we could check ourselves.
  • Google stays out of speed claims. IndexNow coverage is the headline; Google is a supported engine with a documented scope note attached. We do not attach a speed promise to it.
  • Private keys are encrypted at rest and never returned. Not by any API, not in logs, not in error messages.

Frequently Asked Questions

Why does connecting Google require my own Cloud project?

Because the 200-submissions-per-day allowance belongs to the Cloud project, and the project belongs to you. A shared pool across every CrawlReady customer would be worth almost nothing split up, so each customer connects their own project and keeps their own allowance.

How do I go past the 200-submissions-a-day limit?

Connect additional Cloud projects to the same Search Console property, each with its own service account added as an Owner. The allowance is per project, not per service account, so a second project doubles it to 400 a day, four projects reach 800, and so on — Search Console explicitly supports multiple owners on one property.

What does 'Crawled, not indexed' mean in Google coverage?

Google fetched the page and chose not to index it. Submitting it again will not change that answer — it's a signal about the page itself, typically thin content, near-duplication of another page, or nothing that distinguishes it, and the fix is to run a scan rather than resubmit.

Is the Google Indexing API free to use?

Yes. Google Cloud projects are free to create, and the Web Search Indexing API and Search Console API are both free to call.

Need Help?

Can't find what you're looking for? Reach out and we'll help.

Contact us