IndexNow for Instant Search Engine Notification — Stop Waiting for Crawlers
After publishing a blog post, it typically takes days before it appears in search results. Search engine crawlers must visit your site first to discover new pages. IndexNow eliminates that wait. It's an open protocol that lets you directly notify search engines about new or updated URLs, requesting immediate indexing instead of waiting for the next crawl cycle. One API call, instant notification, free to use, with a daily limit of 10,000 URL submissions.
What Is the IndexNow Protocol
IndexNow is an open protocol led by Microsoft (Bing) that allows websites to proactively notify search engines when content is created, modified, or deleted. Unlike the traditional passive crawling model where you wait for crawlers to find changes, IndexNow lets your site take the initiative.
The three indexing approaches compared:
Traditional crawling: Wait for crawlers to visit your site. Can take days or weeks for new pages to be discovered.
Sitemap submission: Update sitemap.xml and wait for crawlers to re-read it. Takes hours to days.
IndexNow: Call the API immediately after changes. Indexing typically happens within minutes to hours.
Important caveat: IndexNow does not "guarantee" indexing. It notifies search engines of changes — the actual indexing decision depends on the search engine's content quality assessment and crawling policy. However, the notification demonstrably accelerates crawler visits.
Supported Search Engines
Submit to one IndexNow-participating search engine, and the notification is automatically shared with all other participants. Send to Bing, and Yandex, Naver, and other partners receive the notification too.
| Search Engine | IndexNow Support | API Endpoint |
|---|---|---|
| Bing | Official | www.bing.com/indexnow |
| Yandex | Official | yandex.com/indexnow |
| Naver | Official | searchadvisor.naver.com/indexnow |
| Seznam | Official | search.seznam.cz/indexnow |
| Not supported | Separate API (Google Indexing API) |
API Implementation — Single and Batch Submission
The IndexNow API is remarkably simple. A single HTTP GET or POST request is all it takes. Both single URL and batch URL submissions are supported.
Single URL submission (GET):
# GET request for single URL
curl "https://www.bing.com/indexnow\
?url=https://example.com/blog/new-post\
&key=YOUR_API_KEY"Batch URL submission (POST with Next.js API route):
// Next.js API route example
export async function POST(req: Request) {
const { urls } = await req.json();
const response = await fetch(
"https://www.bing.com/indexnow",
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
host: "example.com",
key: process.env.INDEXNOW_KEY,
urlList: urls,
// e.g. ["https://example.com/blog/post-1",
// "https://example.com/blog/post-2"]
}),
}
);
return Response.json({
status: response.status,
submitted: urls.length,
});
}| Response Code | Meaning | Action |
|---|---|---|
| 200 | Success | URL accepted |
| 202 | Accepted | Queued for async processing |
| 400 | Bad Request | Check URL format and key |
| 403 | Key Mismatch | Verify key file placement |
| 429 | Rate Limited | Reduce request frequency |
Key Management — Domain Ownership Verification
IndexNow requires placing an API key file at your web root for domain ownership verification. The key is an 8–128 character alphanumeric string that you generate yourself.
# 1. Generate a key (32-character alphanumeric)
# Example: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
# 2. Place key file at web root
# For Next.js, create in the public folder
# public/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6.txt
# File content: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
# 3. Verify: this URL must be publicly accessible
# https://example.com/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6.txtThe key file must be publicly accessible. Search engines access it to verify domain ownership. Blocking it in robots.txt or requiring authentication will cause verification failure. The file content should contain only the key string itself.
Submission History Tracking
Recording which URLs were submitted and when helps with systematic SEO management. Store submission history in a JSON file or database, and make it viewable through an admin interface.
interface SubmissionRecord {
url: string;
submittedAt: string;
status: number;
engine: string;
}
// Save history after submission
const record: SubmissionRecord = {
url: "https://example.com/blog/new-post",
submittedAt: new Date().toISOString(),
status: 200,
engine: "bing",
};
// Append to JSON file
const history = JSON.parse(
fs.readFileSync("data/indexnow-history.json", "utf-8")
);
history.push(record);
fs.writeFileSync(
"data/indexnow-history.json",
JSON.stringify(history, null, 2)
);Prevent duplicate submissions. Repeatedly submitting the same URL may cause search engines to flag it as spam. Check submission history before sending, and only resubmit when content has actually changed.
IndexNow vs Google Indexing API
Google has not officially adopted IndexNow. To request immediate indexing from Google, you need the separate Google Indexing API, which requires service account authentication and has more complex setup.
| Feature | IndexNow | Google Indexing API |
|---|---|---|
| Authentication | API key file only | Service account + OAuth |
| Setup complexity | Very easy | Complex |
| Content scope | All URLs | Job Posting, Livestream, etc. (limited) |
| Daily limit | 10,000 URLs | 200 requests |
| Cost | Free | Free |
Use both IndexNow and Google Search Console together. IndexNow handles Bing, Naver, and Yandex. For Google, use Search Console's URL Inspection tool for manual indexing requests. Combining both approaches covers all major search engines.
Summary
Generate an IndexNow API key and place the key file at your web root (e.g., public/ in Next.js). The file must be publicly accessible for domain verification.
Call the IndexNow API whenever content is created or modified. A single HTTP POST to Bing's endpoint notifies all participating search engines simultaneously — Bing, Yandex, Naver, and Seznam.
Track submission history to prevent duplicate submissions and manage SEO systematically. Only resubmit URLs when content has actually changed.
Google requires separate handling. Use Google Search Console's URL Inspection tool alongside IndexNow for complete search engine coverage.
IndexNow notifies but doesn't guarantee indexing. Content quality remains the primary factor in whether search engines actually index your pages. The protocol simply ensures crawlers visit faster — the indexing decision still depends on the content itself.