# What Is IndexNow and How to Tell Bing About Site Changes

> What IndexNow is, which search engines use it (Google does not), how a URL is submitted with its key and what it does for a store when a price changes.

URL: https://clione.ai/glossary/indexnow/
Lang: en

IndexNow is not a Google tool or a plugin that pushes you up the rankings: it is **a notice**. Instead of waiting for a [crawler](/glossary/web-crawler/) to come back to your site and notice that something has changed, your site tells it. According to the initiative itself, without that notice search engines can take **anywhere from days to weeks** to discover that content has changed.[^indexnow-home] For a store, what changes often is exactly what matters most to keep current: a new product, a marked-down price, a [product page](/glossary/product-page/) that sells out or is retired. And there is a new reason: Bing recommends IndexNow to keep information fresh **in search and in AI experiences**, [Copilot](/glossary/copilot/) among them.[^bing-ai-performance]

## How it works

The protocol has three pieces: a key, a file that proves it and the request that announces the change.[^indexnow-docs]

**The key.** It is a string of 8 to 128 characters that can contain only letters, numbers and hyphens. To prove the site is yours, you publish a UTF-8 text file named after the key, `{key}.txt`, at the root of the domain; when you submit URLs, the search engine reads that file to check you are the owner. It can also be stored at another path and pointed to with the `keyLocation` parameter, but then it is only valid for URLs that start with that path.[^indexnow-docs]

**The notice.** For one URL, a GET request to the search engine's address with two parameters, `url` and `key`, is enough. For several, a POST request with a JSON body carrying the host, the key and the list of URLs: **up to 10,000 URLs per submission**.[^indexnow-docs]

**The response.** A 200 means the URL was received; a 202, that it was received and the key is pending validation. A 400 is an invalid format; a 403, that the key is not valid or is not in the file; a 422, that the URLs do not belong to the host or the key does not meet the format; and a 429, too many requests, with possible suspicion of spam.[^indexnow-docs]

**Who gets it.** A notice sent to any participating search engine **is shared with all the others**.[^indexnow-docs] The initiative's list includes Amazon, Bing, Naver, Seznam.cz, Yandex and Yep, plus a global submission endpoint.[^indexnow-faq] Google is not on it. For Google, the equivalent route is the [XML sitemap](/glossary/xml-sitemap/): it asks you to keep it up to date and, if the content changes, to include the `<lastmod>` tag.[^google-crawl-budget]

**What to send.** The URLs that have been added, updated or deleted: new products, changed descriptions, price or availability changes, user content and deleted pages. Also redirected URLs and those that return a 404 or a 410, so the search engine updates its index. What you should not do is send the same URL many times a day with no content changes; if you need to repeat, the initiative asks you to wait at least five minutes. Daily limits are not public: each search engine sets its own per site.[^indexnow-faq]

**What it does not do.** The protocol says it in so many words: the 200 **only indicates that the search engine received the URL**.[^indexnow-docs] Bing repeats it: IndexNow makes sure search engines know about your changes, but it does not guarantee that the pages will be crawled or indexed.[^bing-indexnow] What it does aim for is that the search engine prioritizes those URLs and needs less crawling of its own to discover what is new.[^indexnow-home]

## On a store

A store marks down two products and retires a third, which now returns a 404. It announces all three at once with a single request. This is a **fictional example**: the domain, the key and the URLs are invented.

```http
POST /indexnow HTTP/1.1
Host: <search engine>
Content-Type: application/json; charset=utf-8

{
  "host": "example-store.com",
  "key": "4f6a1c2e9b7d40a8b3e5c1d2f0a9b8c7",
  "keyLocation": "https://example-store.com/4f6a1c2e9b7d40a8b3e5c1d2f0a9b8c7.txt",
  "urlList": [
    "https://example-store.com/products/urban-backpack-20",
    "https://example-store.com/products/travel-backpack-40",
    "https://example-store.com/products/backpack-2024-edition"
  ]
}
```

The third URL is on the list on purpose: a retired product page is also a change, and announcing it helps the search engine update its index.[^indexnow-faq] If the response is a 200, all you know is that the notice arrived.

You almost never need to write this request by hand. Bing cites several content management platforms with IndexNow built in, among them Wix, Duda, GoDaddy and Shopify, and one CDN, Cloudflare, through its Crawler Hints feature.[^bing-indexnow] Cloudflare turns it on from the dashboard and uses responses that were not in its cache as a hint that the content has changed, to send the notice.[^cloudflare-crawler-hints] On Shopify, the mention is Bing's: we have not found in Shopify's help how it does it, so **check in [Bing Webmaster Tools](/glossary/bing-webmaster-tools/) before installing an app that does the same**.


**IndexNow does not notify Google, and a 200 is not an indexed page.** Google is not among the search engines that receive the notices,[^indexnow-faq] so for Google you still depend on the sitemap and on ordinary crawling. And the protocol's successful response only confirms receipt: crawling and [indexing](/glossary/indexing/) are decided by each search engine afterward.[^indexnow-docs][^bing-indexnow]


## How to check it

1. **See whether you already have it.** Check whether your platform or your CDN is among those Bing cites as having IndexNow built in and, if you use Cloudflare, whether Crawler Hints is turned on in the dashboard.[^bing-indexnow][^cloudflare-crawler-hints]
2. **Open the key file** at `yourdomain.com/{key}.txt`. It has to respond and contain the same key the notices use, or you will get a 403.[^indexnow-docs]
3. **Send a test URL and read the code.** A 200 or a 202 is correct; a 422 usually means URLs from another host, and a 429 that you are notifying too much.[^indexnow-docs]
4. **Check receipt in Bing Webmaster Tools.** Bing says that is where you verify whether search engines have received your URLs.[^bing-indexnow]
5. **Do not forget Google.** Keep the sitemap with a `<lastmod>` that changes only when the content changes.[^google-crawl-budget]

## Related concept: XML sitemap

Both exist so a search engine learns your URLs, but they work in opposite directions. The sitemap is a list the search engine goes to fetch when it decides to: it describes which URLs exist and when they changed. IndexNow is a notice the site sends at the moment of the change, URL by URL. **The sitemap waits to be read; IndexNow knocks on the door.** They complement each other: the sitemap remains the route for Google, and IndexNow notices reach every search engine that uses it. Neither guarantees crawling, and neither on its own saves the [crawl budget](/glossary/crawl-budget/) that is lost on useless URLs.

To keep going, the [crawling and indexing reading path](/learn/crawling-and-indexing/) puts the rest of the terms in order.
