IndexNow Key File
Last reviewed:
IndexNow is a push-based URL notification protocol — it tells participating engines a URL was added, updated, or removed without waiting for their own crawl schedule. It is not a ranking signal and does not guarantee indexation; it tells an engine a URL changed, the engine still decides whether to crawl it. Bing is the primary production consumer; Yandex participates; Google has tested it but does not currently confirm support.
Check whether your CMS, plugin, or CDN already supports IndexNow before building this manually.
Key file
File name must be {key}.txt; the file content is the same key as the only UTF-8 text line.
abcd1234-efgh5678-ijkl9012
Single URL submission
GET https://api.indexnow.org/indexnow?url=https%3A%2F%2Fexample.com%2Fnew-page%2F&key=abcd1234-efgh5678-ijkl9012
Bulk URL submission
Up to 10,000 URLs per request. All URLs must be from the same host. keyLocation is optional when the key file is at the domain root.
POST https://api.indexnow.org/indexnow
Content-Type: application/json; charset=utf-8
{
"host": "example.com",
"key": "abcd1234-efgh5678-ijkl9012",
"keyLocation": "https://example.com/abcd1234-efgh5678-ijkl9012.txt",
"urlList": [
"https://example.com/new-page/",
"https://example.com/updated-page/",
"https://example.com/removed-page/"
]
}
Field notes
- Key: 8–128 characters; alphanumeric and hyphens only; file name and file content must match exactly.
- HTTP 200 = URL received by the engine — it does not mean the page was crawled or indexed.
- Participating engines (Bing, Yandex, others) share submissions with each other — one API call notifies all IndexNow participants simultaneously.
- Google has its own separate Indexing API — IndexNow does not submit to Google.
keyLocationis required only when the key file is not at the domain root.- 429 response = rate limit; batch URLs rather than submitting individually at high frequency.