Quick Answer: IndexNow is a free, open protocol that lets a website tell search engines the moment a URL is added, updated or deleted. You host a key file at your site root and send one HTTP request per change, up to 10,000 URLs per POST. One submission reaches every participating engine, including Bing, Yandex, Naver, Seznam.cz, Yep and Amazon.
IndexNow matters more in 2026 than it did at launch because the indexes it feeds are no longer only search result pages. OpenAI says ChatGPT search uses third-party search providers, and its help centre references Microsoft's privacy terms among them. A page that changed this morning but is still represented by last month's copy in a provider index cannot be cited correctly.
This page is the protocol reference: what IndexNow is, how a submission works, what the API accepts, which platforms have it built in, and where its limits are. It does not cover ChatGPT's own crawler, which has nothing to do with IndexNow.
What IndexNow is and which engines participate
IndexNow is a protocol in which a website pings a search engine's /indexnow endpoint with a changed URL and a key. That engine then shares the URL with every other participant. The indexnow.org documentation states that engines adopting the protocol "agree that submitted URLs will be automatically shared with all other participating search engines", per the IndexNow documentation.
Bing calls it "a free, open-source protocol" that reduces dependency on traditional crawlers, and lists LinkedIn, eBay, Etsy, GitHub, Wix and Cloudflare among adopters on its overview page. Adopters are sites that send; participants are engines that receive, and the second list is shorter.
The participating endpoints
| Endpoint | Submit to |
|---|---|
| IndexNow global endpoint | https://api.indexnow.org/indexnow |
| Amazon | https://indexnow.amazonbot.amazon/indexnow |
| 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 |
Those are the seven endpoints the indexnow.org FAQ lists as of its 11 February 2026 revision, per the IndexNow FAQ. You submit to one; the protocol requires that engine to notify the others within 10 seconds of verifying your key. Google is not a participant and no AI assistant is listed.
What participation requires of an engine
The protocol's search-engine spec says a participant must have "a noticeable presence in at least one market", share received URLs with other participants, and host a meta.json identity file. The spec's authors are from the Internet Archive, Seznam, Yandex and Microsoft, dated March 2024. That authorship, more than any marketing page, explains why the participant list looks the way it does.
How an IndexNow submission works
An IndexNow submission is one HTTPS request carrying a URL and a key, and the receiving engine verifies the key by fetching a text file from your site. There is no account, no login and no dashboard on the protocol side; the key file is the entire ownership check.
The key file
Generate a key of 8 to 128 characters using only letters, digits and hyphens. Save it as {your-key}.txt in UTF-8, containing just the key. Host it at the root, so https://www.example.com/{your-key}.txt, and the engine fetches it on your first submission and reuses it until you change the key.
You can host the file elsewhere on the same host and pass its address as keyLocation, but then the file's directory limits which URLs it can vouch for. A key at /catalog/key.txt cannot verify /help/ URLs. The documentation "strongly" recommends the root option, and each subdomain needs its own key file because each is treated as a separate host.
Submitting one URL
Issue a GET to https://<searchengine>/indexnow?url=<url-changed>&key=<your-key> with the URL escaped per RFC 3986. The documentation's own example is a product page update sent with a 32-character hexadecimal key. A browser, curl or wget will do; an HTTP 200 means the engine received the URL, not that it indexed it.
Submitting up to 10,000 URLs
Send a POST to /indexnow with Content-Type: application/json; charset=utf-8 and a body carrying host, key, optionally keyLocation, and a urlList array. The cap is 10,000 URLs per POST, and http and https URLs can be mixed in one list.
POST /indexnow HTTP/1.1
Content-Type: application/json; charset=utf-8
Host: api.indexnow.org
{
"host": "www.example.com",
"key": "50d2d90c273b4b12b1b65008d97b835f",
"urlList": [
"https://www.example.com/url1",
"https://www.example.com/folder/url2"
]
}
Response codes
| Code | Meaning per the protocol |
|---|---|
| 200 | URL or list received |
| 202 | Received; key validation pending (common on a first request) |
| 400 | Bad request, invalid format |
| 403 | Key not valid: file not found, or key not in the file |
| 422 | URLs do not belong to the host, or key does not match the schema |
| 429 | Too many requests, treated as potential spam |
Is there an API for IndexNow
Yes, and the protocol is the API: the GET and POST requests above are the whole interface, with no SDK, token or client library required. The global endpoint https://api.indexnow.org/indexnow accepts both forms and forwards to every participant.
What the FAQ ships for developers
The indexnow.org FAQ includes a Python example that scans a content store for URLs modified in the last hour and POSTs them to the global endpoint. It branches on 200, 202 and 429. It recommends triggering submissions from CMS hooks or deployment pipelines, filtering out cosmetic changes, debouncing repeat submissions of the same URL by at least five minutes, and logging every response code.
What the API will not tell you
The response says the URL was received; it says nothing about crawling or indexing. The FAQ is explicit that after submission the engine "evaluates whether it should crawl the URL based on its crawl quota, scheduling logic, and quality signals". Use each engine's own tools to see the outcome; Bing's IndexNow page says Bing Webmaster Tools shows whether your URLs were received.
Which CMS platforms and plugins support IndexNow
Most mainstream platforms support IndexNow natively or through a plugin, so the first step is to check whether you already have it. Bing's page says to open Bing Webmaster Tools and check whether your site is already publishing URLs via IndexNow before installing anything.
Built in, no setup
Bing lists Wix, Duda, GoDaddy Website Builder, XenForo, Milestone and Shopify (through the InstaIndex app) as platforms where IndexNow is already on. The indexnow.org FAQ adds Joomla, Drupal, Bitrix24, PrestaShop, MODX, Shopware, OpenCart, Typo3 and Umbraco to the list of platforms with native support or an extension.
WordPress
WordPress gets IndexNow through the official IndexNow plugin, or through Yoast, RankMath, AIOSEO or SEOPress, all named on Bing's page. Each submits automatically on publish, update and delete, which is the behaviour the protocol is designed around. Check only one plugin is sending, or you will double-submit every change.
CDN level
Cloudflare offers native IndexNow integration through its Crawler Hints feature, and the FAQ notes it is the one CDN it names while saying the list is not exhaustive. CDN-level submission is useful for sites with no CMS at all, such as static builds, because the CDN sees every changed response.
What IndexNow does for AI search
IndexNow keeps the search indexes that AI assistants may draw on current; it does not submit anything to an AI assistant. The FAQ's own wording is that faster indexing "helps keep your content current in AI-powered search results", which is a statement about the indexes, not about the assistants.
The chain from a ping to a citation
OpenAI says ChatGPT search leverages third-party search providers, and its help centre references Microsoft's privacy terms among those providers. IndexNow's participant list includes Bing. So a fresh page reaches ChatGPT's provider path faster with IndexNow than without it, while ChatGPT's own OAI-SearchBot crawl is governed separately by robots.txt.
The same logic applies to any engine that fetches live results. Perplexity's own bots fetch at query time, so freshness on Perplexity depends on your page, not on IndexNow, but a provider index still helps it find the page in the first place.
What it cannot do
IndexNow cannot make a page citable. An assistant that fetches a fresh page still has to find a sentence it can quote, and a page that buries the answer will be fetched and passed over. Pairing IndexNow with content structured for extraction is what turns speed into citations, and robots.txt rules for the AI bots decide whether the assistant can fetch at all.
Limits and mistakes to avoid
IndexNow has one hard cap, 10,000 URLs per POST, and a set of soft limits that each engine sets and does not publish. Hitting them produces 429 responses and, over time, a crawler that trusts your pings less.
Rate limits
The FAQ says IndexNow "does not publicly disclose exact rate limits", because each participating engine sets its own daily thresholds per site. On a 429, pause and retry after the Retry-After header, reduce batch size, and stop resubmitting unchanged URLs. Every submitted URL counts against your crawl quota.
Submission hygiene
Submit only URLs that changed after you set IndexNow up. The FAQ says not to backfill last year's changes, and to use a sitemap with accurate lastmod values for those instead.
Submit redirects, 404s and 410s too, so engines drop stale entries. Wait at least five minutes before resubmitting the same URL.
The mistakes that generate 403 and 422
A 403 means the key file was not found or does not contain the key. Check the file name matches the key exactly and loads without a login or firewall challenge.
A 422 means the URLs do not belong to the verified host, which usually means a subdomain submitted under the main domain's key. Both are fixed in minutes and both are common on day one.
Where IndexNow sits in an audit
Fast indexing is one line in an AI visibility audit, sitting between crawl access and content structure. It is cheap, it is reversible, and it is the reason a page refreshed on Monday can be the version an answer engine quotes on Tuesday.

