IndexNow: what it does, who uses it and how to set it up

Kane Vu

Short answer

IndexNow is an open protocol that lets a website tell search engines the moment a page is added, updated or deleted, in place of waiting for a crawler to notice. One submission reaches Microsoft Bing, Naver, Seznam.cz, Yandex, Yep and Amazon. Google is not on the list. Setup means hosting a small key file and sending the changed URLs. It speeds up discovery, but it does not guarantee indexing.

What is IndexNow?

IndexNow is a way to tell search engines that a URL has changed. A search engine normally finds out by coming back to crawl your site on its own schedule, which can take days or longer for a small site, and most of those visits find nothing new. With IndexNow, you send a short message saying which pages were added, updated or deleted, and the engine can decide to fetch them.

Three things set it apart from other routes:

  • It needs no account. You prove you own the site by hosting a key file, as you might verify a domain for other services.
  • One message reaches every participant. Engines in the protocol agree to share submitted URLs with each other, so you send to a single endpoint.
  • It covers deletions. You can report pages that now return 404 or 410, and redirects, so that old results get cleaned up too.

Microsoft’s Bing team presents it as a way to reduce wasteful crawling on both sides. The idea only asks the engine to look. What it finds on the page is still judged the normal way.

Which search engines support IndexNow?

The protocol’s FAQ, read in November 2026, lists these endpoints:

EngineMain marketEndpoint host
Microsoft BingGlobal, and it powers Copilotwww.bing.com
AmazonAmazon productsindexnow.amazonbot.amazon
NaverSouth Koreasearchadvisor.naver.com
Seznam.czCzech Republicsearch.seznam.cz
YandexRussia and nearby marketsyandex.com
YepGlobalindexnow.yep.com
Shared endpointPasses to all of themapi.indexnow.org

Google is not on the list. The protocol’s site does not name it, and Google’s own Indexing API is a different thing: its documentation limits that API to pages with JobPosting or BroadcastEvent markup. For an ordinary business site, Google finds changes through its regular crawling, your sitemap and Search Console’s URL Inspection tool. So IndexNow does nothing for your Google listing, and you should not expect it to.

Bing’s index is the most direct reason. Microsoft says experiences such as Copilot are powered by Bing’s search index, so a page Bing has not refreshed may be out of date in those answers too. OpenAI also links Microsoft’s privacy statement among the search providers ChatGPT search may work with, though it does not say how much it relies on any provider.

The link has limits, and it would be easy to overstate:

  • OpenAI, Anthropic and Perplexity run their own crawlers. A ping to Bing is not a ping to OAI-SearchBot.
  • Amazon is on the list, but no route is stated. It documents Amzn-SearchBot for search in products such as Alexa, without saying how submissions feed them.
  • No one has published the effect on AI answers. The IndexNow FAQ says the protocol helps content be found by “traditional and AI-powered search engines”, but gives no measurement.

Its value is simple freshness: if your price changed today, the engines that take part can hear about it today. For businesses where facts change often, that alone is enough reason to spend half an hour on it. Our AI search optimization plan places it as a small task after access is sorted out.

A courier on a bicycle crossing a cobbled square, seen from above

How do you set up IndexNow?

Check first whether your platform already does it, since that is the easiest route. Bing’s getting-started page lists these options:

Your platformRoute
WordPressYoast, Rank Math, AIOSEO, SEOPress, or the IndexNow plugin
ShopifyA third-party app such as InstaIndex
CloudflareTurn on Crawler Hints in your Cloudflare account
Joomla, Drupal, PrestaShop, Shopware, Opencart, Typo3, UmbracoAdd-ons listed on Bing’s page
Anything elseThe steps below, by script

Bing notes that these are third-party plugins, so read what each one sends before you enable it. Avoid running two systems that both submit, since duplicate pings have no benefit.

For a custom site, it takes four steps.

1. Make a key. It must be 8 to 128 characters, using letters, numbers and dashes. A random 32-character string works well.

2. Host the key file. Put a UTF-8 text file named after the key at the root of your site, containing only the key. If you can open https://www.example.com/your-key.txt in a browser and see the key, this step is done. This file is public on purpose. It proves ownership and is not a password. You can host it elsewhere on the same host if you state the location in each request.

3. Send your changed URLs. For one URL, a simple GET request is enough. For several, send a POST:

curl -X POST "https://api.indexnow.org/indexnow" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{
    "host": "www.example.com",
    "key": "your-key",
    "keyLocation": "https://www.example.com/your-key.txt",
    "urlList": [
      "https://www.example.com/pricing",
      "https://www.example.com/services/repairs"
    ]
  }'

4. Check it arrived. The response code tells you whether the message was accepted, and Bing Webmaster Tools shows the URLs it received.

We use this on our own site. A script of about 40 lines reads the key file and posts the URL list after each new guide goes live, with no account and no plugin. What it cannot tell us is whether any later change in search traffic came from it, so we treat it as cheap hygiene.

How should a custom site automate it?

Sending URLs by hand gets forgotten within a month, so attach it to publishing. The FAQ recommends scripts that detect real content changes, and logging each response. A minimal version in JavaScript:

// Run after publishing. Send only pages that really changed.
const urlList = ['https://www.example.com/pricing'];

const res = await fetch('https://api.indexnow.org/indexnow', {
  method: 'POST',
  headers: {'content-type': 'application/json; charset=utf-8'},
  body: JSON.stringify({
    host: 'www.example.com',
    key: 'your-key',
    keyLocation: 'https://www.example.com/your-key.txt',
    urlList
  })
});
console.log(res.status, urlList.length);

Three things make it hold up in practice:

  • Log what you send. The FAQ suggests the time, the URL, the response code, retries and the method. Without this, a key that stopped working can go unnoticed for months.
  • Handle a 429 properly. IndexNow publishes no exact rate limits, because each engine sets its own. If you get a 429, pause, retry after the time in the Retry-After header, and reduce the batch size.
  • Trigger on content, not on saves. A save that changes nothing should send nothing. Compare the published text with the previous version, or trigger only from your publish action.

What do the responses mean?

These come from the protocol’s documentation. A success only means the message was received.

CodeMeaningWhat to do
200URL submittedNothing
202Received, key check pendingNormal on a first request. Check again later
400Invalid formatCheck the JSON and the URL encoding
403Key not validOpen the key file in a browser. It must contain only the key
422URLs do not belong to the host, or the key is malformedCheck the host value, and stay under 10,000 URLs
429Too many requestsSlow down; it may be read as spam

One detail catches people out with a single-URL GET request: the page address must be URL-encoded, so “:” becomes %3A and “/” becomes %2F.

Why did a URL not get indexed, or a key not verify?

Key problems are almost always one of three things, according to the protocol’s troubleshooting notes: the file name must be exactly your key followed by .txt, the file must contain exactly the key, and it must be reachable without a login, firewall or IP restriction. That last one catches the same sites whose firewalls refuse AI bots. If a browser outside your network cannot open the file, neither can a search engine.

A URL that was accepted but not indexed is a different matter. The FAQ gives these reasons: crawl quota limits for your domain, thin or duplicate content, technical problems such as 404 errors, robots.txt blocks or noindex tags, and delays from crawl scheduling. An engine may also simply decide against it.

If a page shows up in one engine and not another, that is normal. A submission alerts all of them, and each one decides on its own. Check each engine’s own tools.

When should you send a URL?

The protocol’s FAQ is clear on this, and a few of its answers go against the instinct to ping everything:

  • Send real changes. New pages, changes in content, price or availability, redirects and deletions. Skip cosmetic changes.
  • Do not send your whole site regularly. IndexNow is not designed for submitting every URL at once. A full submission is acceptable after a migration or redesign.
  • Do not send old changes. Use sitemaps with accurate lastmod dates for pages that changed before you set this up.
  • Wait between repeats. Wait at least 5 minutes before resubmitting the same URL, and avoid doing it many times a day.
  • Remember the crawl quota. Every submitted URL counts toward your site’s crawl quota, so unnecessary pings can waste it.

A sitemap is still needed. The FAQ recommends using both: IndexNow for what just changed, a sitemap for a complete list of your pages. Our 24-point GEO audit includes the sitemap but not IndexNow, because the first is a basic requirement and the second is an optional speed-up.

How does it compare with the alternatives?

IndexNow adds to the other routes and replaces none of them. Each does a different job, and most small sites should use the first four.

RouteReachesEffortUse it for
Normal crawlingAll enginesNoneEverything, eventually
Sitemap with lastmod datesEngines that read sitemaps, including Google and BingSet onceA complete list of your pages
IndexNowBing, Amazon, Naver, Seznam.cz, Yandex, YepKey file, then a script or pluginWhat just changed
URL Inspection in Search ConsoleGoogleBy hand, one URL at a timeAn important new or repaired page
Google Indexing APIGoogleA developerJob posting and livestream pages only

If you run a site with a handful of changes per month, a plugin and a sitemap are plenty. The script described before is for sites that change often or have no plugin available.

A small brass hand bell with a wooden handle on a table

What will IndexNow not do?

Set your expectations before you begin:

  • It does not guarantee indexing. In the FAQ’s own words, “Submitting a URL does not guarantee immediate indexing.” After a submission, the engine weighs whether to crawl the page, based on its crawl quota, scheduling and quality signals.
  • It is no ranking boost. It tells an engine to look at a page. It says nothing good about that page.
  • It does not reach Google. See above.
  • It does not repair a blocked site. If robots.txt or a firewall stops the bot from reading the page, a ping changes nothing. Read our guide to AI crawlers first.
  • It does not make a weak page strong. A faster look at a thin page is still a look at a thin page.

For a small site, the honest summary is that it costs little and helps engines notice updates sooner. Do it once, automate it, and move on to more important work.

A worked example: a shop changes a price

An illustrative case, with an invented shop. A store on WordPress with 300 products runs a sale on 40 of them on Friday morning.

Its SEO plugin has IndexNow turned on, so each product it saves sends a message. The first request ever sent returned 202 while the key was checked; now they return 200. The owner sees Bingbot fetch several of those pages in the logs later that day. On Monday the sale ends and the prices go back, which is another real change, so those pages get sent again.

The same week, the owner changes the footer on every page. A plugin that fires on every save could send all 300 URLs for that, and it would count against the crawl quota for nothing, so the owner checks that setting. Google, meanwhile, gets none of this. It relies on the sitemap’s lastmod dates and its own crawling, and the owner uses URL Inspection for the sale’s main page.

Where the MWY checker stands on IndexNow

The MWY checker does not test for IndexNow, and it is not one of its 24 items. We left it out because the protocol leaves no reliable sign on your pages: a key file can have any name, and nothing outside your server shows whether you send anything. Also, a site can do very well without it.

The checker does test what IndexNow depends on: whether your site is reachable, whether there is a sitemap named in robots.txt, and whether pages are hidden from search. It does not check how fast any engine picks up your changes. To see that, use Bing Webmaster Tools and Search Console, and to see how MWY scores everything else, read the methodology page.

Questions people ask

Does Google support IndexNow?

No. Google is not among the engines named on indexnow.org, and submitting through IndexNow does not notify it. Google’s Indexing API is a separate system limited to job posting and livestream pages. For an ordinary site, use a sitemap, keep internal links healthy and use URL Inspection in Search Console for important pages.

Is IndexNow free to use?

Yes. The protocol needs no account and has no fee: you host a key file and send requests to the endpoint. A plugin you choose may have paid plans, and Shopify stores usually need a third-party app, but the service itself costs nothing. The real limit is good practice, since every URL you submit counts toward your crawl quota.

How do I know whether IndexNow worked?

A 200 or 202 response only means your message was received. Bing Webmaster Tools shows which URLs were received, and your server logs show whether Bingbot then fetched the page. Whether it was indexed and how it ranks is a separate question that the engine decides, so check that in Bing itself after a few days.

Do I still need a sitemap if I use IndexNow?

Yes. The IndexNow FAQ recommends using both. A sitemap gives search engines a complete list of your pages, including those that rarely change and those deep in the site, and Google reads it while IndexNow does not reach Google. IndexNow only reports what changed just now. They do different jobs, so keep the sitemap accurate.

More guides

Is your website ready for AI assistants to name it?

Paste your website address and get your AI visibility score and the five things to fix first in a few seconds. Free, no sign-up.