Skip to main content

Reference

IndexNow response codes

Every code an IndexNow endpoint returns, what it means, what usually causes it, and what AutoIndexNow does about it.

Protocol facts last checked 2026-09-24.

Summary

CodeMeaningAutoIndexNow
200Accepted, key validatedRecorded as accepted
202Received, key validation pendingRecorded as accepted; key re-checked
400Malformed requestNot retried; alert
403Key not valid for hostNot retried; key marked rejected; alert
422URLs or keyLocation not on hostNot retried; alert
429Rate limitedRetried with backoff; site cooldown
5xx, timeoutsEndpoint troubleRetried with backoff, up to 6 attempts

A 200 or 202 from an IndexNow endpoint means the request was accepted, not that the URL is indexed. Google does not participate in IndexNow.

200 OK

The request was accepted and the key was verified. Participating engines now know about the URLs.

Likely causes

  • Request understood, key file fetched and matched.

What to do

Nothing to do. Acceptance is not crawling or indexing: each engine decides independently whether and when to fetch and index a page.

202 Accepted

The request was received. The key will be verified later, and the URLs are queued for crawling if it checks out.

Likely causes

  • Endpoint queued the request; key validation happens asynchronously.
  • Common on api.indexnow.org for first submissions of a host.

What to do

Confirm your key file stays reachable at keyLocation. AutoIndexNow re-checks it before every batch.

400 Bad request

The request body was malformed: invalid JSON, a missing field or a URL that is not a valid absolute URL.

Likely causes

  • Invalid JSON, missing host/key/urlList.
  • A URL that is not absolute, or an empty list.
  • Wrong Content-Type on the POST.

What to do

Fix the request format. This is a terminal error and is not retried.

403 Forbidden

The key was not valid for this host: the key file is missing, unreachable, on a different host, or its contents differ from the key.

Likely causes

  • Key file missing or returning a non-200 status.
  • Key file on a different host than the submitted URLs.
  • File content differs from the key (extra text, HTML page, wrong key).
  • Bot protection blocking the endpoint's fetch of the key file.

What to do

Publish the key file at keyLocation on the same host and check it with the key checker. Not retried automatically.

422 Unprocessable entity

The URLs do not belong to the host in the request, or the keyLocation is not on the same host.

Likely causes

  • urlList contains URLs on another host or subdomain.
  • keyLocation points to a different host.
  • URLs outside the keyLocation directory scope.

What to do

Submit only URLs on the verified host and keep keyLocation on that host. Not retried automatically.

429 Too many requests

The endpoint is rate-limiting this key or host. Repeated bursts can be treated as spam.

Likely causes

  • Bursty submissions from the same key or host.
  • Repeated resubmission of unchanged URLs.
  • Shared egress with other heavy submitters.

What to do

Wait and retry with backoff. AutoIndexNow retries automatically with increasing delays.

Network errors, timeouts and 5xx

These are not defined by the protocol; they mean the request did not get a usable answer. AutoIndexNow treats them as transient: the batch is retried with exponential backoff (about one minute, then doubling, capped at six hours) for up to 6 attempts. If all attempts fail you get an alert, and the URLs stay marked as changed so the next batch includes them.

How AutoIndexNow retries

  • Before every batch the key file is fetched; a broken file produces a precise alert instead of a 403.
  • 429 honours Retry-After and pauses all submissions for the site for at least 15 minutes.
  • Terminal codes (400, 403, 422) are never retried automatically because the same request would fail again. Fix the cause; the pending changes are submitted with the next batch.
  • Every attempt is stored with status, outcome, a response excerpt and duration, and can be exported as CSV.