Google Indexing API

What the Google Indexing API actually does — officially supported only for JobPosting and BroadcastEvent (livestream) pages, not general content. The myths, what Google really says, and what to use instead for faster indexing.

First published: Jun 22, 2026 · Last updated: Jul 18, 2026 · Advanced
demand #7 in Discovery#38 in How Search Works#184 in Technical SEO#249 on the site

The Google Indexing API is a programmatic way to notify Google that a URL was added, updated, or removed — but Google officially supports it only for pages with JobPosting or BroadcastEvent (livestream) structured data, not general content. The biggest myth is that it indexes any page fast; it doesn't, and a successful submission only confirms Google received your request, not that anything was indexed. Google has warned repeatedly that misuse can get your access revoked. For normal pages, use sitemaps, internal links, quality, and the occasional Search Console 'Request indexing' instead.

TL;DR — The IndexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. API is a Google Cloud–authenticated REST API (v3) that accepts URL_UPDATED and URL_DELETED notifications. Google officially supports it only for JobPosting and BroadcastEvent-in-VideoObject (livestream) pages — not general content. A 200 from the status endpoint confirms receipt, not indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.. Google’s stance has hardened over years: 2022 (“doesn’t make sense”) → Sept 2024 (a spam warning added to the docs) → May 2025 (Mueller: “spammers misuse the Indexing API… use it properly, or not use it”). Misuse, including multiple accounts to inflate quota, can get access revoked. For general pages, your levers are sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., quality, and occasional GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results.Request indexing” — and remember Google does not support IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it..

Evidence for this claim Google documents the Indexing API for pages containing JobPosting or BroadcastEvent embedded in VideoObject, not general-purpose web indexing. Scope: Current documented eligibility. Confidence: high · Verified: Google Search Central: Indexing API overview Evidence for this claim An Indexing API notification tells Google that an eligible URL changed or was deleted; it does not guarantee crawling or indexing. Scope: Current API semantics and indexing caveat. Confidence: high · Verified: Google Search Central: Using the Indexing API

What the Indexing API actually is

The Indexing API is a programmatic push channel: a REST API (v3), authenticated through a Google Cloud service account, that you call to tell Google a URL was added/updated (URL_UPDATED) or should be removed (URL_DELETED). It sits alongside sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. and Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. as a way for Google to discover and refresh URLs — but it’s the narrowest of the bunch by content type.

In my How Search Works deck, I list the Indexing API as a URL-discovery source with the tag “limited use cases” — which is the whole story in two words. It’s real, it works, and it’s only sanctioned for a sliver of the web.

What Google officially supports it for

This is the load-bearing fact, so I’ll state it the way Google does. The Indexing API “can only be used to crawl pages with either JobPosting or BroadcastEvent embedded in a VideoObject.” That’s it — two structured-data types:

  • JobPosting — job-listing pages. They expire, and stale jobs are a bad user experience, so timely add/remove matters.
  • BroadcastEvent in a VideoObject — livestream event pages. They’re only relevant during (and just around) the broadcast.

Why only these two? Both are inherently time-sensitive and short-lived. The rationale Google gives is that fast notification of changes matters far more for these than for evergreen pages, which the normal crawl handles fine.

How it works

Prerequisites

Setup is non-trivial — this isn’t a one-click feature:

  • A Google Cloud project with the Indexing API enabled. As Google puts it, you “need to tell Google about your client and activate access to the API.”
  • A service account with a JSON key file, stored securely.
  • Search Console verification of the site, then add your service account as a delegated site owner.
  • OAuth: “Every call to the Indexing API must be authenticated with an OAuth tokenA token is the smallest unit of text (or image/audio/video) an LLM processes — roughly 4 characters, or about ¾ of an English word. A context window is the maximum number of tokens (input plus output) a model can hold at once, like its short-term memory. that you get in exchange for your private key,” using the scope https://www.googleapis.com/auth/indexing.

The two methods (plus a status check)

  • URL_UPDATED“To notify Google of a new URL to crawl or that content at a previously-submitted URL has been updated.” POST the URL with "type": "URL_UPDATED". A successful call gets an HTTP 200HTTP 200 OK is the standard 2xx success status code, meaning the server received, understood, and fulfilled the request and is returning the resource. It's the code every page you want indexed should return — but a 200 alone doesn't guarantee Google will index the page. — Google’s own wording is that this “means that Google may try to recrawl this URL soon,” not that it will, or that the crawl will result in indexing.
  • URL_DELETED — before you request removal, Google requires that “the URL must return a 404 or 410 status code or the page must contain” a noindex meta tag — it’s an either/or, not “delete the page and also add noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed..” Once that’s true, POST the URL with "type": "URL_DELETED" so Google drops it.
  • Status (GET) — returns metadata (latest_update, latest_remove, notify_time). The critical caveat, verbatim: the GET request “only returns whether you successfully submitted a request.” It does not tell you whether Google actually indexed or removed anything.
  • Batching — to cut down on HTTP connections, you can “combine up to 100 calls to the Indexing API into a single HTTP request.” Quota is still counted per URL: 10 requests in one batch still uses 10 requests of quota.

Quotas

Google’s default quota has three separate dimensions, not just one number:

  • 200 publish requests/day per project — covers both URL_UPDATED and URL_DELETED calls combined. This is the number most guides cite.
  • 180 getMetadata (status) requests/minute per project.
  • 380 requests/minute per project across all endpoints combined.

All three are described as “initial default quota for testing” — going beyond them “requires additional approval for usage and resource provisioning,” via a request form, and Google notes “the quota may increase or decrease based on the document quality.” The common “hack” of spinning up multiple service accounts or projects to inflate the daily quota is exactly what Google forbids (see below).

Can you use it for normal pages? What Google actually says

Short answer: no, not in a supported way — and Google has been remarkably consistent and increasingly blunt about it.

The docs carry a spam warning. Around September 2024, Google added language to the quickstart making the stance explicit: “All submissions through the Indexing API undergo rigorous spam detection,” and “any attempts to abuse the Indexing API, including the use of multiple accounts or other means to exceed usage quotas, may result in access being revoked.”

The reps have said it for years. Back in May 2022, John Mueller framed it with his construction-vehicles analogy: the API “is meant for very specific kinds of content,” and using it elsewhere “doesn’t really make sense.” By May 2025 the tone was sharper — Mueller: “We see a lot of spammers misuse the Indexing API like this, so I’d recommend just sticking to the documented & supported use-cases,” and “I’d just use it properly, or not use it. If we wanted to suggest that people could use it regardless, we’d document it as such.”

That arc — 2022 “doesn’t make sense” → 2024 spam warning in the docs → 2025 “spammers misuse… use it properly or not use it” — is a multi-year pattern, not a one-off. Coverage has also noted the API gets effectively inundated by bloggers and SEOs treating normal sites as if they qualified.

The real risk, stated precisely. Mueller stops short of promising an algorithmic penalty. The honest framing is: it’s unsupported and against the guidelines, content pushed in improperly may not stay indexed, and your access can be revoked. Don’t overstate it as a guaranteed manual action — but don’t pretend it’s free, either.

The status-endpoint myth

This one deserves its own line because so many tools get it wrong: a successful submission is receipt confirmation, not an indexing promise. The status GET “only returns whether you successfully submitted a request.” If a dashboard shows you a green “indexed” badge off the back of a 200, it’s inferring something the API never told it.

Indexing API vs Request Indexing vs IndexNow

Three things get conflated constantly. They’re different mechanisms:

  • Indexing API (Google): programmatic, but content-restricted to JobPosting/BroadcastEvent. The narrowest of the three.
  • Request Indexing (GSC URL Inspection): works for any page you own, but it’s manual, one URL at a time, and meant for occasional use — and it’s a request, not a guarantee.
  • IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it.: the open, cross-engine push protocol (Bing, Yandex, Yep, Seznam, Naver) — and Google does not use it. It’s the cross-engine analog to the Indexing API, and the one I actually champion: I helped ship the IndexNow integration in Ahrefs Site Audit. But it doesn’t reach Google.

(Full breakdown in the Frameworks tab.)

What to do instead for general pages

If you’re not posting jobs or livestreams, the Indexing API is not your tool, and Google has said so repeatedly. Your real Google levers are the unglamorous ones:

  • Sitemaps — for coverage and discovery.
  • Internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them.orphan pagesAn orphan page is a page on your site that no other page links to internally. Because crawlers discover pages by following links, an orphan page is effectively invisible to search engines unless it's in an XML sitemap or linked from an external site. struggle; linked pages get found.
  • Content quality — Google decides what’s worth indexing; thin pages stall at “Discovered – currently not indexedA Google Search Console Page Indexing status meaning Google knows the URL exists but hasn't crawled it yet — the Last Crawl date is empty. Often a crawl-capacity or crawl-demand (site-quality) signal.” no matter how hard you push them.
  • GSC “Request indexing” — for genuine one-offs, sparingly.

For cross-engine pushing (Bing and friends, not Google), IndexNow is the right tool. And if you care about why pages aren’t getting indexed in the first place, that’s a crawl-frequency and quality question, not an API question.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.