Media Morpheus

How-To Guideby Media Morpheus Research

October 7, 2026 · Last fact-checked: October 7, 2026

How to Set Up IndexNow on Your Website: Key File, Submissions and Bing Verification

To set up IndexNow, generate a key, host it as a text file at your site root, then send changed URLs to one participating endpoint: a GET request for one URL or a JSON POST for up to 10,000. The main prerequisite is the ability to upload a file to your web root, unless your CMS, plugin or CDN already supports IndexNow. There are seven steps. The key warning: IndexNow reaches Bing and other participating engines, not Google, and a 200 response means the URL was received, not indexed.

IndexNowBing Webmaster ToolsIndexingTechnical SEO

At a Glance

  • IndexNow notifies participating engines that a URL was added, updated or deleted. As of October 7, 2026 the IndexNow FAQ lists endpoints for Amazon, Bing, Naver, Seznam.cz, Yandex and Yep plus the shared api.indexnow.org. Google is not listed (IndexNow FAQ).
  • The key must be 8 to 128 characters of a–z, A–Z, 0–9 and dashes, hosted as {key}.txt at the site root; a key file elsewhere (keyLocation) only covers URLs under its folder (IndexNow documentation).
  • One GET request submits one URL; one JSON POST submits up to 10,000. Submissions to one endpoint are shared with all participating engines.
  • Expect 200, or 202 on first use while the key is checked. 403 means a key file problem, 422 a host or key mismatch, 429 too many requests.
  • Many platforms do it for you: Cloudflare Crawler Hints (all plans), Microsoft's WordPress IndexNow plugin, Rank Math, Yoast SEO Premium and Wix Premium plans, per their own documentation.
  • Bing Webmaster Tools' IndexNow report shows each submitted URL, its source, and its crawl and index status.

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.

Which search engines receive IndexNow submissions

Classification from the IndexNow FAQ and searchengines.json, read October 10, 2026, not a measurement

Bing
listed, with FAQ endpoint
Yandex
listed, with FAQ endpoint
Amazon, Naver, Seznam.cz, Yep
listed, with FAQ endpoints
Internet Archive
listed in searchengines.json only
Google
not listed

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

StepActionExpected result
1Check whether your CMS, plugin or CDN already supports IndexNowEither IndexNow is switched on for you, or you know you need a manual setup
2Generate an API keyA string of 8–128 characters: a–z, A–Z, 0–9 and dashes
3Host the key file at your site root (or use keyLocation)https://yourdomain/{key}.txt loads and shows only the key
4Submit one URL with a GET requestHTTP 200, or 202 while the key is being checked
5Submit a batch of up to 10,000 URLs with a JSON POSTHTTP 200 or 202 for the batch
6Automate submissions when content is added, updated or deletedEach real change triggers one submission; responses are logged
7Confirm receipt in Bing Webmaster Tools' IndexNow reportYour 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):

PlatformHow IndexNow is providedSource
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 pluginBuilt 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 SEOSupported in Yoast SEO Premium, activated automatically; pings IndexNow when you publish or update content.Yoast
WixAutomatic 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

CodeMeaning (IndexNow documentation)What to do
200 OKURL submitted successfullyNothing; it means received, not indexed
202 AcceptedURL received; IndexNow key validation pendingNormal on first use; later requests should return 200
400 Bad RequestInvalid formatCheck parameter names, URL encoding and JSON syntax (trailing commas, brackets)
403 ForbiddenKey not valid: key file not found, or file found but key not in itCheck the key file loads and contains exactly the key
422 Unprocessable EntityURLs don't belong to the host, or the key doesn't match the protocol schemaSubmit only URLs on the key's host; check key format; keep batches at or under 10,000
429 Too Many RequestsToo 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}.txt returns 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

SituationRecommended methodWhy
Site already behind CloudflareTurn on Crawler HintsOne toggle on every plan; Cloudflare sends changed URLs to IndexNow
WordPress siteMicrosoft's IndexNow plugin, or the IndexNow feature in the SEO plugin you already useKey generated and hosted for you; submits on publish, update and delete
Hosted builder (Wix, Duda and others)Check the platform's built-in supportWix submits automatically on Premium plans; nothing to configure
Static site or custom CMSKey file at root plus a POST from your build or deploy stepOne request per deploy can cover up to 10,000 changed URLs
You cannot write to the site rootKey file elsewhere with keyLocationAllowed, but only covers URLs under the key file's folder
Several subdomainsA separate key file on each subdomainThe FAQ treats each subdomain as a separate host
Site migration or redesignOne full submission, then back to changes onlyThe FAQ allows submitting all URLs after a site-wide change

Common Problems and Fixes

ProblemLikely causeFix
403 ForbiddenKey file missing, misnamed, or its contents don't match the keyName the file exactly {key}.txt; put only the key inside; check it loads without login
422 Unprocessable EntityURLs from a different host, wrong key format, or more than 10,000 URLsSubmit each host's URLs with its own key; split large batches
400 Bad RequestUnencoded URL, misspelled url or key parameter, or invalid JSONURL-encode the page URL; validate the JSON body
429 Too Many RequestsSubmitting too often or resubmitting unchanged URLsHonour Retry-After; the FAQ says wait at least 10 minutes before resubmitting the same URL after a 429
202 on every requestEngine has not yet validated the keyConfirm the key file is publicly reachable; 202 should turn into 200 once validated
Submitted but not indexedCrawl quota, thin or duplicate content, noindex, robots.txt block, or 404Use the issue categories in Bing's IndexNow report and fix the page
URLs submitted with keyLocation ignoredURLs fall outside the key file's folderMove the key file to the root
No change in GoogleGoogle does not participate in IndexNowUse 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 lastmod for 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 noindex or private pages. Correction: exclude them; Cloudflare says to use noindex on 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.

  1. official IndexNow.org, Documentation. Key format, key file and keyLocation, GET and POST formats, 10,000-URL limit, response codes. Read October 7, 2026.
  2. official IndexNow.org, FAQ. Endpoints, platform support, automation, rate limits, troubleshooting. Read October 7, 2026.
  3. official IndexNow.org, What is IndexNow? and searchengines.json. Read October 7, 2026.
  4. official Microsoft Bing, How to add IndexNow to your website. Read October 7, 2026.
  5. official Bing Webmaster Tools Help, IndexNow. Report fields. Read October 7, 2026.
  6. official Bing Webmaster Tools Help, Webmaster tools & features. Read October 7, 2026.
  7. vendor Cloudflare Docs, Crawler Hints, last updated August 14, 2026. Read October 7, 2026.
  8. vendor WordPress.org, IndexNow Plugin (Bing Webmaster team). Read October 7, 2026.
  9. vendor Rank Math, How to Use IndexNow With Rank Math. Read October 7, 2026.
  10. vendor Yoast, IndexNow: What it is and how it benefits you. Read October 7, 2026.
  11. vendor Wix Help Center, How Wix Uses IndexNow to Inform Search Engines About Your Site Changes. Read October 7, 2026.