In short
IndexNow is an open protocol that lets you tell search engines right away about new, changed and deleted pages. One submission reaches Bing and the other participants, such as Yandex, Seznam.cz and Naver; Google doesn’t take part. Many platforms submit automatically. Otherwise, a key file and a simple request are all you need. IndexNow doesn’t guarantee indexing.
Key takeaways
- IndexNow tells Bing and the other participants right away about new, changed and deleted pages. Google isn’t one of them.
- Microsoft says that Copilot relies on the same foundation as Bing search and that ChatGPT uses the Web IQ platform with the Bing index.
- Setting up IndexNow takes a text file that contains your key, placed in your site’s root directory. Many platforms do this for you.
- A 200 or 202 only confirms that a submission arrived. The IndexNow report in Bing Webmaster Tools shows whether Bing indexed the page.
- Submit only new, changed and removed URLs. Your sitemap still provides the complete list.
What is IndexNow, and which search engines use it?
IndexNow is an open protocol for telling search engines that a URL is new, has changed or has been deleted. Microsoft Bing and Yandex created the protocol and introduced it in October 2021. As of November 2026, IndexNow.org lists Bing, Naver, Seznam.cz, Yandex and Yep as supporters. A submission goes to all participants; Google isn’t among them.
What it’s for: Without a submission, search engines only learn about a change when their crawlers, the programs that fetch web pages, read the page again. According to IndexNow.org (external site), that can take days to weeks. With a submission, they know right away and can prioritize crawling the page. IndexNow explicitly recommends this even for small websites with only a few pages. The protocol is free and open (Bing on IndexNow (external site)). It complements your sitemap: the sitemap lists all your pages, and IndexNow reports the changes. Bing recommends using both in a post on sitemaps in AI-powered search (external site). Our guide to technical SEO explains how crawling, sitemaps and the index fit together.
| Recipient | Submission URL |
|---|---|
| IndexNow (global endpoint) | https://api.indexnow.org/indexnow |
| Microsoft Bing | https://www.bing.com/indexnow |
| Naver | https://searchadvisor.naver.com/indexnow |
| Seznam.cz | https://search.seznam.cz/indexnow |
| Yandex | https://yandex.com/indexnow |
| Yep | https://indexnow.yep.com/indexnow |
| Amazon | https://indexnow.amazonbot.amazon/indexnow |
It doesn’t matter which of these URLs you use: according to the IndexNow FAQ (external site), every submission is shared with all participants. Besides the five search engines, the FAQ also lists Amazon as a recipient, and the list of participants in JSON format (external site) adds the Internet Archive. Google isn’t on any of these lists. To ask Google to crawl a page, use URL Inspection in Search Console or submit a sitemap. Crawling by Google can take anywhere from a few days to a few weeks (Google on recrawling (external site)).
Limits: A submission is only a request to crawl. The search engine decides whether to crawl the page based on its crawl quota for your site, its scheduling and the quality of the page. Every submitted URL counts toward that quota. None of the IndexNow and Bing sources cited here give a time frame for crawling. In its getting started guide (external site), Bing says IndexNow guarantees neither crawling nor indexing.
| Step | Who | Details |
|---|---|---|
| New, changed or deleted page | your website | also redirects and pages that return 404 or 410 |
| Submission to one endpoint | you or your platform | the page’s URL and your key, one at a time or as a list of up to 10,000 URLs; it doesn’t matter which endpoint you use |
| Response 200 or 202 | recipient | 200: submission received; 202: submission received, key validation pending |
| Key validation | recipient | fetches your key file and compares its content with the key in the submission |
| Sharing | recipient | with all participants: Bing, Naver, Seznam.cz, Yandex, Yep, Amazon, Internet Archive; Google doesn’t take part |
| Decision to crawl | each search engine | based on its crawl quota for your site, its scheduling and the quality of the page; none of the sources give a time frame |
| Indexing | each search engine | not guaranteed; for Bing, the IndexNow report in Bing Webmaster Tools shows the status |
What do Bing and IndexNow have to do with Copilot and ChatGPT?
Microsoft Copilot uses the same crawling, indexing and ranking foundation as traditional Bing search, Microsoft says. According to Bing, timely IndexNow submissions reduce outdated and incorrect URL references in Copilot answers. Microsoft also says ChatGPT uses Web IQ, its search platform that draws on the Bing index. None of these sources quantify how much a submission changes AI answers.
Copilot: In its Webmaster Guidelines (external site), Bing lists IndexNow alongside sitemaps and links as ways for Bing and Copilot to discover new URLs. According to the guidelines, timely submissions also reduce outdated URL references in grounding results. For Microsoft, grounding means that an AI answer draws on current web content and cites sources that users can check (Microsoft Web IQ (external site)). In a February 2026 post (external site), Bing writes that IndexNow helps AI systems use the current version of a page when they answer.
Measuring: The AI Performance (external site) report in Bing Webmaster Tools shows how often Copilot cites your pages. It covers Copilot, AI-generated summaries in Bing and select partner integrations. Our how-to on measuring AI visibility explains what the report shows and what it doesn’t.
ChatGPT: According to Microsoft, Web IQ also powers ChatGPT. In its help article on ChatGPT search (external site), OpenAI says ChatGPT search sometimes partners with other search providers; the provider privacy policies it links to include Microsoft’s. For inclusion in ChatGPT search results, OpenAI points to its own crawler, OAI-SearchBot. OpenAI isn’t on the IndexNow list of participants. None of these sources say whether a submission via Bing carries through to ChatGPT. Our guide to generative engine optimization (GEO) compares which sources ChatGPT, Perplexity, Gemini and Google draw on.
Google: According to Google, only an indexed page can be a source in AI Overviews and AI Mode. The page must also be eligible to be shown with a snippet (Google on AI features (external site)). IndexNow doesn’t reach Google.
Have you set up Bing Webmaster Tools?
Bing Webmaster Tools is a free service for adding your website to Bing and monitoring it there. If you already use Google Search Console, import your site and its sitemaps from there, and it’s verified automatically. Bing Webmaster Tools will also show you later whether your IndexNow submissions arrive. The first data usually appears after 48 hours.
Why: Bing Webmaster Tools shows which of your URLs Bing has crawled and indexed. It has its own report for IndexNow, described in the section “How can you tell whether Bing processes your submissions?” If your site is missing from Bing altogether, read on in the section “Why is your website missing from Bing?” of our how-to on websites that don’t show up on Google.
How to do it:
- Sign in to Bing Webmaster Tools (external site) and choose to import your site from Google Search Console. Bing then asks for access to your Search Console account and lists your verified sites with their sitemaps (Bing Help on adding a site (external site)). Select your site and confirm the import.
- Without Search Console, add your site manually. You can verify it with a DNS record at your domain provider, an XML file in your root directory or a meta tag in the head of your home page.
- Open the Sitemaps section. It lists the sitemaps you submitted, those imported from Search Console and those Bing found on its own. For each one, it shows the status and the number of URLs (Bing Help on sitemaps (external site)). If your sitemap is missing, submit it. Bing tries to fetch it right away and then usually reads it at least once a day.
- Also list your sitemap in your robots.txt, with a line such as
Sitemap: https://example.com/sitemap.xml. That way, every search engine learns about it.
URL Submission: Bing Webmaster Tools also accepts individual URLs through its URL Submission tool, up to 10,000 per domain per day. Bing recommends IndexNow instead, because one submission then reaches all participants. According to Bing, repeated submissions don’t speed up indexing (Bing Help on URL submission (external site)).
Example: Your site has been verified in Search Console for years. The import adds it to Bing and verifies it, sitemap included, without uploading a file or changing your DNS.
Common mistake: An older plugin still submits your sitemap by ping, a simple request without any sign-in. Bing switched this off in May 2022 (external site) because spammers misused it. Google deprecated its ping endpoint in June 2023 (external site) and shut it down six months later; requests now end in a 404 error. At Bing, IndexNow takes over this job.
Done when your site is verified in Bing Webmaster Tools and your sitemap is listed there without errors.
Does your platform already support IndexNow?
Many website and online store platforms submit changes through IndexNow on their own. For WordPress, a plugin from the Bing Webmaster Tools team does this. Then you don’t need to create a key or submit anything yourself. The IndexNow section in Bing Webmaster Tools shows whether your site already submits and where each submission comes from.
Why: A plugin like the one for WordPress submits every new, changed and deleted page automatically in the background. If you submit manually, you have to remember every page. IndexNow advises checking your platform’s documentation first, before you set anything up yourself.
How to do it:
- Check the list in the IndexNow FAQ on supported platforms (external site). It names 16 content management systems (CMS), the software many websites run on. They support IndexNow natively or through an extension and include WordPress, Joomla!, Drupal, TYPO3, Shopware and Shopify.
- For WordPress, there’s the IndexNow plugin (external site) from the Bing Webmaster Tools team. It creates the key itself, submits new, changed and deleted pages, and skips pages that use noindex to stay out of the index. Popular SEO plugins for WordPress also include IndexNow, as Bing’s list of plugins (external site) shows.
- If you use Cloudflare as your content delivery network (CDN), turn on Crawler Hints there. The feature is also available on the free plan. It uses IndexNow to report when content has likely changed (Cloudflare on Crawler Hints (external site)).
- Check the IndexNow section in Bing Webmaster Tools. It shows the source of every submission, such as a plugin, Cloudflare or your own requests (Bing Help on IndexNow (external site)).
Example: Your site runs on WordPress. Once you’ve installed the plugin, the IndexNow report lists your next post with the plugin as the source of the submission.
Common mistake: A plugin and your CDN both submit the same pages, or two plugins do. IndexNow advises against submitting the same URL many times a day unless something meaningful has changed. So leave only one of them switched on.
Done when you know whether your platform submits on its own. If it does, the IndexNow report shows your latest changes, and you can skip the next two sections.
How do you create the key file?
The key file shows search engines that a submission comes from you. You generate a key of 8–128 characters, using letters, digits and hyphens, and save it in a UTF-8 text file that’s named after the key and contains nothing else. You put this file in your website’s root directory.
Why: After you submit, the search engine fetches the file and compares its content with the key in your submission (IndexNow documentation (external site)). If the file is in a subfolder, you have to send its location with every submission, and it only covers URLs in that folder. That’s why IndexNow strongly recommends the root directory. According to the documentation, only you and the search engines should know the key. So even though the file itself is public, the key doesn’t belong in a public repository, the place where a project’s source code is stored.
How to do it:
- Generate the key. On Windows, the first command below does this in PowerShell: it creates a random identifier of 32 digits and lowercase letters. On other systems, a UUID generator works too; UUIDs are random identifiers, and their hyphens are allowed.
- The second command writes the key, without a line break, to a file named after it. The
asciisetting produces a file that is also valid UTF-8. Note down the key, because you’ll need it for every submission. - Upload the file to your website’s root directory, the same place as your robots.txt, for example by FTP or in your host’s file manager.
- Open
https://example.com/YOUR-KEY.txtin your browser without being signed in. You should see only the key.
$key = [guid]::NewGuid().ToString('N')
Set-Content -Path "$key.txt" -Value $key -NoNewline -Encoding asciiExample: If your key is d72a0198441d02418e808cde7379d8c5, the file is named d72a0198441d02418e808cde7379d8c5.txt. It’s located at https://example.com/d72a0198441d02418e808cde7379d8c5.txt and contains only these 32 characters.
Common mistake: Your pages run on www.example.com, but the key file is only on example.com. IndexNow treats every subdomain, www included, as a separate host that needs its own key file. Verification also fails if password protection, a firewall or an IP address filter blocks the file.
Done when your browser shows exactly your key at https://example.com/YOUR-KEY.txt, without signing in.
How do you submit new, changed and deleted pages?
To submit a single page, send a request to api.indexnow.org/indexnow with the page’s URL and your key attached. Send several pages as a list in JSON format, with up to 10,000 URLs per request. Submit right after a change, and only pages that are new, have changed or have been removed.
Why: In its Webmaster Guidelines, Bing advises avoiding batch submissions where possible: submissions sent as changes happen deliver updates faster and put less load on servers. According to IndexNow, you should also submit redirects and deleted pages that return 404 or 410. Don’t go back and submit changes from before you set up IndexNow; your sitemap with its lastmod (last modified) dates covers those (IndexNow FAQ on redirects and older changes (external site)).
How to do it:
- One page: URL-encode the page’s address:
:becomes%3A, and/becomes%2F. Then call the submission URL with curl, as in the first example below. The curl program comes preinstalled on Windows 10 and 11 (external site). In PowerShell, typecurl.exe; on a Mac or Linux, typecurl. - Many pages: Write the list to a text file named
submission.json. JSON is a common text format for data. The second example below shows its content, and the third shows the command that sends it. ThekeyLocationfield holds the location of your key file. - Read the response: The first line of the output gives the response code, such as
HTTP/1.1 202 AcceptedorHTTP/2 202. The next section explains what it means. - Automate: Trigger the submission where pages are created, that is, when you publish in your CMS or after an upload. IndexNow recommends logging every submission with its time, URL and response code.
curl.exe -i "https://api.indexnow.org/indexnow?url=https%3A%2F%2Fexample.com%2Fnew-page%2F&key=YOUR-KEY"{
"host": "example.com",
"key": "YOUR-KEY",
"keyLocation": "https://example.com/YOUR-KEY.txt",
"urlList": [
"https://example.com/new-page/",
"https://example.com/services/web-design/",
"https://example.com/services/web/"
]
}curl.exe -i -H "Content-Type: application/json; charset=utf-8" --data-binary "@submission.json" https://api.indexnow.org/indexnowExample: You move a service page from /services/web/ to /services/web-design/ and redirect the old URL to the new one with a 301. Submit both in one list: the new page and the old URL, which now redirects. Our website migration checklist covers what else a full site redesign involves.
Common mistake: Every small change sends out every URL in the sitemap. IndexNow isn’t designed for submitting your entire site over and over, and it advises against resubmitting unchanged URLs. Submitting all URLs at once only makes sense when all of them have changed, for example after a redesign.
Done when your test submission gets a 200 or 202 response, and from now on, new, changed and removed pages are submitted right after each change.
What do the IndexNow response codes mean?
A 200 response means the submission arrived. A 202 means it arrived but the key hasn’t been validated yet; you may see this for your first submission. The codes 400, 403 and 422 indicate errors in the request, key or URLs, and 429 means too many submissions. None of these codes say whether a page gets indexed.
| Code | Meaning according to IndexNow | What to do |
|---|---|---|
| 200 OK | submission received | no action needed; the code says nothing about indexing |
| 202 Accepted | submission received, key validation pending | keep the key file accessible; after validation, the API usually responds with 200 |
| 400 Bad Request | invalid format | check the structure: url and key parameters, URL encoding, brackets and commas in the JSON |
| 403 Forbidden | key not valid, for example file not found or key not in the file | open the key file in your browser, see the key file section |
| 422 Unprocessable Entity | URLs don’t belong to the submitted host, or the key doesn’t match the protocol’s schema | check the spelling with and without www, the list and the key; don’t resubmit unchanged URLs |
| 429 Too Many Requests | too many requests, potential spam | wait for the time in the Retry-After header, then submit less often |
IndexNow doesn’t publish exact limits on the number of submissions; each search engine decides how many it accepts per site per day. Of the six common mistakes IndexNow lists, four involve the key file or the key. One of them is submitting before the file is publicly accessible (IndexNow FAQ on rate limits and common mistakes (external site)).
How can you tell whether Bing processes your submissions?
The IndexNow section in Bing Webmaster Tools shows whether Bing processes your submissions. It gives the number of submitted URLs, their sources and, for individual URLs, whether Bing crawled and indexed them. A separate list shows important pages that Bing indexed in the last seven days without an IndexNow submission.
How to do it:
- Open the IndexNow section in Bing Webmaster Tools. At the top, you see the number of URLs submitted in the selected time frame and the sources of the submissions.
- In the list of recently submitted URLs, select “View” for a URL. The side panel shows whether and when Bing crawled the page, and whether it’s indexed and since when. The note “Late submission” means Bing indexed the page through another source, such as your sitemap.
- Check the “Important URLs Missed” list. It names important URLs that Bing indexed in the last seven days without an IndexNow submission. If one of your new pages is listed there, your process probably didn’t submit it.
- Further down, the report groups unindexed URLs by reason. The reasons include content quality, a canonical tag naming a different URL as the main version, a redirect, noindex and a block in robots.txt. For each reason, Bing shows sample URLs and suggests fixes.
- For a single URL, URL Inspection also shows its status and the version Bing has in its index (Bing Help on Webmaster Tools features (external site)).
Example: You submit five new pages on a Monday. By Wednesday, the report shows three of them as indexed and two with the reason “Content Quality.” Those two pages need more original content; submitting them again without changes won’t help.
Common mistake: You read a 202 response as a sign that the page is indexed. It only confirms that the submission arrived. Only the report shows whether the page has been indexed.
Done when your latest submissions appear in the IndexNow report and you can explain every entry under “Important URLs Missed.”
What changes for sites in Germany and the EU?
In Germany, Bing is used mainly on desktop computers: in October 2026, its desktop market share there was 19.74%, compared with 6.41% across all devices. Bilingual sites submit each language version under its own URL. The Search Console import requires giving Bing access to your Search Console account, so use a company account for it.
Source: StatCounter (external site), · monthly figure, October 2026, desktop
Source: StatCounter, · monthly figure, October 2026, all devices
- Other search engines: According to DuckDuckGo’s help page on its sources (external site), DuckDuckGo also gets most of its traditional links from Bing.
- Two languages: Submit the German and English versions of a page, each under its own URL. Each version’s canonical and hreflang tags, which name the main URL and the language versions, should match these URLs (IndexNow FAQ on multilingual websites (external site)). Our technical SEO guide explains how to set up hreflang in its section on multilingual websites with hreflang.
- Access for Bing: The import gives Bing Webmaster Tools access to your Search Console account. Bing uses it to recheck your verification regularly and to import new sitemaps automatically; you can disconnect the accounts in your profile. Who should own accounts like these is covered in our how-to on choosing a GEO agency.
- What a submission contains: A submission contains your domain name, the key, the location of the key file and the URLs, but no data about visits to your website. Every participant passes it on to all the others; the protocol has no way to leave out individual search engines.
Done when every language version of your new pages has been submitted and the import runs through a company account.
From our work: how we submit new pages on datafalke.de
datafalke.de consists of finished pages that we build in advance and then upload (the technology behind our website). So new and changed pages only appear with an upload, a deploy in developer terms. Since November 7, 2026, we’ve sent an IndexNow submission after every upload. Here’s how it works:
| Step | What happens | How we check it |
|---|---|---|
| Key | Generated according to the IndexNow rules. It isn’t stored in the repository that holds our source code; it’s passed to the upload script at startup. | In its output, the upload script shows a placeholder instead of the key. |
| Key file | With every upload, the upload script places it in the root directory of datafalke.de. Our staging environment doesn’t get one. | When it deletes old files, the script always keeps the key file. |
| Submission | A Python script submits the URLs to api.indexnow.org, at most 10,000 per request. | Before sending, it checks that the key file is reachable and contains exactly the key, and it only accepts https URLs on datafalke.de. Without an explicit command, it only does a dry run. |
| Monitoring | Google Search Console and Bing Webmaster Tools, set up on Nov 7, 2026 | the indexing reports of both services; we’ll only publish our own figures with the measurement log |
Our first submission went out on November 7, 2026, at 11:57 a.m. German time. It contained all seven URLs of the site’s first version at once, because they were all new. The response was 202: received, key validation pending. Our sitemap is listed in our robots.txt. Its lastmod dates follow the last content change to each page, never the time we generate the pages.
We trigger the submission by hand after each upload. Since the upload on November 8, 2026, we’ve been sending only new URLs, removed URLs and URLs whose lastmod has changed. A small script identifies them by comparing the file lists from before and after the upload. That first upload under the new rule included 27 URLs: 25 new pages and two with a new lastmod. Eleven pages whose lastmod stayed the same, for example because only links had been added, weren’t submitted. We submit the entire site only at launch and after a site move.
The script below follows the same pattern as our tool. It needs Python 3.7 or later, reads a text file with one URL per line and, without --send, only does a dry run. You’re free to use it; its license is listed in the licenses section of our colophon.
# indexnow_submit.py: submits URLs from a text file via IndexNow (MIT-0)
# Usage: python indexnow_submit.py example.com YOUR-KEY urls.txt [--send]
import json
import sys
import urllib.error
import urllib.request
from urllib.parse import urlsplit
ENDPOINT = "https://api.indexnow.org/indexnow"
HEADERS = {"User-Agent": "indexnow-submit"}
for stream in (sys.stdout, sys.stderr):
stream.reconfigure(encoding="utf-8")
host, key, path = sys.argv[1:4]
send = "--send" in sys.argv[4:]
with open(path, encoding="utf-8") as f:
urls = list(dict.fromkeys(line.strip() for line in f if line.strip() and not line.startswith("#")))
if not urls:
sys.exit("The file contains no URLs.")
foreign = [u for u in urls if urlsplit(u).scheme != "https" or urlsplit(u).netloc != host]
if foreign:
sys.exit(f"Not on https://{host}: {foreign[:3]}")
key_location = f"https://{host}/{key}.txt"
try:
check = urllib.request.Request(key_location, headers=HEADERS)
with urllib.request.urlopen(check, timeout=20) as response:
content = response.read().decode("utf-8").strip()
except OSError as error:
sys.exit(f"Key file not reachable: {error}")
if content != key:
sys.exit("The key file doesn't contain the key.")
for i in range(0, len(urls), 10000):
batch = urls[i:i + 10000]
if not send:
print(f"Dry run: {len(batch)} URLs, first {batch[0]}")
continue
data = json.dumps({"host": host, "key": key, "keyLocation": key_location, "urlList": batch})
post_headers = {**HEADERS, "Content-Type": "application/json; charset=utf-8"}
request = urllib.request.Request(ENDPOINT, data=data.encode("utf-8"), headers=post_headers, method="POST")
try:
with urllib.request.urlopen(request, timeout=30) as response:
code, reason = response.status, response.reason
except urllib.error.HTTPError as error:
code, reason = error.code, error.reason
except OSError as error:
sys.exit(f"Sending failed: {error}")
print(f"{len(batch)} URLs: HTTP {code} {reason}")
if code not in (200, 202):
sys.exit(1)Whether and when Bing indexes the pages we submit is something we’ll only report in our measurement log. The measurement log section of our methodology describes what it will include. For the websites we build, we set up Google Search Console and Bing Webmaster Tools at launch.