Website and SEO
IndexNow: tell search engines a page changed
Turning IndexNow on for a domain, the key file your site has to serve, which engines get notified, sending pages by hand or from the sitemap, and the record of every URL sent and what each engine answered.
Updated · 5 min read
IndexNow lets a site tell search engines that a page was added, changed or removed, instead of waiting for their crawler to come back. We send the notice for you and keep a record of it: every URL sent, when its page last changed, when we sent it, and what each engine answered.
Plan: Starter and up, like the rest of SEO. Free accounts get 402 plan_upgrade_required.
Which engines: Microsoft Bing, Yandex, Seznam.cz, Naver, Yep, the Internet Archive and Amazon. The first five are on for a new site; the Internet Archive and Amazon are off until you tick them. Google does not take part in IndexNow, so this does not reach Google.
Where
- Web: SEO in the rail, open the domain, IndexNow below the whole-site audit.
- API:
/api/domains/:id/indexnowand the routes under it (scopeseo; sending needswrite). - MCP:
get_indexnow_status,configure_indexnow,verify_indexnow_key,submit_urls_to_indexnow,sync_sitemap_to_indexnow,list_indexnow_urls,list_indexnow_submissions.
Setting it up
- Turn on IndexNow. We create a key for the domain, 32 letters and digits. If your site already has an IndexNow key (a WordPress plugin may have made one), you can use that instead.
- Put the key file on your site. Make a plain text file named after the key, for example
3f9c…e1.txt, containing only the key, and upload it so it loads athttps://yourdomain.com/<key>.txt. The page shows the exact name, contents and address, with a copy button. - Check the key file. We fetch it and say, per host, whether it loads and holds exactly the key. A web page (your 404 page, say) in place of the file does not count, and neither does a redirect to another host.
Each engine fetches the same file before it trusts what we send. If the file is missing on a host, we do not send that host's URLs at all: the engine would refuse them, and engines keep score of keys that fail.
A page on www.yourdomain.com needs the file on www.yourdomain.com. If your site answers on both, upload it to both, or send only the addresses your site actually uses.
Sending pages
- From the sitemap. We read your sitemap (the address you saved, or the one in robots.txt, or
/sitemap.xml) and send only pages we have never sent, or whose<lastmod>date is newer than the one we recorded. Newest changes go first, up to 1,000 a run; the rest wait for the next run. Some sites stamp every page in their sitemap with the time it was requested; a last-modified time that close to when we read it is ignored, so those pages are not sent again on every read. - Again, where an engine said no. Each sitemap read also sends a page again to any engine that refused it (slow down, key not found, no answer) an hour or more earlier, and to any engine you ticked after the page went out. Only that engine hears about it again.
- Automatically. Tick "Read my sitemap once a day" and we do the above every day. If a run leaves pages over, the next one follows an hour later.
- By hand. Paste up to 1,000 addresses, one per line. Use this when you changed a page and want it noticed now. Addresses that are not on the domain are refused and listed.
A domain can send 10,000 URLs in any 24 hours, across all three ways. Sending a page that has not changed does not help it; engines treat repeats as noise.
What the answers mean
Each engine gets its own request, so each has its own answer on every URL:
| Answer | HTTP | Meaning |
|---|---|---|
| Accepted | 200 | The engine took the URLs. |
| Received | 202 | The engine took them and will check the key file later. Normal for a new key. |
| Key not found | 403 | The engine could not load the key file, or it did not match. |
| Refused | 422 | The URLs are not on the host sent, or the key breaks the protocol's rules. |
| Slow down | 429 | Too many requests; the engine will take more later. |
| No answer | other / none | The engine was down or timed out. |
Accepted means the engine has the notice. It does not promise the page will be crawled or ranked.
Bing and "slow down". Bing answers 429 to most requests that come from Cloudflare's shared network, and that is where we send from. The same notice sent from anywhere else gets through. So Bing often shows "Slow down" for a while. We keep offering it the pages with each sitemap read, and the record changes when one gets through.
The record
The URLs sent table lists every address with the date its page last changed, when we last sent it (and how many times), and one tag per engine coloured by its last answer. Hover a tag for the HTTP status and time. Recent sends lists each send: where it came from (you, the API, the sitemap, or the daily run), how many URLs, and each engine's status.
Over the API, GET /api/domains/:id/indexnow/urls?engine=bing answers "which pages have been sent to Bing", and …/submissions is the full send log.
Common questions
Do I need this if I use Cloudflare? Cloudflare's Crawler Hints, when switched on, sends IndexNow notices under Cloudflare's own key. The two can run side by side; ours adds the record of what was sent and what each engine said.
I changed the key. What happens? The old key file stops counting. Upload the new one and check it again before sending.
Can I pause it? Yes. Pausing stops sending, including the daily run, and keeps the record.
Keep reading
Related articles
- Whole-site crawlHow the crawl finds pages (sitemap plus links), what it checks on each, the 25-page Starter cap, the 300-page site audit and the 5,000-page deep crawl, progress, cancelling and per-page.Website and SEO ·Updated
- Scan clearance and ownership proofProve you control one domain on the account (DNS record, file, or an email link) and every domain is cleared for 90 days. Protected targets and authorisation.Vulnerabilities and exposure ·Updated
- The REST APIBase URL, bearer authentication with an nhm_ key, the routes a key can reach and the scope each needs, which calls need write, and the 401, 402, 403 and 429 replies.API and MCP ·Updated
