IndexNow on WordPress takes one plugin and nothing else: Microsoft's IndexNow plugin, or the IndexNow feature inside Rank Math, Yoast SEO Premium or AIOSEO Pro. The plugin generates a key, serves the key file at the root of your site and sends every published, updated or deleted URL to the IndexNow endpoint, from where Bing, Yandex, Naver, Seznam and Yep pick it up. Google does not take part, so IndexNow covers everything except the engine most sites care about most.
What IndexNow does and who listens
IndexNow is a protocol for telling search engines that a URL changed. You prove you control the host with a key file, then send the URL and the key in an HTTP request. The receiving engine shares the URL with the other participants. There is no account, no verification step and no cost. A full description with request formats and response codes is in the IndexNow guide; this article is only about doing it on WordPress.
Who acts on it: Bing (and through Bing, DuckDuckGo and Yahoo), Yandex, Naver, Seznam and Yep. Amazonbot and the Internet Archive consume the feed. Google has never joined.
The four options
| Plugin | Where it lives | Cost |
|---|---|---|
| IndexNow Plugin by Microsoft Bing | Settings > IndexNow | Free |
| Rank Math SEO | Rank Math SEO > Instant Indexing | Free |
| Yoast SEO | Yoast SEO > Settings > Site features > IndexNow | Premium |
| All in One SEO | General Settings > Webmaster Tools > IndexNow | Pro |
Pick one. Two active IndexNow integrations send every change twice, and the engines treat repeated submissions of the same URL as noise. If you install Microsoft's plugin alongside an SEO plugin, switch IndexNow off in the SEO plugin.
Option 1: Microsoft's IndexNow plugin
Install the plugin named "IndexNow Plugin" by the Bing Webmaster team from the WordPress directory and activate it. On activation it generates a key and starts serving the key file. The admin page under Settings shows:
- a switch for automatic submission,
- a field to exclude URL paths with wildcard patterns, useful for
/tag/*or/author/*, - a box to submit a single URL by hand,
- a history of recent submissions with success or failure, a retry button, and a download of the list. The dashboard keeps only the last 20 successful and 20 failed entries.
It submits URLs to https://api.indexnow.org/indexnow when a page or post is published, updated or deleted, and it skips pages that carry noindex, checking the meta robots tag, the X-Robots-Tag header and the site-wide "Discourage search engines" setting. Deactivating the plugin deletes the key and the stored history, and reactivating creates a new key, so do not toggle it for fun.
Option 2: Rank Math
Rank Math's IndexNow support is part of its Instant Indexing module. Turn the module on from the Rank Math dashboard (you need Advanced Mode to see its settings), then open Rank Math SEO > Instant Indexing > Settings and tick the post types to submit automatically. Rank Math creates the key, serves the file dynamically and gives you a Check Key button that opens the key URL so you can confirm it works, plus Change Key to rotate it.
Submission happens when a post of a chosen type is published or modified, and Rank Math does not submit posts set to noindex. Manual routes: Submit URLs under Instant Indexing takes a list, one per line; the post list has an "Instant Indexing: Submit Page" row action and a matching bulk action. The History tab lists each URL with its response code.
One naming trap: Rank Math also publishes a separate plugin called Instant Indexing that talks to Google's Indexing API, which is a different thing with a different quota and a different policy. That one is covered in Rank Math instant indexing.
Option 3: Yoast SEO Premium
Yoast added IndexNow to the Premium plugin in 2022. Open Yoast SEO > Settings, scroll to the Technical SEO part of Site features and enable IndexNow. From then on Yoast pings the participating engines whenever you publish, update or delete a post. There is nothing to configure beyond the switch, and the free plugin does not include it.
Option 4: AIOSEO Pro
In All in One SEO Pro (Basic plan or above), enable the IndexNow addon in Feature Manager, then open General Settings > Webmaster Tools and click the IndexNow block. The key is generated for you; the same screen lets you view, update or regenerate it. AIOSEO pings IndexNow when content is published or updated.
The key file
Whichever plugin you use, the engines verify your key by fetching:
https://www.example.com/<your-key>.txt
The response must be status 200, plain text, containing only the key. The plugins do not write a file into your web root; they answer that URL from WordPress through a rewrite rule. That is convenient and also the source of most IndexNow failures on WordPress, because anything that intercepts the request before WordPress breaks it. Check the URL with curl:
curl -i https://www.example.com/7e3f9c0a5b1d4e2f8a6c0d9b3e1f7a25.txt
You want HTTP/2 200, a content-type: text/plain header and the key as the whole body. The HTTP headers checker shows the same thing without a terminal. What goes wrong:
- Your 404 page or the homepage comes back. The rewrite rule is not active. Open Settings > Permalinks and click Save Changes to flush the rules. If it still fails, create the file by hand in the web root; the rewrite rule only matters when no real file exists.
- A redirect to the non-www or www host. The key file must be served on the host you submit for. If the site lives on
www, the request body must saywwwtoo. - A security plugin or a firewall blocks the request. Some rules treat unknown
.txtrequests or unknown bots as attacks. Whitelist the key path. - A page cache serves HTML for it. Exclude the key path from your caching plugin and from any CDN page rules.
What gets sent and when
All four send a URL when a post is published, updated or deleted. Drafts, scheduled posts and private posts are not sent until they go public. Deleting or trashing a post sends the URL as well, which is correct: the engines fetch it, get a 404 and drop it sooner.
What you should not send is anything you do not want indexed. Microsoft's plugin and Rank Math skip noindex posts; with any plugin, limit automatic submission to the post types that belong in search. Tag archives, author pages, attachment pages and internal search results waste the signal. If your WordPress indexing problems include noindexed or duplicate URLs, fix those before you start announcing them to five search engines.
Checking that it worked
A 200 from the endpoint means "received", not "crawled" or "indexed". To see what Bing did:
- Verify the site in Bing Webmaster Tools, or import it from Google Search Console.
- Open IndexNow in the left menu. It lists the URLs Bing received through the protocol, with dates. If your plugin's history says 200 and this list stays empty for a day, the key file check failed on Bing's side.
- Use URL Inspection in Bing Webmaster Tools for a single page to see its index status and last crawl.
The same steps, plus Bing's own URL submission options, are in how to submit a URL to Bing. Yandex Webmaster shows IndexNow submissions in its own indexing section.
Common errors
| Code | Meaning | What to do |
|---|---|---|
| 200 | Received | Nothing |
| 202 | Received, key not yet verified | Wait. Confirm the key URL returns the key |
| 400 | Bad request | Malformed URL or body; check the plugin log |
| 403 | Key not valid | The key file could not be fetched or its content differs. Fix the key URL |
| 422 | URL does not belong to the host, or bad key format | www versus non-www mismatch, or a key with characters outside a-z, A-Z, 0-9 and hyphens |
| 429 | Too many requests | Slow down. Stop resubmitting unchanged URLs |
A 429 on a normal blog usually means two plugins are both sending, or a bulk "submit everything" was run several times. Nothing on the site needs fixing; the submission behaviour does.
Google needs a different route
IndexNow is the easy half. For Google, WordPress still relies on the sitemap (/wp-sitemap.xml from core, or your SEO plugin's) submitted under Indexing > Sitemaps in Search Console, on internal links, and on the Request indexing button for a few pages. If you want that side automated as well, TurboIndex reads the sitemaps you submitted in Search Console, fetches each new URL with its own crawler, TurboIndexBot, so that a noindex page, a redirect or a 404 is never submitted (details on the bot page), sends the rest to Google within its daily quota and to the IndexNow engines, and then checks each URL with Google's URL Inspection API. No plugin is involved, which also means nothing to keep updated on the WordPress side.
For a one-off batch outside WordPress, say after a migration, the IndexNow submitter posts a pasted list once your key file is in place.
What to do next
- Choose one plugin from the table and switch off IndexNow everywhere else.
- Open the key URL with curl and confirm a plain-text 200.
- Limit automatic submission to posts, pages and the custom post types you want in search.
- Publish a test post, then check the plugin's history and the IndexNow list in Bing Webmaster Tools the next day.
- Keep the sitemap submitted in Search Console, because IndexNow does nothing for Google.
Frequently asked questions
- Which IndexNow plugin should I use on WordPress?
- If you already run Rank Math, Yoast SEO Premium or AIOSEO Pro, turn on the IndexNow feature you already have. If not, Microsoft's own IndexNow plugin does one job and nothing else. Run only one of them, or every change is submitted several times.
- Does IndexNow on WordPress get my posts into Google?
- No. Google does not use IndexNow. Your posts reach Bing, Yandex, Naver, Seznam and Yep this way. For Google, keep a sitemap submitted in Search Console and use its tools, or a service built on them.
- Where is the IndexNow key file on WordPress?
- The plugins serve it at https://yoursite.com/<key>.txt without writing a file to disk; WordPress answers the request through its rewrite rules. If that URL returns your theme's 404 page or the homepage, save the permalink settings again, check caching and security plugins, or upload the file by hand.
- Why do I get a 403 from IndexNow?
- The engine could not fetch the key file, or its content does not match the key sent. Open the key URL in a private window, check that it returns the bare key as plain text, and check that the host in the request (www or not) is the host that serves the file.
- Is it safe that the IndexNow key is public?
- Yes. The key file is public by design. Someone who knows your key can only submit URLs of your own host, which does nothing worse than cause a crawl. Generate a new key if you want to invalidate the old one.