IndexNow is a small protocol that lets your WordPress site tell a search engine directly when a URL changes, instead of waiting for that engine to crawl and notice on its own. On WordPress the fastest path is Rank Math’s built-in Instant Indexing module: turn it on under Rank Math SEO, and it generates the API key, hosts the key file, and submits new and updated URLs automatically. What it buys you is faster discovery on Bing, Yandex, Naver, Seznam.cz, and Yep. It does not reach Google, which has never adopted IndexNow and still relies on its own crawler, sitemaps, and Search Console.
How IndexNow actually works
Search engines normally find your new or changed pages by crawling: a bot revisits your site on its own schedule, checks your sitemap, and eventually notices what’s different. IndexNow flips that around. Instead of waiting to be discovered, your site pushes a notification the moment something changes.
The mechanism is a key-based handshake, not an account or an API subscription. You generate a key, host a plain text file containing that key at your domain root (`https://yoursite.com/{key}.txt`, or a subdirectory if you set a matching keyLocation), and every submission includes the key so the receiving engine can confirm the request actually comes from someone who controls the domain. A single-URL submission is a GET request to the engine’s /indexnow endpoint with url and key parameters; a batch submission is a POST with a JSON body carrying host, key, keyLocation, and a urlList of up to 10,000 URLs. The engine replies with a status code: 200 for a clean submission, 202 if the URL was received but key validation is still pending, 400 for a malformed request, 403 for a bad or missing key, 422 if the URLs don’t match the host or key you submitted, and 429 if you’re sending too many requests too fast.
Whichever engine you submit to, the protocol shares the notification with every other participating engine, so one submission covers the whole group. That group is currently Microsoft Bing, Yandex, Naver, Seznam.cz, and Yep. Getting that key file hosted correctly assumes your site actually serves plain-text files to crawlers without interference, which is the same access a correctly configured robots.txt is meant to guarantee – if something is blocking bots at the root level, the key file check will fail the same way any other crawl would.
Step-by-step setup
You don’t need a Bing Webmaster Tools account or a manually generated key for the common case. If you’re running Rank Math, which is what this site uses, the module handles the entire handshake:
1. Enable the module. Go to Rank Math SEO in your WordPress dashboard and turn on the Instant Indexing module.
2. Open its settings. Navigate to Rank Math SEO -> Instant Indexing -> Settings. Confirm the API key field shows a generated key – Rank Math creates and hosts this automatically, so there’s no file to upload by hand.
3. Choose which post types submit automatically. The settings screen lets you pick which content types trigger a submission on publish or update. Rank Math excludes anything marked noindex by default, so you don’t have to separately filter those out.
4. Save. From this point forward, publishing or editing a covered post type submits the URL automatically in the background. No extra step per post.
If you’re not on Rank Math, the official IndexNow Plugin (built by the Bing Webmaster team, free, and open source) does the same job standalone: install it, activate it, and it generates and hosts its own key. Deactivating and reactivating the plugin rotates the key, which is also the documented way to reset it if you ever need to.
For content you’re publishing through an automated pipeline rather than the block editor – which is how this site ships most of its posts – the same submission can happen over HTTP right alongside whatever else your automation is already doing through the WordPress REST API. There’s no need to build a separate integration; it’s one more POST request in the same publish step.
How to verify it worked
Rank Math gives you two direct ways to confirm a submission actually happened, beyond just trusting the toggle. First, the manual path: from the Posts screen, hover over any post and you’ll see an “Instant Indexing: Submit Page” row action – use it on a post you just published and watch for a success confirmation instead of an error. Second, select several posts and use the “Instant Indexing: Submit Pages” bulk action the same way, useful right after a setup change when you want to push your existing catalog rather than waiting for the next edit to trigger it.
Beyond the plugin’s own UI, check the response codes if you’re submitting manually or through a script: 200 or 202 means the engine accepted the request, 403 means your key file isn’t being found or doesn’t match, and 422 means the URL you submitted doesn’t belong to the host tied to that key. A 403 almost always traces back to the key file – fetch https://yoursite.com/{key}.txt directly in a browser and confirm it returns the exact key as plain text, not a 404 page or a redirect.
What you won’t see is any signal in Google Search Console, because Google isn’t part of this handshake at all. If your mental model of “did indexing work” is built around GSC’s coverage report, IndexNow submissions won’t show up there – that’s expected, not a failure.
What it doesn’t fix, and what to use instead
This is the part that’s easy to miss: IndexNow does not reach Google. Google evaluated the protocol after its 2021 launch and never adopted it for web search. It still relies entirely on its own crawler, your XML sitemap, and the tools built into Search Console. If your traffic – and most sites’ organic traffic – comes overwhelmingly from Google, IndexNow setup buys you faster indexing on a set of engines that aren’t where most of your readers are searching, and it buys you nothing on the one that is.
That’s not a reason to skip it. Bing, Yandex, and the smaller engines in the group still send real traffic, and instant submission is close to free once it’s configured. But treat it as an addition to your Google indexing workflow, not a replacement for it. For Google specifically, the correct tools are still your sitemap, Search Console’s URL Inspection “Request indexing” action, and – if you’re automating at any scale – the Search Console API for checking indexing status programmatically rather than clicking through the UI one URL at a time. If a page still isn’t indexed in Google days after publishing, the fix lives in that toolkit, not in IndexNow’s dashboard, no matter how clean your IndexNow submissions look.
If IndexNow submissions themselves start failing after previously working, check for the same root causes any indexing signal problem has: a plugin change that regenerated the key without updating the hosted file, a caching layer serving a stale version of the key file, or a robots rule that started blocking the file path. It’s the same category of problem as watching a sitemap stop updating even though the plugin generating it looks configured correctly – the fix is confirming the file the engine actually fetches, not just trusting the setting that’s supposed to produce it.
Frequently asked questions
Do I need a Bing Webmaster Tools account to use IndexNow?
No. The IndexNow Plugin and Rank Math’s Instant Indexing module both generate and host the required key automatically, so submissions work without registering or verifying your site with Bing or any other engine first.
Will IndexNow help my Google rankings?
No. Google does not participate in IndexNow. Faster indexing on Bing, Yandex, Naver, Seznam.cz, or Yep has no bearing on how quickly Google crawls or ranks the same page.
Can I use both Rank Math’s Instant Indexing and the official IndexNow Plugin at the same time?
Running two IndexNow integrations side by side is redundant rather than additive – each generates and hosts its own key file, and only one is needed for the protocol to work. Pick one, most commonly whichever SEO plugin you already run, and leave the other deactivated.
What happens if I regenerate my IndexNow key?
Any previously issued key stops validating once a new one replaces it at the hosted key file location. That’s expected and not something to do casually – regenerate only if you suspect the key has been exposed or reused somewhere it shouldn’t be.

Leave a Reply