seo
IndexNow vs. Sitemaps: What It Does, Which Engines Use It, and Why Google Is Not One
IndexNow pushes URLs to search engines instead of waiting to be crawled. Which engines actually consume it, how key verification works, every response code, and an honest read on whether it is worth your time.
You publish a page. Now you wait — for a crawler to come back, notice the change, and re-index. That wait can be hours or weeks, and nothing you do makes it deterministic. IndexNow inverts the direction: instead of waiting to be crawled, you tell the search engine the moment something changes.
It’s a genuinely simple protocol, it takes about twenty minutes to set up, and its usefulness depends almost entirely on one fact that gets buried in most write-ups: Google does not participate.
Push vs. pull
Sitemaps and IndexNow solve overlapping problems from opposite ends.
| XML sitemap | IndexNow | |
|---|---|---|
| Direction | Pull — the engine fetches when it decides to | Push — you notify on change |
| Latency | Hours to weeks | Seconds to minutes to receive |
| Communicates | The full set of URLs that exist | Only URLs that just changed |
| Good at | Discovery, site structure, completeness | Freshness, deletions, urgent fixes |
| Yes | No | |
| Bing, Yandex, Naver, Seznam, Yep, Amazon | Yes | Yes |
They are not substitutes. A sitemap answers “what pages does this site have?” IndexNow answers “this specific page changed just now.” A site that publishes frequently wants both: the sitemap as the canonical inventory, IndexNow as the change notification. If you don’t have a sitemap yet, that’s the higher-value item — our sitemap generator will produce one.
How the protocol works
Three steps, and the whole thing is one HTTP request.
1. Generate a key. A hex string, 8 to 128 characters. It’s not a secret in any meaningful sense — it’s a proof of control, like a DNS TXT record.
2. Host the key file. Put a plain-text file at your domain root, named <your-key>.txt, containing only the key:
https://example.com/a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6.txt
→ a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6
It must be UTF-8, publicly reachable with no login, and return the key and nothing else. This is the entire verification mechanism: it proves you control the host, so you can’t submit URLs for someone else’s site.
3. POST the URLs.
POST https://api.indexnow.org/indexnow HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"host": "example.com",
"key": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
"keyLocation": "https://example.com/a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6.txt",
"urlList": [
"https://example.com/blog/new-post",
"https://example.com/blog/updated-post"
]
}
keyLocation is optional if the file is at the root under its default name. Every URL in urlList must be on the declared host — cross-host submissions are rejected, which is the other half of the anti-abuse design.
The spec permits up to 10,000 URLs per POST. Our IndexNow submitter caps at 100 per submission, which is a deliberate choice for an interactive tool — 100 covers any realistic hand-driven “I just published a batch” case, and it keeps the failure surface small when something’s wrong with your key.
The endpoint choice
api.indexnow.org is the shared endpoint: submit once and it forwards to every participating engine. You can submit to an engine-specific endpoint (bing.com/indexnow, yandex.com/indexnow) instead, but there’s no benefit — the participating engines share submissions with each other by design. Use the shared one.
Response codes
The status codes are where debugging actually happens, and they’re specific enough to diagnose from:
| Code | Meaning | What to do |
|---|---|---|
200 OK | Accepted | Nothing |
202 Accepted | Received; key validation still pending | Usually fine — check the key file is reachable |
400 Bad Request | Malformed JSON or invalid fields | Check your payload shape |
403 Forbidden | Key file not found, not readable, or contents don’t match | The most common real failure |
422 Unprocessable Entity | URLs don’t belong to the declared host, or the key doesn’t match the URL pattern | Check host matches every URL |
429 Too Many Requests | You exceeded a submission threshold | Back off |
403 is the one you’ll hit, and it’s almost always the key file. Fetch it in a browser yourself before debugging anything else: it must return the key as plain text, with a 200, no redirect, no login wall, and no HTML wrapper. A CDN or framework that serves a styled 404 page for unknown paths will produce a 200-with-HTML that looks fine in a browser tab and fails validation.
On rate limits: IndexNow doesn’t publish exact numbers, and each participating engine sets its own per-site thresholds. A 429 means you’ve crossed one. Our tool adds its own limit of 10 submissions per minute on top, mostly to stop an accidental loop from burning your site’s quota.
The Google question
This is the fact that determines whether IndexNow matters to you, so let’s be direct about it.
Google does not use IndexNow. They said in late 2021 that they would test it, and the outcome of that test was that they did not adopt it. Google’s position has remained that their crawl scheduling is driven by their own signals, and their instant-indexing API is restricted to JobPosting and BroadcastEvent structured data — not general pages.
The engines that do consume IndexNow are Bing, Yandex, Naver, Seznam.cz, Yep, and Amazon. That’s a real audience with real caveats:
- Bing is the meaningful one for most Western sites, and it’s larger than its direct market share suggests — it powers DuckDuckGo, Ecosia, and Yahoo, and it is a training and retrieval source for several AI search products. “Bing traffic” understates the reach of being indexed in Bing.
- Yandex, Naver, and Seznam matter enormously if you serve Russia, South Korea, or the Czech Republic, and essentially not at all otherwise.
So the honest cost-benefit: IndexNow is a small, one-time setup for a non-Google benefit. If you’re chasing Google rankings exclusively, it will not move your primary metric. It’s worth doing anyway because the cost is close to zero and the setup is permanent — but don’t let anyone sell it to you as an indexing fix for Google, because it isn’t one.
What actually helps Google index faster
Since that’s the real question behind most IndexNow searches:
- Fix crawl budget waste. Google spending its crawl on faceted-navigation permutations and parameter duplicates is the most common reason real pages index slowly. Check what’s being crawled in Search Console’s crawl stats.
- Internal links from pages Google already crawls often. A new page linked from your homepage or a frequently-updated hub gets found much faster than an orphan in a sitemap. This is the single highest-leverage thing on the list.
- Correct
lastmodin your sitemap — and accurate. A sitemap where every URL claims to have changed today is a signal Google learns to ignore. - Request indexing in Search Console for genuinely urgent single URLs. Manual, rate-limited, but it works.
- Don’t accidentally block it. A stray
Disallowor anoindexleft over from staging outranks every other effort. Check with our robots.txt generator and confirm the page returns a clean 200 with our HTTP status checker. And keep the two mechanisms straight — Disallow doesn’t mean deindex: robots.txt only controls crawling, and blocking a URL you’ve just submitted leaves engines unable to fetch what you told them changed.
None of that is as satisfying as a button that says “index this now,” but it’s what moves the number.
When IndexNow genuinely earns its place
Cases where the push model does real work:
- News, listings, and anything time-sensitive — job postings, event pages, inventory. Freshness is the product.
- Removing content. Submitting a URL you’ve deleted or
noindexed prompts a recrawl that discovers the change, which is often faster than waiting for the engine to notice a 404 on its own schedule. - Fixing something embarrassing. A typo in a title tag that’s live in search results. Push the URL, get it recrawled.
- Large or frequently-updated sites, where waiting for organic recrawl on thousands of pages is genuinely slow.
- Automated from your build. The best version of IndexNow is one you never think about: your deploy pipeline POSTs the changed URLs. Most major CMSes have a plugin; a static site can do it in a few lines of CI.
If you publish a handful of pages a month and your audience is Google-first, it’s a nice-to-have. Set it up once, forget it, and spend your actual effort on internal linking.
Tools
- IndexNow Submitter — generate a key, get the key-file instructions, and push up to 100 URLs to Bing, Yandex, Seznam, and Naver.
- Sitemap Generator — the pull half of the pair, and the one to do first.
- Robots.txt Generator — make sure you’re not blocking what you’re submitting.
- HTTP Status Checker — confirm the URL you’re pushing actually returns 200.
For the neighboring topics, see 301 vs. 302 redirects, the on-page SEO checklist, and the structured data guide.