IndexNow is a free, open protocol that lets your website tell search engines the moment a page is added, updated or deleted, instead of waiting for them to crawl. It is used by Bing, Yandex, Seznam, Naver and Yep, and a submission to one is shared with the others. Google does not use IndexNow, so you still need a sitemap for Google.
How it works
Without IndexNow, a search engine finds changes by crawling: it revisits your pages on its own schedule and notices what is new. For a small or rarely updated site, that can take days.
With IndexNow, your site sends a short message saying “these URLs changed”. The search engine then decides whether and when to crawl them. Three things to understand:
- It is a hint, not a command. Submitting a URL doesn’t guarantee it will be crawled or indexed. Quality and other signals still decide.
- It is shared. Participating engines pass submissions to each other, so you only need to ping one endpoint.
- It proves ownership with a key. You host a small text file on your site, so nobody else can submit URLs in your name.

Who supports it
| Search engine | Uses IndexNow |
|---|---|
| Microsoft Bing | Yes |
| Yandex | Yes |
| Seznam.cz | Yes |
| Naver | Yes |
| Yep | Yes |
| No |
Google tested the protocol some years ago but has not adopted it. For Google, keep an accurate XML sitemap and use Search Console; see the Search Console guide.
Because Bing’s index feeds Microsoft Copilot, faster discovery in Bing can also help new pages become available to AI answers sooner. The Bing Webmaster Tools guide explains why.
Step 1: create your key
The key is a string you choose, made of letters, numbers and dashes, between 8 and 128 characters long. A random hexadecimal string works well:
a3f9c2e7b1d84f6e9a0c5b2d7e4f1a8c
Treat it as public. It isn’t a password; it just shows that you control the site.
Step 2: host the key file
Save the key in a plain text file named after the key itself, and put it in your site’s root:
https://www.example.com/a3f9c2e7b1d84f6e9a0c5b2d7e4f1a8c.txt
The file contains only the key, in UTF-8. Open the URL in a browser to check it returns the key with a 200 response.
You can host the file elsewhere on the same host, but then you must send its location in every submission with the keyLocation parameter, and you can only submit URLs under that folder. The root is simpler.
Step 3: submit URLs
One URL
A simple GET request is enough:
https://api.indexnow.org/indexnow?url=https://www.example.com/new-page&key=a3f9c2e7b1d84f6e9a0c5b2d7e4f1a8c
Many URLs
Send a POST with JSON. You can include up to 10,000 URLs in one request, all from the same host:
POST https://api.indexnow.org/indexnow
Content-Type: application/json; charset=utf-8
{
"host": "www.example.com",
"key": "a3f9c2e7b1d84f6e9a0c5b2d7e4f1a8c",
"keyLocation": "https://www.example.com/a3f9c2e7b1d84f6e9a0c5b2d7e4f1a8c.txt",
"urlList": [
"https://www.example.com/new-page",
"https://www.example.com/updated-page"
]
}
You can send to api.indexnow.org or directly to one engine’s endpoint, such as Bing’s. The result is the same.
Reading the response
| Code | Meaning |
|---|---|
| 200 | Received |
| 202 | Received; the key is still being checked |
| 400 | Bad request, usually a formatting error |
| 403 | Key not valid, or the key file couldn’t be found |
| 422 | URLs don’t belong to the host, or the key doesn’t match |
| 429 | Too many requests; slow down |
The easy way: let your platform do it
You may not need to write any code.
- WordPress: several SEO plugins and a dedicated IndexNow plugin handle the key and pings automatically.
- Cloudflare: the Crawler Hints feature can send IndexNow signals for sites behind it.
- Other CMSs and hosts: many have built-in support or a plugin. Check your platform’s documentation.
- OZMAICO: SEO → Submit pages sends your URLs through IndexNow and your sitemap to Google and Bing from one screen. Create a free account to use it.
Use one method, not three. Several tools pinging the same change is harmless but pointless.
When to ping, and when not to
Do submit a URL when:
- you publish a new page;
- you make a real change to content, price, availability or key facts;
- you delete a page (it should then return 404 or 410), or redirect it.
Don’t submit:
- pages that haven’t changed, on a timer, “just in case”;
- every URL on your site every day;
- URLs that are noindexed, blocked by robots.txt, or redirect elsewhere, unless you are signalling a removal or move;
- tracking or filter variations of the same page. Submit the canonical URL only.
Repeatedly submitting unchanged URLs won’t speed anything up, and it can get your requests throttled.
Common problems
- 403 errors: the key file is missing, has extra spaces or a byte-order mark, or sits behind a login or bot challenge. Make sure crawlers can fetch it.
- 422 errors: you are submitting
example.comURLs with awww.example.comhost, or the other way round. - Pages still not indexed: IndexNow only speeds up discovery. If a page isn’t indexed after it was crawled, the reason is usually quality, duplication or a technical block.
In short
- IndexNow tells Bing, Yandex, Seznam, Naver and Yep about changes immediately.
- Google doesn’t use it; keep your sitemap for Google.
- Create a key, host it at
/your-key.txt, then ping with GET or POST. - Submit only real changes, canonical URLs, and deletions.
- Use your CMS or one tool for it, not several.
Check your own website
See which AI bots really visit your site — real or fake, page by page — and how many people AI assistants send you. Free.
