Docs / Publishing & integrations / IndexNow
Set up IndexNow
IndexNow tells search engines a URL was just published or updated, so they crawl it immediately instead of waiting for their next normal crawl. AEO Spotlight can fire the ping for you the moment content is published.
1 · What IndexNow is
IndexNow is an open protocol adopted by Bing, Yandex, Seznam, Naver and other participating search engines. Instead of waiting for a crawler to discover a URL through links and sitemaps, you tell the engines directly: “this URL just changed — go get it.” The result is dramatically faster discovery of brand-new pages.
It works in two parts:
Proof of ownership (a key file). You generate a key and host it at the root of your domain as https://<your-domain>/{key}.txt. This proves you control the site before you can submit URLs for it.
A ping. You POST a small JSON payload listing changed URLs to the IndexNow endpoint. Engines fetch the URL(s) and crawl them.
2 · Generate a key
A key is just a unique string — a GUID/UUID is the standard choice. Generate one and keep it secret-ish (it's a domain-verification secret, not a password, but treat it carefully).
# Windows PowerShell
[guid]::NewGuid().ToString()
# macOS / Linux
uuidgen
# Python
python -c "import uuid; print(uuid.uuid4())"You'll use the same value in two places: as the filename {key}.txt on your domain, and as the IndexNowKey on your AEO Spotlight publish destination.
3 · Host the {key}.txt file
The key must be reachable at the absolute root of the exact host you submit, i.e.:
https://<your-domain>/{key}.txt…and must return your key as plain text (no HTML wrapper; avoid extra whitespace/newlines).
Create a file named {key}.txt (e.g. 7f4f6e5a-….txt) whose entire contents are the key.
Place it at the web root of your domain so it's served at https://<your-domain>/{key}.txt — not under /wp-admin/, /blog/, or any subpath.
Verify it in a browser or curl: the response body should be exactly your key.
www.example.com, the file must live at https://www.example.com/{key}.txt. If you use the bare apex (example.com), host it there. Pick one and be consistent. /{key}.txt (a root route that returns the key, and 404 for any other filename). You only host the file yourself when the destination is your own domain. 4 · Configure a publish destination
In the dashboard under Content Studio → Publish destinations, edit (or create) the destination that publishes to your domain and add two fields:
| Field | Value | Example |
|---|---|---|
IndexNowHost | Your site's host (scheme optional — it's normalized). | www.example.com |
IndexNowKey | The key whose {key}.txt you hosted in step 3. | 7f4f6e5a-… |
- The platform normalizes the host (strips
https:///http://and trailing slashes, lowercases). - Key is required whenever a host is set — you can't enable IndexNow without both.
- Keys are write-only: like webhook secrets, the UI only shows whether one is set, never the value.
5 · What happens on publish (automatic ping)
After a successful publish, AEO Spotlight automatically pings IndexNow for the returned live URL — you don't have to do anything per article. It uses the destination's credentials when present; otherwise it falls back to the platform-configured host/key (own-site publishes):
- Destination has
IndexNowHost+IndexNowKey→ ping uses those with the published URL. - Otherwise, if the platform has a configured host/key → ping uses the platform's own-site host/key.
- Otherwise → no ping (recorded as
not_configured).
The ping is best-effort: it can never block or fail a publish. The outcome is recorded on the opportunity and surfaced in the Content Studio next to the published URL:
| Status | Meaning |
|---|---|
submitted | IndexNow accepted the ping (HTTP 2xx) — engines will fetch the URL. |
failed | The ping was attempted but rejected or errored. The publish still succeeded. |
not_configured | No host/key on the destination and no platform host/key configured, so nothing was sent. |
6 · Verify it's working
- Key file reachable: open
https://<your-domain>/{key}.txtand confirm it returns your key. - Publish status: after a publish, check the Content Studio shows
IndexNow: submittedon the piece. - Search Console / Bing: confirm the URL appears in Bing Webmaster Tools URL inspection shortly after publishing.
- Manual ping (optional test): you can submit a URL yourself to confirm your key file is valid:
curl -X POST "https://api.indexnow.org/indexnow" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"host": "www.example.com",
"key": "7f4f6e5a-0000-0000-0000-000000000000",
"keyLocation": "https://www.example.com/7f4f6e5a-0000-0000-0000-000000000000.txt",
"urlList": ["https://www.example.com/just-published-page"]
}'7 · FAQ & edge cases
What is the not_configured status telling me?
The destination has no host/key and the deployment has no platform-configured host/key. Set IndexNowHost + IndexNowKey on the destination (sections 3–4) to enable it.
My publish shows failed — did the article not publish?
The article published fine. IndexNow is an accelerator, not a dependency: a failed ping never rolls back a publish. Check that https://<your-domain>/{key}.txt returns exactly your key on the exact host you configured.
www vs apex — which host should I configure?
Use the host that serves your pages and where you can place the key file. Whatever you choose, the key file must be on that same host (the submitted host and keyLocation must match).
Do I enter the scheme (https://)?
No — the platform strips http(s):// and trailing slashes and lowercases the host for you.
Can I reuse one key across subdomains or engines?
IndexNow keys are shared among the participating engines by design (one key, one file). But a key is tied to a host — each host you ping needs its key file at that host's root.
How long until engines crawl the URL?
Usually within minutes to a few hours — far faster than waiting for organic rediscovery. Exact timing is controlled by each engine.
Does IndexNow replace my sitemap?
No. Keep your sitemap; IndexNow accelerates discovery of fresh URLs on top of it.
More details
See the official IndexNow FAQ for the canonical protocol details.
