When you publish a post, how long does it take a search engine to notice? With a traditional crawl, anywhere from hours to weeks, depending on how often the crawler visits your site. IndexNow shortens that wait by letting your site tell search engines directly: "this URL just changed, come and look."
This guide covers how IndexNow works, how to set it up on WordPress with or without a plugin, how to test it by hand, how to confirm it is working in Bing Webmaster Tools, and how to fix the errors people run into most. Everything here is free.
What is IndexNow?
IndexNow is an open protocol launched in 2021 by Microsoft Bing and Yandex. Instead of waiting for a crawler to find changes, your site sends a short request listing the URLs that were added, updated or deleted.
A few facts worth knowing:
- One ping, many engines. You can send to the shared endpoint
api.indexnow.org(or an individual engine's endpoint). Participating engines share submissions with each other. Participants include Bing, Yandex, Seznam, Naver and Yep. - Google does not take part. This is the most common misunderstanding. IndexNow does nothing for Google. For Google you still need a submitted XML sitemap and good internal linking. See our guide on how to submit a WordPress sitemap to Google Search Console.
- It is about discovery, not ranking. IndexNow tells engines a page exists or changed. Whether it gets indexed, and where it ranks, is still decided by the usual signals.
- It costs nothing. No account, no API fee. You only need a key.
Why care if Google is not involved? Bing's share of search is smaller than Google's, but it is not zero, and Bing's index is also what powers Microsoft Copilot's web answers. For a new site, getting fresh content into Bing quickly is a cheap win.
How the IndexNow key works
IndexNow uses a simple ownership check. You choose a key, a string of 8 to 128 characters using letters, numbers and dashes, and you publish it as a text file on your own domain:
https://example.com/a1b2c3d4e5f6a7b8c9d0.txt
The file contains nothing but the key itself. When you submit URLs, you include the key. The search engine fetches the key file from your domain, and if the contents match, it knows the submission really came from the site owner. Nobody else can submit URLs for your domain because they cannot put a file on your server.
You can host the key file at the root (the usual approach) or elsewhere, in which case you pass its location in a keyLocation field.
Setting up IndexNow manually
You can do this without any plugin. It is a good way to understand what is happening, even if you automate it later.
Step 1: Create and upload the key file
- Generate a key. Any random string will do, for example a UUID with the dashes removed. Bing Webmaster Tools also offers a key generator in its IndexNow section.
- Create a plain text file named
<your-key>.txtcontaining only the key. - Upload it to your WordPress root (the folder with
wp-config.php) using your host's File Manager or FTP. - Open
https://example.com/<your-key>.txtin a browser and confirm you see the key.
Step 2: Submit a single URL with GET
The simplest submission is a browser visit or a curl request:
curl "https://api.indexnow.org/indexnow?url=https://example.com/new-post/&key=a1b2c3d4e5f6a7b8c9d0"
Step 3: Submit several URLs with POST
For more than one URL, send JSON:
curl -X POST "https://api.indexnow.org/indexnow" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"host": "example.com",
"key": "a1b2c3d4e5f6a7b8c9d0",
"keyLocation": "https://example.com/a1b2c3d4e5f6a7b8c9d0.txt",
"urlList": [
"https://example.com/new-post/",
"https://example.com/updated-page/"
]
}'
A POST can carry up to 10,000 URLs. Replace example.com and the key with your own values.
Reading the response
- 200 OK: the URLs were received.
- 202 Accepted: received, but the key has not been validated yet. Normal for a brand-new key.
- 400 Bad Request: the request is malformed, usually broken JSON.
- 403 Forbidden: the key could not be verified. The key file is missing, unreachable or does not match.
- 422 Unprocessable Entity: the URLs do not belong to the
hostyou declared, or the key does not match that host. - 429 Too Many Requests: you are sending too often, often the same URLs repeatedly.
Manual submission works, but nobody wants to run curl every time they fix a typo. That is where automation comes in.
Common IndexNow problems on WordPress
Most failures come down to the key file not being reachable exactly as expected.
403 key mismatch. Open the key URL in a private browser window. If you see your theme's 404 page, a login screen or the wrong text, engines see the same. Check the file name, check there are no extra spaces or line breaks in the contents, and confirm the key you submit is identical.
The key file works for you but not for bots. Security plugins and host firewalls sometimes block unfamiliar requests or bots by default. Allow-list the key file path, or check your firewall log for blocked requests from Bing.
Caching serves an old version. If you changed your key, a caching plugin or CDN may still serve the old file. Purge the cache after any change.
422 errors on www vs non-www or http vs https. The host and every URL must match your site's canonical address exactly. If your site is https://www.example.com, do not submit https://example.com/....
429 rate limiting. Do not re-submit your whole site daily. Submit only URLs that are new, changed or deleted.
Maintenance and staging sites. Never run IndexNow on a staging copy. It will tell search engines about URLs that should not exist publicly.
How to check IndexNow is working in Bing Webmaster Tools
- Sign in to Bing Webmaster Tools and add your site if you have not already. You can import it from Google Search Console in a couple of clicks.
- Open the IndexNow section from the left menu.
- Look at the submitted URL list and counts. After you publish a post, its URL should appear there, usually within minutes to hours.
- Use URL Inspection on the new URL to see whether Bing has crawled and indexed it.
If nothing appears after a day, go back to the key file checks above.
Automating IndexNow with a free WordPress plugin
Impex Rank SEO is a free WordPress SEO plugin that includes IndexNow. It is switched on by default, so there is usually nothing to configure.
- Install Impex Rank SEO from WordPress.org (Plugins → Add New, search "Impex Rank SEO") and activate it.
- In the Setup Wizard or on the Impex Rank SEO Dashboard module grid, make sure IndexNow is enabled. It is on by default after activation.
- Go to Impex Rank SEO → Tools. Under IndexNow API key you will see a key that was generated on activation.
- That is it. The plugin serves the key file at
yoursite.com/<key>.txtthrough WordPress, so you do not upload anything.
From then on, whenever a post, page or other public post type is published, or a published one is updated, the plugin sends its URL to api.indexnow.org together with your key and key location. Revisions and private post types are skipped. The request is sent in the background, so it never slows down clicking Publish.
A few practical notes:
- Delete any old key file you uploaded by hand, or make sure it matches the plugin's key. A physical file on the server is served before WordPress gets the request.
- Changing the key. You can paste your own key into the field if you want to reuse one you already registered. Visit Settings → Permalinks and click Save afterwards so the new key file address is recognised.
- The plugin does not show response codes. It fires the ping and moves on. Use Bing Webmaster Tools to confirm submissions are arriving.
- Privacy. The only data sent is the content URL and your IndexNow key, and only to the IndexNow endpoint. The plugin makes no calls to our own servers.
IndexNow works best alongside a clean sitemap. Impex Rank SEO also builds an XML sitemap index at /impex-sitemap.xml, so you are covered for Google too. See the docs on sitemaps.
Frequently asked questions
Does Google support IndexNow?
No. Google does not take part in IndexNow. Keep your XML sitemap submitted in Google Search Console; IndexNow covers Bing, Yandex and the other participating engines.
Do I need to submit to Bing and Yandex separately?
No. Participating engines share IndexNow submissions with each other, so one ping to api.indexnow.org reaches all of them.
Will IndexNow make my pages rank faster?
It helps engines discover new and updated URLs sooner. It does not guarantee indexing and it does not affect rankings. Quality and relevance still decide where a page appears.
Is there a limit on how many URLs I can submit?
A single POST request can carry up to 10,000 URLs. Submitting the same unchanged URLs over and over can get you rate-limited with a 429 response, so only ping pages that actually changed.
Is the IndexNow feature in Impex Rank SEO free?
Yes. IndexNow is part of the free Impex Rank SEO plugin on WordPress.org. The key is generated on activation, the key file is served automatically, and published or updated posts are submitted for you.
Stop pinging by hand. Install Impex Rank SEO free from WordPress.org and every publish and update is sent to IndexNow automatically. The same plugin handles your sitemap, schema, redirects and 404 monitoring. See all features.