IndexNow: tell Bing a page changed instead of waiting for a crawl
IndexNow pushes changed URLs to Bing and other engines in one request. How the key file works, what Google does instead, and a script to run after deploy.
A new site waits for crawlers to notice it. IndexNow flips that around: after a deploy, you send the list of changed URLs to one endpoint, and the participating engines hear about them straight away.
How the verification works
- Generate a random key, 32 hex characters is plenty.
- Publish it as a text file at your root:
https://example.com/<key>.txt, containing only the key. - POST your URLs to
https://api.indexnow.org/indexnowwith the host, the key and the key file's location.
The engine fetches the key file to prove the submitter controls the host, so a submission from a build that has not deployed yet fails. Our script checks the key file is live before sending anything, and reads the URL list straight from the live sitemap so it never submits a page that does not exist.
POST https://api.indexnow.org/indexnow
{
"host": "example.com",
"key": "<key>",
"keyLocation": "https://example.com/<key>.txt",
"urlList": ["https://example.com/new-page/"]
}A 200 or 202 means accepted. Ours submitted twenty-seven URLs in one call.
Where it fits
It does not replace Search Console for Google, and it does not make a thin page rank. It shortens the gap between publishing and being known. For a site that also wants to be found by assistants, being known to Bing early is worth one script. The Google side is in Search Console for a new site.
Questions
Does Google support IndexNow?
No. Google discovers pages through sitemaps, links and Search Console. IndexNow reaches Bing, Yandex, Seznam, Naver and others that share the protocol.
Is the IndexNow key a secret?
No. You publish it as a text file at your site's root so the engine can confirm you control the domain. Committing it to your repository is fine.
How often should I submit URLs?
When pages are added or meaningfully changed, typically after a deploy. Resubmitting unchanged URLs repeatedly does not speed anything up.