Guide
How to Set Up IndexNow: The 20-Minute Guide
The short answer
How do I set up IndexNow?
IndexNow is a shared protocol for telling participating search engines (Microsoft Bing among them) that a URL changed, the moment it changed. Setup takes 3 steps: generate a key of 8 to 128 characters, host it as a .txt file at your site root, and submit URLs to api.indexnow.org — up to 10,000 per POST request. Submission does not guarantee crawling or indexing.
IndexNow is one of the few pieces of answer-engine plumbing you can finish in one sitting. The protocol lets a site push a changed URL to participating search engines instead of waiting for a crawler to find it, and the whole setup is a key file plus an HTTP request. This guide walks the 3 steps, the response codes, and the honest limits — including the one the protocol's own documentation states plainly: submission does not guarantee crawling or indexing (indexnow.org).
We wire IndexNow into the deploy step of every build we run because the cost is close to zero. What we do not do is credit it with outcomes we have not measured — this page claims nothing about how much faster Bing crawls a submitted URL, because we have not published a controlled before/after from our own logs yet.
What is IndexNow and which engines read it?
IndexNow is a shared push protocol: you tell 1 participating engine that a URL was added, updated, or deleted, and the submission is automatically shared with the other participating engines (indexnow.org documentation). Microsoft Bing is the anchor participant and provides the getting-started tooling and verification surface in Bing Webmaster Tools.
The protocol exists because pull-based discovery wastes time in both directions. A crawler that revisits unchanged pages burns your server budget; a crawler that has not yet revisited a changed page serves stale results. A push protocol removes the waiting on the engine side — nothing more. It is a doorbell, not a door.
For AI search specifically, the interest is indirect but real: answer engines that lean on Bing's index can only cite what that index has seen. Getting new and updated pages into the index promptly is part of the same freshness story covered in the operator's guide, and the indexing step of our authority engine system.
How do I generate and host the IndexNow key?
Generate a key of 8 to 128 characters, drawn from lowercase letters, uppercase letters, digits 0–9, and dashes (indexnow.org documentation). Bing Webmaster Tools will generate one for you, but any random string within those rules works.
Then host the key as a UTF-8 text file at your site root: a file named
{your-key}.txt whose entire content is the key itself. If your key were
a1b2c3d4e5f6, the file would live at:
https://www.example.com/a1b2c3d4e5f6.txt
The engine fetches that file to confirm the submitter controls the domain.
There is a second option — hosting the file elsewhere and passing a
keyLocation parameter — but then submitted URLs must sit at or below the key
file's directory, so the root placement is the simpler default for a whole
site.
How do I submit URLs — single and bulk?
For a single changed URL, one GET request does it:
https://api.indexnow.org/indexnow?url=https://www.example.com/new-page/&key=a1b2c3d4e5f6
For bulk submission, POST a JSON body to api.indexnow.org:
{
"host": "www.example.com",
"key": "a1b2c3d4e5f6",
"urlList": [
"https://www.example.com/new-page/",
"https://www.example.com/updated-page/"
]
}
A single POST can carry up to 10,000 URLs, mixing http and https if needed (indexnow.org documentation). Submit URLs when they are published, updated, or deleted — there is no benefit to resubmitting unchanged pages, and hammering the endpoint is what the 429 response code exists to punish.
In practice the clean integration point is your deploy pipeline: collect the URLs that changed in this release and fire one POST. On our builds this is a short script in the publish step, the same place the sitemap regenerates.
What do the IndexNow response codes mean?
The API answers with standard HTTP codes. These are the documented meanings (indexnow.org, as of August 2026):
| Code | Meaning | What to do |
|---|---|---|
| 200 | URL submitted successfully | Nothing — done |
| 202 | Received; key validation pending | Wait; verify the key file resolves |
| 400 | Invalid format | Fix the request body or URL escaping |
| 403 | Key not valid or not found | Check the key file name, location, and content |
| 422 | URLs do not match the host, or key mismatch | Submit only URLs on the verified host |
| 429 | Too many requests (potential spam) | Back off and batch submissions |
A 200 confirms submission, not indexing. Whether the engine crawls the URL, and whether it indexes what it crawls, remain the engine's decisions — Bing's own getting-started page says exactly that.
Does IndexNow work for Google?
No. Google is not part of the IndexNow participant model, and nothing in Google's Search Essentials or crawler documentation describes an IndexNow endpoint. Googlebot's documented discovery paths are links and XML sitemaps (Google Search Essentials).
That makes the practical architecture a 2-channel one: IndexNow covers the Bing-side engines, and your XML sitemap plus internal linking covers Google. Neither replaces the other, and dropping the sitemap because IndexNow exists would be a mistake in both channels — participating engines still read sitemaps too. For the wider map of which crawlers visit and why, see the complete AI crawler list and the robots.txt decision framework.
Is IndexNow worth the 20 minutes?
For most sites, yes — precisely because the claim is so small. The setup is a key file and a request; the ongoing cost is a few lines in a deploy script; and the failure mode is harmless, since engines that ignore the ping simply crawl you the way they already did. A tactic this cheap does not need a big payoff to clear its bar.
What it is not is a growth lever, and nobody should sell it to you as one. You do not need an agency, a plugin subscription, or a tool to implement a protocol whose entire surface is 1 text file and 1 endpoint — if a vendor quotes real money for "IndexNow integration," that money is buying convenience, not capability. And if your site publishes or updates a handful of pages a year, waiting for the normal crawl costs you almost nothing; skipping IndexNow entirely is a defensible choice.
Our position as operators: we ship it on every build because our sites publish in tranches, and a tranche of new URLs is exactly what a batch push protocol is for. We treat the result the way the documentation tells us to — engines made aware, nothing guaranteed.
Frequently asked questions
How do I set up IndexNow?
Three steps: generate a key of 8–128 characters, host it as a UTF-8 .txt file at your site root, and submit changed URLs to api.indexnow.org — a GET request for one URL or a JSON POST for up to 10,000. Verify receipt in Bing Webmaster Tools.
Does IndexNow guarantee my pages get indexed?
No. The protocol's own documentation says submission ensures engines are aware of changes but does not guarantee crawling or indexing. Treat it as a discovery signal that removes waiting, not as a lever that forces inclusion — the 10,000-URL cap is a submission limit, not an indexing promise.
Does Google support IndexNow?
Google is not part of the IndexNow participant model. Google's Search Essentials and crawler documentation describe discovery through links and XML sitemaps, with no IndexNow endpoint. Run IndexNow for Bing-side engines and keep your sitemap for Googlebot — the 2 channels are independent.
How many URLs can I submit to IndexNow at once?
Up to 10,000 URLs in a single POST request, mixing http and https if needed. The JSON body carries host, key, an optional keyLocation, and the urlList array. Submissions to one participating engine are shared with the others automatically.
What do the IndexNow response codes mean?
200 means the URL was submitted successfully; 202 means received with key validation pending; 400 is an invalid format; 403 means the key was not found or does not match; 422 means the URLs do not match the submitted host; 429 means too many requests.
Sources
- IndexNow protocol documentation — IndexNow
- IndexNow getting started — Microsoft Bing
- Bing Webmaster Guidelines — Microsoft Bing
- Google Search Essentials — Google