What is IndexNow? The ping that tells search engines a page changed
What is IndexNow? It's a free ping that tells search engines a page on your site was added, changed or deleted, so they don't have to wait until they happen to crawl it again. You put a small key file on your site, then send the changed URLs to one address, and Bing, Yandex, Naver, Seznam.cz, Yep and the others that use IndexNow all get the news. Google doesn't use it as of November 2026, so you still need a sitemap for Google.
How IndexNow works: a key, a key file and a ping
Search engines find changes by crawling: they visit your pages over and over to see what's new. That's slow for you and wasteful for them, since most visits find nothing new. IndexNow flips it around. When something changes, your site tells them.
Microsoft Bing and Yandex introduced it in 2021 as an open protocol, which just means a public set of rules anyone can follow. It has three moving parts:
The key
Proves it's your site
A string of 8 to 128 letters, numbers and dashes that you make up or generate.
The key file
Sits on your site
A text file named after the key, holding the key, so engines can check the ping really came from you.
The ping
Sent on every change
A short web request listing the URLs that changed, sent to one IndexNow address.
Send it once and you're done. Engines that use IndexNow agree to share every submitted URL with the other participating engines, so one ping reaches all of them. IndexNow is a different thing from llms.txt, though people mix the two up.
Which search engines use IndexNow, and does Google?
IndexNow's published list of participating engines, as of November 11, 2026:
| Search engine | Uses IndexNow? | Good to know |
|---|---|---|
| Bing | Yes | Has the best report for checking pings, in Bing Webmaster Tools |
| Yandex | Yes | Co-launched the protocol with Bing in 2021 |
| Naver | Yes | A search engine from South Korea |
| Seznam.cz | Yes | A Czech search engine |
| Yep | Yes | A search engine from the SEO company Ahrefs |
| Internet Archive | Yes | Listed on IndexNow's engine list |
| Amazonbot | Yes | Amazon's web crawler, listed on IndexNow's engine list |
| No | Not a participant; use a sitemap and Search Console instead |
IndexNow Google support: where things stand
In November 2021 a Google spokesperson said Google would be "testing the potential benefits of this protocol." Five years on, Google still isn't on the list, and its own guide to asking for a recrawl names only two ways: the URL Inspection tool for a few pages and a sitemap for many. Its separate Indexing API is only for pages with job postings or livestream videos.
So does Google use IndexNow? No. Pinging won't hurt your Google rankings, and it won't help them either. To see how Google treats your new pages, check them in Search Console, or have an assistant do it through a Google Search Console MCP.
How to set up IndexNow, step by step
If you use WordPress, Wix or Cloudflare, a plugin or switch may do all of this for you (see the table further down). Here's what happens underneath, which is also what you do by hand on a custom or static site.
Step 1: make your IndexNow API key
Your IndexNow API key is any string 8 to 128 characters long, using only lowercase a to z, uppercase A to Z, the digits 0 to 9 and dashes. Bing's IndexNow page has a button that makes one for you. A random 32-character string is a fine choice.
Step 2: put the key file on your site
Make a plain text file named after your key, like [your-key].txt, with the key as its only content, saved as UTF-8. Put it at the root of your site, so it opens at https://www.example.com/[your-key].txt. Open that address in a browser to make sure it shows the key and doesn't redirect anywhere.
You can keep the file somewhere else on the same site and point to it with a keyLocation field. But a key file in a folder only covers URLs inside that folder, so the root is simplest.
Step 3: send the ping
For one URL, a simple web address does the job: https://api.indexnow.org/indexnow?url=[the changed URL, encoded]&key=[your-key]. For several, send them together as JSON, up to 10,000 URLs per request. Here's a sample with placeholder values:
Sample IndexNow requestPOST /indexnow HTTP/1.1
Host: api.indexnow.org
Content-Type: application/json; charset=utf-8
{
"host": "www.example.com",
"key": "[your-key]",
"keyLocation": "https://www.example.com/[your-key].txt",
"urlList": [
"https://www.example.com/new-page/",
"https://www.example.com/updated-page/",
"https://www.example.com/deleted-page/"
]
}
Every URL in the list has to be on the host you name. Include deleted and redirected pages too: IndexNow's FAQ says to submit URLs that now return a 404 or 410, so engines drop them sooner.
Ping IndexNow after every deploy
On a site you build and deploy yourself, the cleanest habit is a step that runs right after each deploy. It works out which pages changed, for example from the files in your last commit or from the dates in your sitemap, and sends only those. Two rules keep it polite: don't resend pages that didn't change, and don't make the step able to break the deploy. If the ping fails, log it and move on.
Here's a small shell script that does both, for a site in a git repository whose pages are built to public/<path>/index.html. It picks up added, edited and deleted pages from the last commit and prints the response code:
After-deploy IndexNow ping (shell)#!/bin/sh
# Run after each deploy. Sends only the pages changed in the last commit.
HOST="www.example.com"
KEY="your-key" # your IndexNow key
# Assumes each page is built to public/<path>/index.html. Change the
# sed rules if your build folder or file names differ.
URLS=$(git diff --name-only HEAD~1 HEAD -- 'public/*.html' \
| sed -e 's#^public/##' -e 's#index\.html$##' -e "s#^#https://$HOST/#")
if [ -z "$URLS" ]; then echo "IndexNow: no pages changed"; exit 0; fi
LIST=$(printf '%s\n' "$URLS" | sed 's/.*/"&"/' | paste -sd, -)
CODE=$(curl -s -o /dev/null -w '%{http_code}' -X POST https://api.indexnow.org/indexnow \
-H 'Content-Type: application/json; charset=utf-8' \
-d "{\"host\":\"$HOST\",\"key\":\"$KEY\",\"keyLocation\":\"https://$HOST/$KEY.txt\",\"urlList\":[$LIST]}")
echo "IndexNow: sent $(printf '%s\n' "$URLS" | wc -l | tr -d ' ') URLs, response $CODE"
exit 0
It always exits cleanly, so a failed ping never fails the deploy. A response of 000 means the request didn't get out at all.
IndexNow for WordPress, static sites, Shopify and others
IndexNow WordPress setup: the official plugin
For IndexNow on WordPress, the plugin simply called "IndexNow" is made by the Bing Webmaster team and had over 100,000 active installs in November 2026. Install it, activate it, open its settings page and press "Let's Get Started!" It makes and hosts the key for you, sends pages when they're created, updated or deleted, and skips pages marked noindex.
Already using an SEO plugin? Bing's page also lists Yoast, Rank Math, AIOSEO and SEOPress as ways to add IndexNow. Check your plugin's settings before installing a second one, so you don't send every ping twice.
The simplest way to add IndexNow on each kind of site
| Your site runs on | Simplest way | The key file | How to check |
|---|---|---|---|
| WordPress | The IndexNow plugin from the Bing Webmaster team, or the IndexNow switch in the SEO plugin you already use. One, not both. | The plugin makes and hosts it | Edit a post, then find it in the plugin's recent submissions and in Bing Webmaster Tools |
| A static site with a deploy step | The script above, or any step that sends only the changed URLs in one JSON request | Put [your-key].txt in the folder your build publishes, so it lands at the root | Have the step print the response code: 200 or 202 means received |
| Shopify | An app. Bing's IndexNow page points stores to apps such as InstaIndex, and the Shopify App Store has others. | The app handles it, since Shopify doesn't give you a normal root folder | Change a product, then look for it in Bing Webmaster Tools' IndexNow report |
| Wix | Nothing to install on a Premium plan: Wix says it tells IndexNow about site changes for you | Wix handles it | Publish a change and check Bing Webmaster Tools a little later |
| Any site behind Cloudflare | Turn on Crawler Hints (Caching, then Configuration). It's free on every Cloudflare plan. | Cloudflare handles it, guessing changed pages from your cache | Bing's IndexNow report shows where submissions came from, Cloudflare included |
| Anything else, or your own server | Make a key, host the key file at your root, and ping from wherever your site publishes a page | A text file at your root named [your-key].txt, holding only the key | Read the response code each time and keep the last few in a log, so a 403 doesn't slip by |
How to check IndexNow worked in Bing Webmaster Tools
Start with the reply to your ping. It's a number, and each one means something specific:
- 200: received. That's all it means; it isn't a promise to index.
- 202: received, but your key is still being checked.
- 400: the request is badly formatted.
- 403: the key isn't valid. Usually the key file is missing or doesn't contain the key.
- 422: some URLs aren't on the host you named, or the key doesn't match.
- 429: too many requests, which engines can read as spam. Slow down.
Then look at Bing Webmaster Tools, which is free once you've added and verified your site. Its IndexNow report (at bing.com/webmasters/indexnow) counts how many URLs you submitted and how many were crawled and indexed. It also lists your latest 1,000 submitted URLs with each one's index status, the date it was first indexed and whether you sent it late. It shows where pings came from, like WordPress, Cloudflare or a manual submit, and an "Important URLs Missing" tab lists pages that get clicks but weren't sent recently.
The report can take a while to fill in after your first pings, so don't read much into an empty one on day one.
IndexNow mistakes that waste your pings
- Sending every URL on every deploy. IndexNow asks you not to resend unchanged pages, which adds up fast with programmatic pages. A full resend each time can earn you 429 replies.
- A key file that redirects. If the file at your root sends visitors somewhere else, or returns an error, every ping fails with a 403.
- Mixing hosts. www.example.com and example.com are different hosts. Send URLs for the host your site really uses, with the key file on that same host.
- Two tools sending the same pings. A plugin plus Cloudflare plus a deploy script means triple pings. Pick one sender per site.
- Forgetting deleted pages. Removed and redirected URLs should be sent too, so engines stop showing them.
- Expecting Google to notice. It won't, through IndexNow. Keep your sitemap current and check Google in Search Console.
Running an IndexNow routine with several AI agents
An IndexNow ping is one step in a bigger "after every deploy" routine: send the changed URLs, check that each page loads and answers the question it should, then watch Search Console and rankings over the next week or two. Those are separate jobs, and they suit separate agents.
The after-deploy routine fits in one AgentMsgr group chat:
- The agent that deploys your site posts what changed and the IndexNow response code.
- You @mention a checker, a Grok Bot for instance, to open each changed page and confirm it loads and reads right.
- A week later, an agent with a Search Console connector reports which pages are indexed and getting impressions.
- Any fix that would go live comes to you as an approval request in the chat, and nothing ships until you tap Approve.
For who does what across a whole marketing group, see AI marketing team, and for which actions should always wait for you, the human in the loop AI agent guide.
Sources: IndexNow, documentation, FAQ and participating engines list; Bing, IndexNow get started and IndexNow Insights (March 2024); WordPress.org, IndexNow plugin; Wix, how Wix uses IndexNow; Cloudflare, Crawler Hints; Google, ask Google to recrawl your URLs; Search Engine Land, Google is testing the IndexNow protocol (November 2021). All read November 11, 2026. AgentMsgr isn't affiliated with Microsoft, Google, Yandex, Wix, Shopify, Cloudflare or the IndexNow project.
IndexNow fine print
Is the IndexNow API key a secret?
No. The key file sits on your site where anyone can read it. The key only proves that whoever sends a ping for your site can also put files on it, so it's not a password and doesn't need hiding.
Do I still need a sitemap if I use IndexNow?
Yes. IndexNow's own FAQ says to use both, and Google, which doesn't use IndexNow, still reads your sitemap. Keep the sitemap up to date and let IndexNow handle the quick heads-up.
How often can I send IndexNow pings?
Whenever a page is added, changed or deleted. Don't resend pages that haven't changed, and for a page that changes often, IndexNow suggests waiting at least 5 minutes before sending it again. One request can carry up to 10,000 URLs, and engines don't publish a daily limit.
Does IndexNow guarantee my page gets indexed?
No. A ping tells search engines a page changed, and they decide whether and when to crawl and index it. A 200 response only means your ping was received.
Keep the deploy, the ping and the check in one thread
In AgentMsgr your deploy agent posts the ping result, a checker agent confirms the pages, and you approve any fix before it goes live.