Skip to content
Sulayman Bowles / Project Delta

IndexNow Implementation Without Submission Theater

A successful submission means a participating engine received the notification. It does not mean the URL was crawled, indexed, ranked, or sent to Google.

An IndexNow implementation guide for Node and Vercel covering keys, URL batches, deployment hooks, responses, retries, limits, and Google caveats.

01 / Contract

IndexNow is a change notification protocol

The publisher notifies participating search engines that a URL was added, updated, or deleted. The engine acknowledges receipt and decides what to do next. An HTTP 200 means the URL submission was received; it is not a crawl receipt, index verdict, or ranking event. Keeping that boundary in logs and dashboards prevents an operational signal from becoming a marketing claim.

Participating engines share valid submissions within the protocol. Google is not documented as a participating IndexNow endpoint, so the implementation should be described as Bing-compatible secondary discovery. Google discovery still depends on crawlable links, sitemaps, recrawl requests where appropriate, and its own systems.

02 / Ownership

Host a stable key file on the canonical host

The key must meet the protocol’s character and length rules and be available in a text file that establishes ownership. Root placement supports the broadest URL scope and is simpler to reason about. A key under a subpath can only authorize URLs within the documented path boundary.

Generate and store the key as deployment configuration, but publish only the expected verification value in the expected file. Do not print unrelated environment values in build logs. Validate the production key URL from outside the platform and confirm that canonical host redirects do not move it to a different ownership scope.

Figure 01 / response handlingPersist status, batch id, URL count, and retry decision without overstating the result.
StatusMeaningAction
200Submission receivedRecord success; do not retry
202Received; key validation pendingRecord pending state
400Invalid requestFix payload
403Key invalid or unavailableVerify key URL
422Host or key mismatchFix ownership scope
429Too many requestsBack off and retry

03 / Batching

Submit the changed canonical set, not the entire site on every deploy

The protocol accepts up to 10,000 URLs in one POST. Build the list from a deployment diff or content manifest, normalize hosts and paths, remove duplicates, exclude drafts and aliases, and include deleted canonical URLs when the publishing event calls for removal notification. A small content release should produce a small deterministic batch.

For a static Vercel deployment, run submission after a confirmed production promotion, not during preview builds. Preview hosts are not canonical and should never enter the batch. Keep production submission behind explicit release authorization because it mutates an external discovery system and creates noise if a deployment is rolled back.

04 / Reliability

Retry transport failures without creating a submission loop

Classify deterministic client errors separately from temporary responses. A malformed payload, invalid key, or host mismatch needs a code or configuration fix; immediate repeated requests only increase noise. Rate limits require bounded exponential backoff and a maximum attempt count. Persist a hash of the canonical batch so a job restart can identify an already accepted submission.

Log the endpoint, status, timestamp, URL count, batch hash, and sanitized error message. Do not log the full environment or thousands of URLs by default. A dry-run mode should output counts and a bounded sample, then exit without network mutation. This makes the release artifact reviewable before the confirmation boundary.

05 / Verification

Verify discovery downstream with the engine’s own evidence

After an accepted submission, use Bing Webmaster Tools or subsequent verified crawler requests to study discovery. Check whether the canonical URL returns the expected content and whether the sitemap and internal links agree. If indexing does not follow, investigate quality, canonicalization, status, directives, and duplication rather than resubmitting continuously.

For Google, use Search Console and the URL Inspection tool or API under their documented limits. Do not use Google’s Indexing API for ordinary articles; its supported use is restricted to job posting and livestream pages. No notification protocol can compensate for a page that is thin, duplicated, blocked, or not worth indexing.

Continue through the evidence systemThe article links to narrower Project Delta references for implementation detail and claim boundaries.
  1. 01
    Crawl and Indexation Audit Checklist

    A crawl and indexation audit checklist for discovery, status codes, robots controls, canonicals, sitemaps, renderability, logs, and Search Console states.

  2. 02
    Low Internal Links: Detection, Fix, and Validation

    Low Internal Links diagnosis uses page-specific Atlas evidence, intent review, a narrow technical fix, false-positive checks, and claim-safe validation.

  3. 03
    Missing Canonical: Detection, Fix, and Validation

    Missing Canonical Tag diagnosis uses page-specific Atlas evidence, intent review, a narrow technical fix, false-positive checks, and claim-safe validation.

Primary referencesOfficial and standards sources that bound the article’s claims, with the public review date preserved.
  1. 01
    IndexNow protocol documentation

    Key requirements, single and batch submission formats, the 10,000 URL batch limit, ownership verification, and response meanings.

    Checked 2026-07-20
  2. 02
    Bing: Get started with IndexNow

    Bing-compatible setup guidance, key hosting, endpoints, and the discovery-notification purpose of the protocol.

    Checked 2026-07-20
  3. 03
    Google: Ask Google to recrawl

    Google’s recrawl options, timing caveat, and absence of a guarantee that a request produces inclusion.

    Checked 2026-07-20