What Is IndexNow?
IndexNow is an open protocol that lets a website tell participating search engines, with one HTTP request, that a URL has been added, updated or deleted.
IndexNow.org describes it as “a simple ping so that search engines know that a URL and its content has been added, updated, or deleted” (IndexNow.org). You prove you control the host by publishing a key file, then send changed URLs to one endpoint. The documentation says participating engines “agree that submitted URLs will be automatically shared with all other participating search engines” (IndexNow documentation), so one submission reaches all of them.
IndexNow tells engines what changed; it does not list your whole site. The IndexNow FAQ recommends using it alongside an XML sitemap, which stays the complete inventory. Our guide on how to submit a sitemap to Google and Bing covers IndexNow as a short optional final step; this guide covers the full setup, every response code and how to confirm receipt.
Which search engines use IndexNow?
As of October 7, 2026, the IndexNow FAQ lists these submission endpoints: the shared endpoint api.indexnow.org, plus Amazon, Bing, Naver, Seznam.cz, Yandex and Yep. The protocol's machine-readable list of participants, searchengines.json, also includes the Internet Archive. Google is not on either list. IndexNow does not notify Google, so keep your sitemap and Search Console in place for Google.
Classification from the IndexNow FAQ and searchengines.json, read October 10, 2026, not a measurement
Source: IndexNow.org, FAQ and searchengines.json.
Full bar: listed as an IndexNow participant, so it receives submissions shared from any endpoint. Empty: not listed in either place. The Internet Archive appears in the machine-readable participant file but has no submission endpoint in the FAQ.
How to Set Up IndexNow at a Glance
| Step | Action | Expected result |
|---|---|---|
| 1 | Check whether your CMS, plugin or CDN already supports IndexNow | Either IndexNow is switched on for you, or you know you need a manual setup |
| 2 | Generate an API key | A string of 8–128 characters: a–z, A–Z, 0–9 and dashes |
| 3 | Host the key file at your site root (or use keyLocation) | https://yourdomain/{key}.txt loads and shows only the key |
| 4 | Submit one URL with a GET request | HTTP 200, or 202 while the key is being checked |
| 5 | Submit a batch of up to 10,000 URLs with a JSON POST | HTTP 200 or 202 for the batch |
| 6 | Automate submissions when content is added, updated or deleted | Each real change triggers one submission; responses are logged |
| 7 | Confirm receipt in Bing Webmaster Tools' IndexNow report | Your URLs appear in the submitted-URLs list with a source and time |
Time: minutes if your platform supports IndexNow; under an hour for a manual setup with one test request (our estimate). Tools: a text editor, access to upload files to your web root, and curl or any HTTP client. Cost: the protocol is free; some CMS integrations sit on paid plans (Wix, for example, says IndexNow is only available for sites with a Premium plan). Skill level: beginner with a plugin; intermediate for a scripted setup.
What You Need Before Starting
- Access to upload a file to the root of each host you want to submit for. Each subdomain counts as a separate host and needs its own key file, per the IndexNow FAQ.
- A way to send HTTP requests:
curl, a script, or your CMS. - A list of the URLs that changed. IndexNow is for recent changes, not your whole archive.
- Optional but recommended: a verified site in Bing Webmaster Tools, which is where you confirm submissions arrived (Step 7).
- An XML sitemap. IndexNow does not replace it.
Step 1: Check Whether Your Platform Already Sends IndexNow
Check your CMS, SEO plugin and CDN settings before you write any code. The IndexNow FAQ says to “check your CMS documentation or plugin library first before setting up IndexNow manually”, and Bing's setup page says “you may already have IndexNow” (Bing, How to add IndexNow to your website).
What the vendors' own documentation says (as of October 2026):
| Platform | How IndexNow is provided | Source |
|---|---|---|
| Cloudflare (CDN) | “Crawler Hints”, a toggle on the Configuration page of the Cloudflare dashboard's caching settings, available on Free, Pro, Business and Enterprise plans. It uses a cache MISS to infer that content has likely changed and sends the URL to IndexNow. It is a global setting for the whole site. | Cloudflare docs |
| WordPress: IndexNow plugin | Built by the Bing Webmaster team. Generates and hosts the key automatically, submits created, updated and deleted pages to api.indexnow.org, skips pages marked noindex, lets you exclude paths and submit URLs by hand, and shows the 20 most recent successful and 20 failed submissions. | WordPress.org plugin page |
| WordPress: Rank Math | “Instant Indexing” module, in the free version; generates and hosts the key and lets you choose which post types submit automatically. | Rank Math knowledge base |
| WordPress: Yoast SEO | Supported in Yoast SEO Premium, activated automatically; pings IndexNow when you publish or update content. | Yoast |
| Wix | Automatic on sites with a Premium plan; Wix detects page changes and submits them for you. No setup. | Wix Help Center |
Bing's setup page also lists Duda, GoDaddy, XenForo and Milestone as having IndexNow built in, and names plugins or extensions for AIOSEO, SEOPress, Shopify, Joomla!, Drupal, Bitrix24, PrestaShop, MODX, Shopware, OpenCart, Typo3 and Umbraco. We did not read each of those vendors' documentation, so check your own platform's help pages for the exact setting.
Expected result: you know whether IndexNow is already on. If it is, skip to Step 7 to confirm it is working. Common mistake: running two integrations at once (for example a CDN toggle and a plugin), which sends duplicate notifications for the same change. The FAQ warns that unnecessary submissions waste crawl quota.
Step 2: Generate an IndexNow API Key
Generate a random key that is 8 to 128 characters long and uses only lowercase letters (a–z), uppercase letters (A–Z), numbers (0–9) and dashes. The key is how participating engines match your submissions to your host (IndexNow documentation).
The FAQ suggests “a GUID/UUID generator or command-line tool”. Either of these produces a valid 32-character key on macOS or Linux:
openssl rand -hex 16
uuidgen | tr -d '-' | tr 'A-Z' 'a-z'
Bing's setup page also has a Generate button that creates a key in the browser. Expected result: one key string, such as 3f8a1c2e9b7d4e6fa0c5b2d18e9f7a64 (an example; do not reuse it). How to verify: count the characters and check there are no spaces, underscores or dots. Common mistake: using a guessable word. The documentation says “only you and the search engines should know the key and your file key location”.
Step 3: Host the Key File at Your Site Root
Create a UTF-8 text file named {your-key}.txt that contains only the key, and upload it to the root of the host. Engines fetch this file to verify ownership the first time they see the key, then keep using the key “until you change the key” (IndexNow documentation).
File: https://www.example.com/3f8a1c2e9b7d4e6fa0c5b2d18e9f7a64.txt
Contents: 3f8a1c2e9b7d4e6fa0c5b2d18e9f7a64
The keyLocation option. If you cannot write to the root, you can host the key file elsewhere on the same host and name its location in every submission with the keyLocation parameter. The catch: the file's folder limits what you can submit. A key file at /catalog/key.txt can only cover URLs that start with /catalog/, and the documentation says URLs outside that path “may not be considered for indexing”. IndexNow says it is “strongly recommended” to use the root.
Expected result: the file loads at a public URL. How to verify: open it in a browser or run curl -i https://www.example.com/{key}.txt. The FAQ says that if it “displays only your key as plain text, search engines can verify your site”. Common mistake: a file that is behind a login, firewall or IP restriction. It must load for anyone, without login.
Step 4: Submit One URL With a GET Request
Send a GET request to one participating endpoint, with the changed URL (URL-encoded) and your key as parameters. This is the quickest way to test that the setup works.
curl -i "https://api.indexnow.org/indexnow?url=https%3A%2F%2Fwww.example.com%2Fnew-page&key=3f8a1c2e9b7d4e6fa0c5b2d18e9f7a64"
Rules from the documentation and FAQ: the submitted URL must be “URL-escaped and encoded” and follow RFC 3986 (so : becomes %3A and / becomes %2F); submit to only one endpoint, because submissions are shared; add &keyLocation=... if the key file is not at the root. You can send the request with a browser, wget, curl or code.
Expected result: HTTP 200. On first use you may get 202 Accepted, which IndexNow says means the URL was received and key validation is pending. How to verify: read the status line in the curl -i output; the full list of codes is in the response code table below. Common mistake: reading 200 as “indexed”. The documentation says the 200 code “only indicates that the search engine has received your URL.”
Step 5: Submit Many URLs With a JSON POST
Send a POST request with a JSON body listing your host, key and changed URLs when more than one URL has changed. IndexNow accepts “up to 10,000 URLs per post”, and you can mix http and https URLs (IndexNow documentation).
Save the body as urls.json:
{
"host": "www.example.com",
"key": "3f8a1c2e9b7d4e6fa0c5b2d18e9f7a64",
"keyLocation": "https://www.example.com/3f8a1c2e9b7d4e6fa0c5b2d18e9f7a64.txt",
"urlList": [
"https://www.example.com/new-page",
"https://www.example.com/updated-page",
"https://www.example.com/deleted-page"
]
}
Then send it:
curl -i -X POST "https://api.indexnow.org/indexnow" \
-H "Content-Type: application/json; charset=utf-8" \
--data @urls.json
keyLocation is optional when the key file is at the root; it is required when it is not. Expected result: HTTP 200 or 202 for the whole batch. How to verify: check the status line, and log it. Common mistake: including URLs from another host or subdomain in the urlList. URLs that “don't belong to the host” return 422. The FAQ also says more than 10,000 URLs in one request “may cause the request to fail or return an HTTP 422”; split larger sets into several requests.
IndexNow response codes
| Code | Meaning (IndexNow documentation) | What to do |
|---|---|---|
| 200 OK | URL submitted successfully | Nothing; it means received, not indexed |
| 202 Accepted | URL received; IndexNow key validation pending | Normal on first use; later requests should return 200 |
| 400 Bad Request | Invalid format | Check parameter names, URL encoding and JSON syntax (trailing commas, brackets) |
| 403 Forbidden | Key not valid: key file not found, or file found but key not in it | Check the key file loads and contains exactly the key |
| 422 Unprocessable Entity | URLs don't belong to the host, or the key doesn't match the protocol schema | Submit only URLs on the key's host; check key format; keep batches at or under 10,000 |
| 429 Too Many Requests | Too many requests (potential spam) | Pause and retry after the time in the Retry-After header; submit less often |
Step 6: Automate Submissions When Content Changes
Trigger a submission from your publishing workflow whenever a page is added, meaningfully updated or deleted, instead of sending URLs by hand. IndexNow's documentation says “the recommended way is to automate submission of URLs as soon as the content is added, updated, or deleted”.
What the FAQ recommends (IndexNow FAQ):
- Use backend scripts, CMS hooks or your deployment pipeline to send URLs automatically.
- Submit only meaningful changes (content, price, availability), not cosmetic or layout edits.
- Wait at least 5 minutes before resubmitting the same URL.
- Submit deleted pages (returning 404 or 410) and redirected URLs too, so engines can update or drop them.
- Log each submission: timestamp, URL, response code, GET or POST, and retries.
- For user-generated content, submit incrementally, for example each review from 1 to 20, then every 5th up to 100.
Expected result: a log of submissions whose codes are mostly 200. How to verify: publish a test page and confirm one log entry appears. Common mistake: backfilling. Both the IndexNow FAQ and Bing say not to submit URLs that changed before you started using IndexNow; use a sitemap with accurate lastmod dates for those. The exception, per the FAQ, is a full-site change such as a migration or redesign.
Step 7: Confirm Receipt in Bing Webmaster Tools
Open the IndexNow report in Bing Webmaster Tools for your verified site and look for the URLs you submitted. Bing's setup page says to “use Bing Webmaster Tools to verify if your URLs are received by search engines.”
What the report shows, according to Bing's IndexNow help page:
- URLs Submitted over a time period, and Sources, showing whether submissions came from you directly or through channels such as the WordPress plugin or Cloudflare.
- IndexNow Insights: a graph of submission volume. “View complete report” adds counts of URLs submitted, crawled and indexed by date.
- Submitted URLs list: a near real-time sample of recent submissions with time (UTC unless stated) and source. “View” shows crawl status, index status and first indexed time. You can export the list with “Download all”.
- Important URLs Missed: significant URLs Bing indexed in the last 7 days that did not arrive through IndexNow, which points to gaps in your automation.
- Issue categories for submitted pages that were not indexed, including content quality, canonical URL exists, redirect, noindex tag, robots disallowed, not crawled and dead link.
Expected result: your test URL in the submitted-URLs list with the right source. Common mistake: looking in the wrong site. Bing reports per verified site, so the submitted URL must belong to the site you selected. If you have not added your site yet, our comparison of Google Search Console and Bing Webmaster Tools explains what each tool covers.
How to Verify It Worked
- Key file:
https://yourdomain/{key}.txtreturns HTTP 200 and shows only the key. - Submission: your request returns 200 (or 202 the first time). Anything else is an error; see the response code table.
- Receipt: the URL appears in Bing Webmaster Tools' IndexNow submitted-URLs list, with your source and a submission time.
- Outcome: “View” on a submitted URL shows crawl status, index status and first indexed time. Bing and IndexNow both say submission does not guarantee crawling or indexing.
- Coverage: “Important URLs Missed” is empty or short. If it lists URLs you published, your automation is skipping them.
IndexNow says nothing about Google. To check Google, use the Search Console tools covered in how long Google takes to index a new page.
How to Choose an IndexNow Setup
| Situation | Recommended method | Why |
|---|---|---|
| Site already behind Cloudflare | Turn on Crawler Hints | One toggle on every plan; Cloudflare sends changed URLs to IndexNow |
| WordPress site | Microsoft's IndexNow plugin, or the IndexNow feature in the SEO plugin you already use | Key generated and hosted for you; submits on publish, update and delete |
| Hosted builder (Wix, Duda and others) | Check the platform's built-in support | Wix submits automatically on Premium plans; nothing to configure |
| Static site or custom CMS | Key file at root plus a POST from your build or deploy step | One request per deploy can cover up to 10,000 changed URLs |
| You cannot write to the site root | Key file elsewhere with keyLocation | Allowed, but only covers URLs under the key file's folder |
| Several subdomains | A separate key file on each subdomain | The FAQ treats each subdomain as a separate host |
| Site migration or redesign | One full submission, then back to changes only | The FAQ allows submitting all URLs after a site-wide change |
Common Problems and Fixes
| Problem | Likely cause | Fix |
|---|---|---|
| 403 Forbidden | Key file missing, misnamed, or its contents don't match the key | Name the file exactly {key}.txt; put only the key inside; check it loads without login |
| 422 Unprocessable Entity | URLs from a different host, wrong key format, or more than 10,000 URLs | Submit each host's URLs with its own key; split large batches |
| 400 Bad Request | Unencoded URL, misspelled url or key parameter, or invalid JSON | URL-encode the page URL; validate the JSON body |
| 429 Too Many Requests | Submitting too often or resubmitting unchanged URLs | Honour Retry-After; the FAQ says wait at least 10 minutes before resubmitting the same URL after a 429 |
| 202 on every request | Engine has not yet validated the key | Confirm the key file is publicly reachable; 202 should turn into 200 once validated |
| Submitted but not indexed | Crawl quota, thin or duplicate content, noindex, robots.txt block, or 404 | Use the issue categories in Bing's IndexNow report and fix the page |
URLs submitted with keyLocation ignored | URLs fall outside the key file's folder | Move the key file to the root |
| No change in Google | Google does not participate in IndexNow | Use a sitemap and Search Console for Google |
What Not to Do
- Do not submit your whole site every day. Consequence: the FAQ says every submitted URL counts toward your crawl quota, and repeated unchanged URLs can trigger 422 or 429. Correction: submit only what changed.
- Do not backfill old changes. Consequence: Bing and IndexNow both say IndexNow is for changes made since you started using it. Correction: rely on your sitemap's
lastmodfor older pages. - Do not submit to several endpoints for the same change. Consequence: duplicate notifications, since participating engines already share submissions. Correction: pick one endpoint, such as
api.indexnow.org. - Do not drop your sitemap. Consequence: engines lose the full inventory, and Google gets nothing from IndexNow. Correction: run both.
- Do not submit pages you do not want indexed. Consequence: you ask for crawls of
noindexor private pages. Correction: exclude them; Cloudflare says to usenoindexon pages Crawler Hints should not get indexed, and Microsoft's WordPress plugin skips noindexed pages automatically. - Do not read 200 as indexed. Consequence: false confidence. Correction: check index status in Bing Webmaster Tools.
Frequently Asked Questions
Does Google support IndexNow?
Google is not among the endpoints listed in the IndexNow FAQ or in the protocol’s searchengines.json file as of October 7, 2026. IndexNow submissions do not notify Google, so keep an XML sitemap and Google Search Console for Google.
Do I need to submit the same URL to Bing and Yandex separately?
No. IndexNow says participating search engines agree that submitted URLs are automatically shared with all other participants, and its FAQ says to submit to only one endpoint.
Can I use the same IndexNow key on several subdomains?
The IndexNow FAQ treats each subdomain as a separate host and says to host a key file in the root of each subdomain and submit that subdomain’s URLs with its own key.
How do I change or rotate my IndexNow key?
Generate a new key, replace the old key file with the new {key}.txt file, and start submitting with the new key. The IndexNow FAQ says search engines re-verify ownership automatically when they see the new key.
Should I submit deleted or redirected pages to IndexNow?
Yes. The IndexNow FAQ says to submit redirected URLs and pages returning 404 or 410 so search engines can update or remove them.
How often can I resubmit the same URL?
Only when it has changed meaningfully. The IndexNow FAQ recommends waiting at least 5 minutes between submissions of the same URL, and at least 10 minutes after a 429 response.
Does IndexNow replace my XML sitemap?
No. The IndexNow FAQ recommends using both: IndexNow for recent changes and a sitemap as the complete inventory of URLs, including pages that changed before you started using IndexNow.
Does an IndexNow submission guarantee indexing?
No. IndexNow says a 200 response only means the search engine received the URL, and Bing says IndexNow does not guarantee that pages will be crawled or indexed.
Is IndexNow worth using on a small website?
The IndexNow FAQ says yes, because it notifies engines of each change. If your CMS or CDN supports it, enabling it takes a single setting.
Sources and Methodology
This guide is built from the IndexNow protocol documentation and FAQ, Bing's IndexNow setup page and Webmaster Tools help, and the documentation of Cloudflare, the WordPress.org IndexNow plugin, Rank Math, Yoast and Wix, all read on October 7, 2026. Bing's help pages load with JavaScript and were read in a browser. We did not set up IndexNow or send any submissions for this guide, so we report the response codes and report fields as documented, not as observed. The participating-engine list comes from the IndexNow FAQ and searchengines.json on the same date and can change. Platform integrations named only from Bing's list were not checked against each vendor's own documentation. The time estimates are ours.
- official IndexNow.org, Documentation. Key format, key file and
keyLocation, GET and POST formats, 10,000-URL limit, response codes. Read October 7, 2026. - official IndexNow.org, FAQ. Endpoints, platform support, automation, rate limits, troubleshooting. Read October 7, 2026.
- official IndexNow.org, What is IndexNow? and searchengines.json. Read October 7, 2026.
- official Microsoft Bing, How to add IndexNow to your website. Read October 7, 2026.
- official Bing Webmaster Tools Help, IndexNow. Report fields. Read October 7, 2026.
- official Bing Webmaster Tools Help, Webmaster tools & features. Read October 7, 2026.
- vendor Cloudflare Docs, Crawler Hints, last updated August 14, 2026. Read October 7, 2026.
- vendor WordPress.org, IndexNow Plugin (Bing Webmaster team). Read October 7, 2026.
- vendor Rank Math, How to Use IndexNow With Rank Math. Read October 7, 2026.
- vendor Yoast, IndexNow: What it is and how it benefits you. Read October 7, 2026.
- vendor Wix Help Center, How Wix Uses IndexNow to Inform Search Engines About Your Site Changes. Read October 7, 2026.