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