Two different jobs
A sitemap tells an engine what exists. IndexNow tells it what changed.
You want both, and neither guarantees a crawl.
Submit the sitemap
- Verify the site with a method you can repeat.
- Confirm the sitemap URL returns 200 and serves XML.
- Submit that one URL, not a sitemap of sitemaps.
- Read the report a week later and fix what it rejects.
Add IndexNow
key file: /4f2a9c.txt
contains: the key, on one line, nothing else
request: https://api.indexnow.org/indexnow
payload: host, key, keyLocation, and the changed urls
A filled record
Meridian Landscaping, 2026-09-18.
site: meridian-landscaping.example
verified by: dns txt record
verified on: 2026-09-18
sitemap: https://meridian-landscaping.example/sitemap.xml
submitted: 2026-09-18, 10:12
urls in file: 131
indexnow key: 4f2a9c
key file path: /4f2a9c.txt
key file check: fetched, 200, body is the key on one line
first send: 2026-09-18, 22 urls that changed in the launch
response: accepted
first week report, read 2026-09-25
- sitemap: 128 urls read, 3 errors
- two urls return 301 to the non-www host
- one url returns 404, a page renamed in the launch
fix: update the file, then resubmit
- indexnow: all 22 received
Why the key file check matters
A key file that redirects, or one whose body contains extra text, fails the request. Fetch the exact path yourself before blaming the script.
Acceptance: the setup is working when
- the sitemap returns 200 and parses as XML
- the submission report shows URLs read rather than zero
- the key file is reachable at the exact path, with no redirect
- one send is accepted, and the response is recorded
- the first weekly report has been read, with errors fixed
Troubleshooting
| Symptom | Likely cause | What to do |
|---|---|---|
| Sitemap shows nothing read | The property is wrong, or the file was never submitted | Verify, then resubmit |
| Sitemap lists redirecting URLs | The build emits www, the host serves apex | Fix one of them |
| IndexNow returns 403 | The key file is missing or mismatched | Fetch the path directly |
| A changed URL is not crawled | The request was accepted, which proves nothing | Wait, and check the engine’s report |
| Errors appear each week | No check in the deploy step | Fetch the sitemap in CI on every build |
Limits
Both protocols are requests. A crawl date is not something you can set.
Only participating engines read IndexNow requests. This page describes the shape of the submission, not any engine’s current behaviour. No network was available while it was written.