getNodi

Templates / IndexNow submission

Submitting URLs to IndexNow

IndexNow is what replaced the sitemap ping endpoints Google and Bing both retired. It is one GET request, it is supported by Bing, Yandex and Seznam, and submissions are shared between participating engines.

The recipe

Request
GET https://api.indexnow.org/indexnow?url=https://{{domain}}/&key={{indexnow_key}}
Schedule
At 07:00 AM (0 7 * * *)
Timeout
30s
Attempts
3
Counts as success
200, 202

You supply

Your domain
example.com

Host only — no https:// and no trailing slash.

IndexNow key
a1b2c3d4e5f6

The key file you host at the root of your domain.

Why this job exists

Until recently the way to tell a search engine your content had changed was to ping its sitemap endpoint. Both major ones removed that, having concluded it added nothing over ordinary crawling — which left publishers with no push mechanism at all.

IndexNow is the protocol that filled the gap, originally from Microsoft and now adopted by several engines. You host a key file at the root of your domain, then submit changed URLs by requesting an endpoint with the URL and the key. Anything submitted to one participating engine is shared with the others.

Scheduling it makes sense when a page changes on a predictable rhythm — a listings page, a feed, a category index rebuilt nightly. For content that changes on an editorial whim, calling the endpoint from your publish flow is better than a schedule.

Setting it up

Generate a key of at least eight hexadecimal characters and host it as a text file at the root of your domain, containing exactly the key and nothing else. The engines fetch it to confirm you control the domain:

https://example.com/a1b2c3d4e5f6.txt

a1b2c3d4e5f6

Then this recipe requests the IndexNow endpoint with the changed URL and the key. A 200 means accepted, a 202 means accepted but the key is still being verified — both are treated as success here. A 403 means the key file could not be read.

Checking it actually works

  • Fetch your key file in a browser and confirm it returns plain text with no markup and no redirect.
  • Check Bing Webmaster Tools, which reports IndexNow submissions and their outcome.
  • Watch for 422 responses, which mean the submitted URL does not belong to the domain the key is registered against.

Where it goes wrong

Submitting a URL that did not change

The protocol asks you to submit on change. Resubmitting the same unchanged URL daily is at best ignored and at worst counted against you. If nothing changed, there is nothing to submit — which is why this suits pages on a genuine rebuild cycle.

The key file is not reachable

It has to be plain text, at the domain root, no redirect, no authentication, served as-is. A framework that rewrites unknown paths to an HTML page will break verification while looking fine in a browser.

Expecting Google to act on it

Google has run experiments but does not use IndexNow for ranked indexing. This recipe is worth running for Bing-family coverage; it is not a way to get into Google faster.

Questions

Can I submit more than one URL?

Yes, via a POST with a JSON list of up to 10,000 URLs. This recipe uses the single-URL GET form because it needs no body. Duplicate the job or switch it to POST if you have a set.

Does this help rankings?

No. It affects how quickly a change is noticed, not how the page is judged once it is.

Is my key a secret?

Not really — it is published at your domain root by design. It proves control of the domain, so it is not sensitive, but do not reuse it as a token for anything else.

Running it here

This is a preset in the product, not an illustration. Pick it in the dashboard, fill in the 2 values above, and the job is created, scheduled and enabled — with retries, a record of every run showing status, latency and response, and an alert the first time one fails. Secret values are encrypted at rest and never rendered back.

The free plan runs 3 jobs hourly and needs no card. Where a recipe wants a finer cadence than your plan allows, it is slowed to the fastest schedule you are permitted rather than rejected.