Skip to content
Innovialabs

What Is IndexNow and How It Speeds Up Indexing in Yandex and Bing

Basics3 min

In short

IndexNow is an open protocol that lets a site instantly notify Bing, Yandex and other participating search engines about new, changed or deleted URLs; Google does not use it, so a sitemap is still required.

The short answer

IndexNow is an open protocol for notifying search engines that a URL has been added, updated or deleted. Instead of waiting for a crawler to discover the change, your site sends a short request with the list of URLs, and the search engine can recrawl them sooner.

It is supported by Bing, Yandex and several other engines (for example Seznam and Naver). Participating engines share submitted URLs with each other, so one request to a single endpoint is enough. Google does not support IndexNow, which is why it does not replace a sitemap and Search Console.

How the protocol works

  1. You generate a key: a string of 8 to 128 characters using letters, digits and dashes.
  2. You publish the key in a text file on your domain, usually at the root: https://example.com/<key>.txt. The file contains only the key itself.
  3. When content changes, your site sends a request with the URLs and the key.
  4. The search engine fetches the key file to confirm that you own the site, then queues the URLs for crawling.

A notification is a hint, not an order. The engine still decides whether and when to crawl and index the page.

Setting up the key file

  • Generate a random key and save it as <key>.txt in the site root.
  • Make sure the file is accessible over HTTPS and returns status 200 with the key as plain text.
  • If the file cannot sit at the root, put it elsewhere on the same host and pass its address in the keyLocation parameter. In that case, only URLs under that path can be submitted.

In Next.js, the simplest option is to place the file in the public folder so it is served at the root.

Sending URLs

For one URL, a GET request is enough:

curl "https://api.indexnow.org/indexnow?url=https://example.com/blog/new-post&key=YOUR_KEY"

For several URLs, use POST with JSON:

curl -X POST "https://api.indexnow.org/indexnow" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"host":"example.com","key":"YOUR_KEY","urlList":["https://example.com/blog/a","https://example.com/blog/b"]}'

All URLs in one request must belong to the same host.

From a CMS

Many CMS platforms have plugins or built-in settings for IndexNow. Check that notifications are sent only for published pages and not for drafts, previews or service URLs.

From a Next.js site

Send the notification on the server after publishing, for example in a route handler called by your CMS webhook:

export async function notifyIndexNow(urls: string[]) {
  await fetch("https://api.indexnow.org/indexnow", {
    method: "POST",
    headers: { "Content-Type": "application/json; charset=utf-8" },
    body: JSON.stringify({
      host: "example.com",
      key: process.env.INDEXNOW_KEY,
      urlList: urls,
    }),
  });
}

Call it only when content actually changes. Do not send the whole site on every deploy.

Response codes to know

CodeMeaning
200URLs received
202Received, key validation pending
400Invalid request format
403Key not valid or key file not found
422URLs do not belong to the host or the key does not match
429Too many requests, slow down

Why it does not replace sitemaps for Google

Google discovers pages through links, sitemaps and Search Console. IndexNow notifications do not reach it. Keep doing the basics:

  • maintain an up-to-date XML sitemap with correct lastmod dates;
  • submit it in Search Console and Yandex Webmaster;
  • link to new pages from existing ones.

IndexNow complements this setup for Bing and Yandex. It also does not fix pages that search engines choose not to index because of low quality or duplicates.

FAQ

No. Participating engines share notifications, so one request to api.indexnow.org or to any single engine's endpoint is enough.

We can help with this

If you'd rather get the result than figure it all out yourself — this is what we do every day.

Discuss a project

Read next

Have an idea or a task? Tell us about it

We'll reply within one business day and propose a solution. The consultation is free.