Table of contents
IndexNow lets you tell Bing, Yandex, Naver, Seznam, Yep and Amazon about a new or changed URL the moment it exists, with one HTTP request and one key file on your own domain. It does not reach Google, and an HTTP 200 or 202 from it is a receipt, not a sign that the page is indexed. On 30 October 2026 On 30 October 2026 we sent five requests to the IndexNow endpoints with a key that had no file behind it. Three came back 202 "accepted", which is the response a working setup gets too.
Quick summary
| If you want to… | Do this | Time | Catch |
|---|---|---|---|
| Set it up by hand | Host {key}.txt at the site root, then POST a URL list to api.indexnow.org/indexnow | 10 min | A 202 is returned even when the key file is missing |
| Set it up on WordPress | Turn on Instant Indexing in ThinkRank | 5 min | Check the key file URL loads afterwards |
| Set it up on a static host | Add one curl POST to the deploy step | 15 min | Submit only the URLs that changed |
| Set it up on Cloudflare | Enable Crawler Hints | 2 min | It reports pages that missed the cache, not pages you chose |
| Confirm it | npx aiscan-cli yoursite.com, then open the key file and read the response code | 3 min | AIScan check D2 grades your XML sitemap, not IndexNow |
Short answer. Create a key, host it at https://yoursite.com/{key}.txt, and POST changed URLs to https://api.indexnow.org/indexnow on publish and update. Treat the response as delivery only. To learn whether a page is indexed, look at Bing Webmaster Tools or Search Console.
What IndexNow does and does not do
IndexNow is a protocol from Microsoft Bing and Yandex. A site pings an endpoint when a URL is added, updated or deleted, and the IndexNow documentation says participating engines share every submission with each other, so one ping is enough. The IndexNow FAQ lists these endpoints on 30 October 2026: the global one, Amazon, Bing, Naver, Seznam.cz, Yandex and Yep. Google is not on that list.
Two limits matter for anyone chasing AI search visibility:
- It is a hint. The FAQ says a submission does not guarantee indexing. Each engine decides whether to crawl based on its own quota and quality signals.
- It is only as reliable as the engine behind it. If an AI assistant's answers come from an engine on the list, a faster crawl can help. We found no first-party page from OpenAI or Microsoft on 30 October that states which index a given assistant uses, so we make no claim about ChatGPT or Copilot here.
We follow the same rule on our own blog: a ping is never counted as indexing. AIScan pings on publish and update only, and we measure indexing separately through Search Console. For tracking readiness over time, see monitor AI readiness over time.
Path 1: do it by hand with a key file and curl
This path works on any host and needs no plugin.
- Make a key of 8 to 128 characters using letters, digits and hyphens. A UUID without a prefix works:
uuidgen. - Create a UTF-8 text file named
{key}.txtwhose only content is the key. - Upload it to the web root so
https://yoursite.com/{key}.txtloads without a login. - Submit one changed URL, URL-encoded as RFC 3986 requires:
curl "https://api.indexnow.org/indexnow?url=https%3A%2F%2Fyoursite.com%2Fnew-post&key=YOUR_KEY"
- Submit several at once with a POST. The limit is 10,000 URLs per request.
curl -X POST https://api.indexnow.org/indexnow \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"host":"yoursite.com","key":"YOUR_KEY","urlList":["https://yoursite.com/new-post","https://yoursite.com/updated-post"]}'
If you cannot use the root, host the file elsewhere on the same host and add "keyLocation":"https://yoursite.com/folder/YOUR_KEY.txt". The documentation warns that the folder then limits which URLs the key can cover, and recommends the root.
Path 2: WordPress with ThinkRank
ThinkRank is the plugin we recommend here. It handles robots.txt, robots meta, schema, sitemaps and llms.txt from one plugin, so you are not tuning three plugins that fight over the same files. It also imports settings from Rank Math, Yoast, AIOSEO and SEOPress. Its Sitemaps and Crawling docs list "Instant Indexing with IndexNow" among the topics. We did not install it for this post, so read that page for the exact screen and the key handling on your version.
After you turn it on, run the same check as Path 1: find the key it uses, open https://yoursite.com/{key}.txt and confirm it shows only the key. Other SEO plugins offer IndexNow as well, and the IndexNow FAQ says that where a CMS or plugin supports it, you do not need to make a key file yourself.
Path 3: a static host or CI deploy
On a static site there is no publish event, so the deploy is the event. Add a step after the build that submits the pages that changed:
CHANGED=$(git diff --name-only HEAD~1 -- content/ | sed 's#content/#https://yoursite.com/#; s#\.md$##')
# build the JSON from $CHANGED, then POST it as in Path 1
Submit only what changed. The FAQ asks you not to resubmit the same URL many times a day without a meaningful change, and suggests waiting at least five minutes between updates to a frequently edited page.
Path 4: Cloudflare Crawler Hints
If your site is on Cloudflare, Crawler Hints sends IndexNow pings for you. Cloudflare's documentation says it uses a cache status of MISS to guess that content changed, and it does not report responses above 4xx. It is available on Free, Pro, Business and Enterprise plans. It is a good default for a site you rarely touch, and a weak one for a site where you need a ping on a specific page at a specific time. For that, use Path 1 or 3.
What the endpoints answered on 30 October 2026
We tested the API with a made-up key to see what each failure looks like. No key file existed for it: aiscan.site/{key}.txt returned 404. Six requests in total (five to IndexNow, one to our own domain), so treat this as a small sample.
| Request | Response |
|---|---|
GET to api.indexnow.org with the made-up key, our URL | 202 |
POST to api.indexnow.org with the same key and URL | 202 |
GET to www.bing.com/indexnow with the same key | 202 |
POST with a URL on a different host than host | 422, "not related to your verified domain" |
| POST with malformed JSON | 400, "Given request parameters are null or invalid" |
| Fetch the key file URL on our domain | 404 |
The first three rows are the finding. The key was fake and nothing was hosted, yet the endpoints accepted it. The FAQ explains that a 202 means the URL was received and the engine will verify the key later. So a first ping can return 202 on a good setup and on a broken one. We did not see a 200, a 403 or a 429 in this run. The documentation lists 403 for an invalid key and 429 for too many requests.
How to confirm it worked
Work from the easiest check to the hardest.
- Run the scan.
npx aiscan-cli yoursite.com, or paste the URL at aiscan.site. Check D2 looks for a valid XML sitemap at/sitemap.xmlor/sitemap_index.xml. It does not test IndexNow itself. - Open the key file. The URL must return 200 and show only the key. A 404 here is the most common reason a setup silently fails.
- Read the response code of your own submission. If you only get 202 over days, verify the key file again.
- Check the engine. In Bing Webmaster Tools, look at the URL's status a few days later. Use Search Console for Google, which IndexNow does not touch.
Manual checking works without us. The scan is the quickest first step because it tells you whether the sitemap you are pinging about is sound.
Mistakes to avoid
- Pinging every URL on every deploy. It burns your crawl quota and teaches engines to ignore you.
- Submitting URLs on a different host or subdomain than the one the key file lives on.
- Leaving a key in a public repository you want to rotate. The FAQ describes rotation: publish a new key file, then submit with the new key.
- Reading 200 as "indexed". It means received.
Next step
Run npx aiscan-cli yoursite.com and look at D2 under discoverability checks. Fix the sitemap first, then set up one of the four paths above. For the sitemap side, read how to publish a sitemap AI crawlers can find, and browse the rest of the AIScan guides.
Frequently asked questions
What is IndexNow?
A protocol that lets a site tell participating search engines when a URL is added, updated or deleted. One submission is shared with the other engines. It does not guarantee indexing.
Does IndexNow work with Google?
No. Google is not among the endpoints the IndexNow FAQ listed on 30 October 2026. Use Search Console and a sitemap for Google.
My IndexNow request returns 202. Is it working?
Not necessarily. A 202 means the URL was received and the key will be verified later. On 30 October 2026 a made-up key with no file also got 202. Open https://yoursite.com/{key}.txt and confirm it shows only the key.
I get 403 from IndexNow. What is wrong?
The documentation lists 403 for an invalid key, such as a key file that is missing or does not contain the key. Fix the file at the root, then submit again.
I get 422 from IndexNow. What is wrong?
The URLs do not belong to the host in your request, or the key does not match the protocol's format. In our test, a URL on another host returned 422 with a message about the verified domain.
I get 429 from IndexNow. What now?
You are sending too many requests. Submit only URLs that changed, batch them in one POST, and avoid resubmitting the same URL many times a day.
Do I need a plugin to use IndexNow?
No. A key file and a curl POST are enough. A plugin, a CMS or Cloudflare Crawler Hints can send the pings for you.
Does a 200 from IndexNow mean my page is indexed?
No. It means the engine received the URL. Check the page's status in Bing Webmaster Tools or Search Console.

About the author
M Asif Rahman
Entrepreneur, curious about AI
I have been building companies for a long time, and lately most of my curiosity goes to AI. AIScan is a small personal project I built on a flight from Dubai to Narita. I use it to understand how ready the web is for AI agents, and I share what the scans teach me.
Related guides
Does robots.txt Need a Sitemap Line? 782 Sites Show What Happens
Of 782 sites in our scan database on 29 October 2026, 572 serve a robots.txt that declares a sitemap, 89 serve a robots.txt with no Sitemap line, and 121 fail the robots.txt check outright. Declaring…
AI readiness setup guide by platform (2026)
Verified 17, 18, 20 and 22 October 2026. Updated on 22 October 2026. An AIready site needs six things: a robots.txt that names AI crawlers D1, B2, a sitemap D2, a declared feed E5, an llms.txt C2,…
Publish a Sitemap AI Crawlers Can Actually Find and Trust
A sitemap that returns 200 is the start of the job, not the end of it. Of 14 wellknown sites we fetched on 3 October 2026, 12 declared a sitemap in robots.txt. One of those, Stripe, serves its file…
