IndexNow: getting new pages indexed in minutes
Publishing a page and waiting to be crawled can take days. IndexNow reduces that to minutes, and takes about ten minutes to set up.
What it is
IndexNow is a small open protocol. You host a key file on your domain, then POST a list of URLs when they change. Participating search engines fetch those URLs promptly rather than waiting for their crawler to come round.
It is supported by several engines and shared between them, so a single submission reaches more than one index.
Setting it up
Generate a random key, typically 32 hexadecimal characters. Host it as a plain text file at the root of your site, named after the key itself, containing only the key. This proves you control the domain.
Then submit:
POST https://api.indexnow.org/IndexNow
Content-Type: application/json
{
"host": "example.com",
"key": "your-key",
"keyLocation": "https://example.com/your-key.txt",
"urlList": [
"https://example.com/",
"https://example.com/new-page"
]
}
An HTTP 200 or 202 means accepted. A 403 usually means the key file could not be fetched or does not match. A 422 usually means a URL is not on the host you declared.
What it does not do
It does not make a page rank, and it does not guarantee indexing. It removes the delay between publishing and being looked at. That is all, and it is worth having.
It also does not replace a sitemap. Sitemaps describe the whole site for periodic discovery. IndexNow signals a specific change. Keep both.
Use it deliberately
Submit when content meaningfully changes: a new page, a substantive edit, a removal. Do not submit your entire site on every deploy. Repeated submission of unchanged URLs is noise, and the value of the signal comes from it being accurate.
Make it part of publishing rather than a separate task. If adding a page means updating the sitemap and firing one request, it will happen every time. If it is a thing to remember later, it will not.
Need help with any of this?
These notes are free and always will be. If you would rather someone just set it up, or you are stuck on something similar, get in touch at hello@opsira.io.