The short answer
IndexNow works for every page on your site; the Google Indexing API does not. IndexNow is an open push protocol supported by Bing, Yandex, Naver, Seznam and IndexNow-participating partners, and it accepts any URL type. Google's Indexing API is officially limited to two structured-data types - JobPosting and BroadcastEvent (livestreams). Submitting ordinary blog posts or product pages to Google's Indexing API is off-policy and simply won't speed up indexing.
So the practical 2026 stack is: IndexNow for everything, Google Indexing API only if you publish jobs or livestreams, and sitemaps plus internal links as the durable discovery layer for Google.
Side-by-side comparison
- Scope of content - IndexNow: any URL (posts, products, categories, docs, deletions). Indexing API:
JobPostingandBroadcastEventonly. - Engines reached - IndexNow: Bing, Yandex, Naver, Seznam and partners that share the feed. Indexing API: Google only.
- Authentication - IndexNow: a plain text key file hosted at your domain root. Indexing API: OAuth 2.0 service account added as an owner in Search Console.
- Request shape - IndexNow: one
GETping or aPOSTwith up to 10,000 URLs per batch. Indexing API: one JSON call per URL, withURL_UPDATEDorURL_DELETED. - Quotas - IndexNow: generous, rate-shaped rather than hard-capped. Indexing API: 200 requests/day by default per project.
- Setup time - IndexNow: minutes. Indexing API: an hour or more (Cloud project, service account, key rotation).
- What it guarantees - Both: faster discovery. Neither guarantees indexing. Quality and crawl-worthiness still decide.
How IndexNow actually works
You generate a key (a random alphanumeric string), host it as https://example.com/<key>.txt containing exactly that key, then ping the endpoint whenever content changes:
GET https://api.indexnow.org/indexnow?url=https://example.com/new-post&key=YOUR_KEY
For bulk changes, post a batch instead:
POST https://api.indexnow.org/indexnow
Content-Type: application/json
{
"host": "example.com",
"key": "YOUR_KEY",
"keyLocation": "https://example.com/YOUR_KEY.txt",
"urlList": [
"https://example.com/post-a",
"https://example.com/post-b"
]
}
A 200 means accepted. A 403 almost always means the key file isn't reachable; 422 means a URL doesn't belong to the declared host. Ping on publish and on meaningful updates - not on every minor edit, and never on a loop, which gets your host rate-limited.
How the Google Indexing API works
You create a Google Cloud project, enable the Indexing API, create a service account, and add its email as an owner of the property in Search Console. Then you call:
POST https://indexing.googleapis.com/v3/urlNotifications:publish
Authorization: Bearer <oauth-token>
{ "url": "https://example.com/jobs/senior-engineer", "type": "URL_UPDATED" }
Use URL_DELETED when a job closes or a livestream ends - this is the underrated half of the API and it keeps expired listings out of the results. Because the daily quota is small, spend it on the pages where freshness is the product: expiring job postings and time-boxed broadcasts.
What to use for ordinary pages on Google
For everything else on Google, the levers that still work are unglamorous but reliable:
- A clean, current
sitemap.xmlwith accuratelastmodvalues - Google readslastmodwhen it's trustworthy. - Internal links from pages Google already crawls often, so new URLs inherit crawl attention.
- Search Console's URL Inspection "Request indexing" for one-off priority pages.
- Removing crawl waste - soft 404s, faceted duplicates, redirect chains - so your crawl budget goes to pages that matter.
Confirm each new URL is actually indexable before you push it anywhere with our index status checker, and fix the underlying blockers using the Google indexing issues guide.
Why IndexNow matters for AI-first search
AI answer surfaces are increasingly fed by search indexes rather than their own crawls. Copilot and Bing-backed answers draw on the Bing index; several assistant products lean on partner indexes that participate in IndexNow. When your fresh page enters those indexes hours instead of days after publishing, it becomes eligible to be cited while a topic is still moving. That timing advantage is the whole point of a push protocol - it doesn't make weak content rank, it makes good content available sooner.
The same content that gets cited also needs to be machine-readable: accurate structured data, clear headings, and factual, quotable paragraphs. Pair fast indexing with the schema markup generator so the pages you push are easy for both crawlers and language models to parse.
A combined workflow that works
- Publish, then regenerate the sitemap with a fresh
lastmod. - Ping IndexNow with the new or updated URL (batch if you shipped many).
- If it's a job posting or livestream, also call the Google Indexing API with
URL_UPDATED. - Add internal links from two or three established pages on the same topic.
- Verify indexability and, a few days later, actual coverage in Search Console and Bing Webmaster Tools.
- Ping
URL_DELETED/ IndexNow on removal when content expires, so stale URLs drop out fast.
Common mistakes
- Submitting non-job, non-broadcast URLs to Google's Indexing API and expecting a speed-up. It's out of scope.
- Pinging IndexNow for pages that are
noindex, canonicalized elsewhere, or blocked inrobots.txt- a push can't override an exclusion. - Spamming submissions on every save. Push on meaningful change only.
- Hosting the key file at the wrong path or with extra whitespace, which returns
403. - Treating either API as a fix for thin content. Faster discovery of a weak page just gets it evaluated and dropped sooner.
Bottom line
IndexNow is the general-purpose fast-indexing tool: broad scope, trivial setup, real coverage across Bing, Yandex, Naver and AI-adjacent surfaces. The Google Indexing API is a specialist tool for expiring jobs and livestreams. Run IndexNow on every publish, reserve the Indexing API for its two supported types, and keep sitemaps and internal linking healthy for Google. That combination gets your content discovered as fast as the protocols allow - and leaves ranking to the quality of the page itself.