treeru.com

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 EngineIndexNow SupportAPI Endpoint
BingOfficialwww.bing.com/indexnow
YandexOfficialyandex.com/indexnow
NaverOfficialsearchadvisor.naver.com/indexnow
SeznamOfficialsearch.seznam.cz/indexnow
GoogleNot supportedSeparate 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 CodeMeaningAction
200SuccessURL accepted
202AcceptedQueued for async processing
400Bad RequestCheck URL format and key
403Key MismatchVerify key file placement
429Rate LimitedReduce 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.txt

The 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.

FeatureIndexNowGoogle Indexing API
AuthenticationAPI key file onlyService account + OAuth
Setup complexityVery easyComplex
Content scopeAll URLsJob Posting, Livestream, etc. (limited)
Daily limit10,000 URLs200 requests
CostFreeFree

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.