Oliver's Notesblog.mrakovics.com
Back
(Updated at: )

IndexNow: Submit Pages to Search Engines via API

IndexNow is a free, open protocol that lets you push URL changes directly to participating search engines - no waiting for crawlers. In this post I walk through what it is, which engines actually support it, when it's worth using, and how to submit pages via the API. I'll also share a script that parses your sitemap and submits everything in one bulk request, plus the tools I reach for to keep submissions running automatically.

What is IndexNow?

IndexNow is an open protocol that allows website owners to inform participating search engines directly whenever website content is ready for indexing.

Before IndexNow, every search engine used a pull-based discovery model. Bots crawled your site on their own schedule, and you had no control over when they would pick up a change.

IndexNow flips that around. It's a push-based protocol, co-developed by Microsoft Bing and Yandex and launched in October 2021, that lets you notify participating search engines the moment a URL is created, updated, or deleted. Instead of waiting to be discovered, you send a ping, and the engine queues that URL for a prioritized crawl.

Which Search Engines Support IndexNow?

As of mid-2026, the confirmed participants are Bing, Yandex, Naver, Seznam, and Yep (Ahrefs' own search engine). Because DuckDuckGo relies heavily on Bing's index, content submitted via IndexNow tends to surface there as well, giving you indirect reach into another slice of search traffic.

Search EngineSupports IndexNowNotes
BingYesPrimary adopter, co-developed the protocol
YandexYesCo-developed alongside Bing
NaverYesAdopted July 2023
SeznamYesCzech search engine
YepYesAhrefs' search engine
DuckDuckGoIndirectBenefits from Bing's index
GoogleNoStill crawler-dependent as of 2026

Google is the notable holdout. Despite having tested the protocol since October 2021, Google continues to rely on its own crawling infrastructure. For Google, you're still depending on XML sitemaps, Search Console's URL inspection tool, and crawl budget.

Is IndexNow Actually Useful? When Should You Use It?

Short answer: yes, but it's not magic.

IndexNow does not guarantee indexing. What it does is signal to participating engines that a URL is crawl-worthy right now. The engine still applies its own quality filters before deciding to index the page. Thin content, pages blocked by robots.txt, or URLs with existing crawl errors may still get skipped.

Where IndexNow genuinely shines is time-sensitive publishing. If you run a news site, a product catalog that changes frequently, or any site where freshness matters, the difference between discovery in minutes vs. days is real. Bing reports that a significant and growing share of all clicked URLs in its results now originate from IndexNow submissions - that number has been climbing year over year.

A few practical rules for when to submit:

  • A new blog post or page goes live
  • You update a page with substantive content changes
  • A page is removed or redirected
  • You've done a significant crawl or URL restructure

What not to submit: minor CSS tweaks, layout-only changes, or pages you don't want indexed in the first place. Every submission counts against your crawl budget, so send quality signals, not noise.

For Google, keep doing what you're already doing - sitemaps and Search Console. Think of IndexNow as a complementary layer for the rest of the web, not a replacement for your Google SEO workflow.

How to Submit a Single URL - The IndexNow Key and API Endpoint

To use the IndexNow API, you first need to prove domain ownership. The mechanism is straightforward: generate a key (a random string between 8 and 128 characters, alphanumeric and hyphens only), then host a plain text file at the root of your domain named after that key.

For example, if your key is abc123xyz, you'd host a file at:

https://example.com/abc123xyz.txt

The contents of that file should just be the key itself! Search engines fetch this file to verify that you control the domain before accepting your submissions.

Once that's in place, a single-URL submission is a simple GET request:

A successful submission returns an HTTP 200. If you get something else, the most common culprits are a missing key file, an invalid key format, or submitting too frequently. The API is the same regardless of which participating engine's endpoint you hit.

Bulk Submission: Parsing a Sitemap and Submitting All URLs

Single-URL pings are fine for real-time hooks in your publishing workflow. But what if you're setting up IndexNow on an existing site, or you want a script that periodically syncs your sitemap with all participating engines? That's where the bulk submission endpoint comes in.

The bulk API accepts a JSON POST body with a list of up to 10,000 URLs in a single request.

Below is the script I wrote that fetches your sitemap, parses every URL out of it, and fires them off to the IndexNow bulk endpoint in batches:

The keyLocation field is optional if your key file lives at the domain root, but it's good practice to include it explicitly. You can also host key files in subdirectories if you only want to authorize submissions for a specific path - a key file at /blog/abc123.txt can only authorize URLs under /blog/.

A few things worth noting about the implementation above:

  • Batching: The IndexNow bulk endpoint accepts up to 10,000 URLs per request.
  • Error handling: A 200 response means the engine received your URLs - not that they're indexed. Log the response codes and watch for 4xx errors, which usually point to key or host configuration problems.
  • Rate limiting: Don't hammer the endpoint. The recommended pattern is to submit URLs as content changes, not to run this script on a tight loop.

Tools That Keep Submissions Running Automatically

Manually running a script every time you publish isn't sustainable. The good news is that most modern CMS platforms and hosting providers have IndexNow baked in already - Wix, Shopify, Cloudflare (via Crawler Hints), and the WordPress ecosystem through plugins like Yoast and Rank Math all handle submissions automatically once configured.

For a more structured SEO workflow, the tool I come back to most often is Ahrefs. I use Ahrefs heavily across my SEO work, and their IndexNow integration inside Site Audit is genuinely one of the more useful implementations I've come across. Once you add your IndexNow API key in the Site Audit crawl settings, it can automatically detect content changes during each crawl and submit the relevant URLs to participating search engines on your behalf - no manual trigger needed.

Ahrefs also surfaces a "Pages to submit to IndexNow" pre-configured issue that flags pages with meaningful content changes, newly added redirects, or removed pages, so you can review the queue before it goes out if you prefer manual control. For sites where I want full automation, I enable auto-submission and let it run alongside their Always-on audit, which crawls continuously rather than on a fixed schedule.

For purely custom or headless setups where you're managing everything in code, the script above paired with a deployment hook or a cron job is the most direct approach. But if you're already invested in a tool like Ahrefs, it makes sense to let it handle the submission layer rather than maintaining a separate script.