@peachfinthemes.com/instant-indexer
Instant Indexer
Instant Indexer notifies search engines through the IndexNow protocol when public EmDash pages are added, changed or removed.
About Instant Indexer
Instant Indexer notifies search engines through the IndexNow protocol when public pages are added, changed or removed. It does not index pages itself, guarantee crawling or indexing, or speed up indexing. Each search engine decides what to crawl and index.
Changes
It queues included public entries on publish, live edit, unpublish, trash and restore. A slug change queues both URLs. Edits usually send 30 to 90 seconds later, once per URL in that window. Requests hold up to 1,000 URLs, scheduled about a minute apart.
Drafts, unpublished scheduled entries, previews and noindex pages are excluded. Known addresses get a noindex removal notice. Queued pages are not rechecked; earlier notices may precede noindex or unpublish notices.
Sending starts off; changes while off are not queued. Turning off cancels Submit all and drops waiting URLs at the next send or hourly cleanup, even if turned back on. Restart Submit all when enabled.
Settings
Choose content types, an endpoint, the key and path overrides for EmDash URLs. Test with the home page URL. After enabling sending, submit all published URLs to queue existing pages and remember addresses for removals.
Editors and administrators can read about 200 log entries. The dashboard shows waiting/sent URLs and the last response. Administrators manage settings and submissions.
Engines
Choose api.indexnow.org, Bing or Yandex. Participants share URLs; one endpoint is enough. Google does not use IndexNow.
Installation creates a key. A root key file at https://<site>/<key>.txt containing only the key is required. Only a 200 response confirms key verification; 202 means waiting for the key check.
It is MIT licensed with no account, license key or telemetry.
Instant Indexer is not affiliated with or endorsed by IndexNow, Microsoft, Bing, Yandex or EmDash.
Peachfin Themes makes this EmDash plugin. Email hello@peachfinthemes.com for help.
Screenshots
Faq
Does it index pages?
Instant Indexer sends IndexNow notifications. It does not index pages itself, guarantee crawling or indexing, or speed up indexing. Each engine decides what to crawl and index.
Which engines receive URLs?
Participating engines share URLs, so one endpoint is enough. Google does not use IndexNow. Use a sitemap and Google Search Console for Google.
Does it reach ChatGPT?
ChatGPT search uses Bing's index among its sources. IndexNow itself does not contact ChatGPT.
How does testing work?
It sends one request and never retries it. 200 means Key verified. 202 means Waiting for key check. Check again in a few minutes; persistent 202 responses mean the root key file is missing or wrong. Settings and the dashboard warn after 202 responses span three hours without a 200. A 429 or server error pauses all sending. Tests are refused during a pause.
Why use a root key file?
A root key file at https://<site>/<key>.txt containing only the key is required to cover normal pages. A 422 means Key location rejected; check the root file and that page URLs use the same host.
Should I use Submit all?
Run once after enabling sending to queue pages and remember addresses for later removals. Unknown URLs cannot be reported. Turning sending off cancels the run; restart after turning on. Waiting URLs drop at the next send or hourly cleanup, even if reenabled. Excluded content types are skipped.
What if sending fails?
400, 403 and 422 drop the batch. Fix the cause, then run Submit all published URLs now to send existing pages again. Tests have no queued URLs to drop. For 429, server errors and network errors, queued URLs retry. Retry-After is honored up to 7 days; otherwise waits double from 2 minutes to 6 hours. A URL is given up after 8 failed attempts of its queued row. A new edit queues it again.
Need help?
Email hello@peachfinthemes.com. It is free and MIT licensed. No account or license key is needed.
Security
Report a problem
Report security issues privately to hello@peachfinthemes.com before opening a public issue.
Permissions
- Content read access finds public entry URLs.
- Schema read access identifies URL patterns and public content types.
- Network access sends only to api.indexnow.org, www.bing.com or yandex.com.
Instant Indexer cannot write or publish content.
Outbound data
The only outbound requests go to the chosen IndexNow endpoint. They contain the site's host name, key, key location and public page URLs. URLs may contain personal data if it is part of the address. There is no telemetry and no contact with Peachfin Themes.
Drafts, unpublished scheduled entries, previews and noindex pages are not queued as new pages. Known addresses get a noindex removal notice. Queued pages are not rechecked: an earlier notice may go out before a later noindex or unpublish notice. Other hosts are dropped.
Access and key
Editors and administrators can read the submissions log. Administrators manage settings and submissions.
Search engines must be able to read the IndexNow key from the site. Instant Indexer serves it as plain text at https://<site>/_emdash/api/plugins/instant-indexer/key without caching it. An owner-supplied root key file is required.
Stored data
The site stores settings, the key, waiting URLs, addresses recorded when queued, and logs. Each send and an hourly cleanup trim logs to about the latest 200 entries; counts can briefly be higher. Each send writes at most 90 rows. If request, dropped or given-up URLs do not fit, the last row of that kind counts the rest: “Also included: N more URLs”.
Uninstalling removes this data according to EmDash's uninstall option.
Test sites
Missing, local and test addresses block sending, including *.nip.io and *.sslip.io. This name check does not prove a site is public or in production. Sending starts off. Keep it off on public staging copies.
Changelog
1.0.0 (2026-10-06)
Instant Indexer sends IndexNow notifications.
- Sending starts off; no changes queue while off. Turning off cancels Submit all. Waiting URLs drop at the next send or hourly cleanup, even if reenabled. It queues publish, live edit, unpublish, trash and restore changes, plus both URLs after slug changes.
- Edits usually send after 30 to 90 seconds, once per URL per window, up to 1,000 URLs per request.
- It queues included public pages and excludes drafts, unpublished scheduled entries, previews and noindex pages. Known URLs send after noindex changes. It does not recheck queued pages; earlier notices may precede noindex or unpublish notices. It blocks local/test addresses and allows a public override.
- Choose api.indexnow.org, www.bing.com or yandex.com. Participating engines share URLs.
- Installation creates a random key. An owner-supplied root key file is required. The plugin key route remains available for redirects. A 200 verifies the key; 202 waits for a key check.
- EmDash supplies public URL patterns, locale prefixes and trailingSlash behavior. Path overrides are optional.
- Submit all reads 90 entries per step and remembers URLs for removals. Cancellation takes effect at the next step; queued URLs still send. Restart after disabling and enabling sending.
- Rate limits, server errors and network failures retry with increasing waits. Retry-After applies up to 7 days. Retries stop at 8 failed attempts per queued row. Tests are not retried.
- Each send and hourly cleanup trim logs to about 200 entries; counts can be higher. Each send writes at most 90 rows; the last of each kind counts extra request, dropped or given-up URLs. The widget shows queued/sent URLs and last response.
- Administrators control settings and submissions. Content/schema access is read-only; network access covers only the three endpoints.
Peachfin Themes makes this MIT-licensed plugin. It has no telemetry, account or license key.
Installation
Setup
Use EmDash 1.1 or later with a plugin sandbox runner. Cloudflare needs Workers Paid and a Worker Loader binding. Node needs the workerd sandbox runner.
Install
- Install Instant Indexer (
@peachfinthemes.com/instant-indexer) from the EmDash plugin registry. - Approve content and schema read access and network access to api.indexnow.org, www.bing.com and yandex.com.
- Open Instant Indexer settings. EmDash supplies the address the site was set up on. If it is local or differs from the public one, enter Public site address (optional), such as
https://example.com. Only scheme, host and port remain. If EmDash supplies no address, this field cannot replace it; fix the site setup first. - Add the root key file below.
- Turn on Send changes to search engines and save. Sending starts off; changes while off are not queued. Turning off cancels Submit all; restart it after enabling. Waiting URLs are dropped at the next send or hourly cleanup, even after turning on again.
- Choose Test connection. Only 200 confirms the key is verified. For 202, wait a few minutes and check again. If it persists, the root key file is missing or wrong.
- Run Submit all published URLs now if you want to queue existing pages and remember their addresses.
Local and test addresses are refused. Keep sending off on public staging copies.
Key
Installation creates a random key. A root key file is required. Add <key>.txt to the site's public/ folder containing only the key, then deploy. It must be readable at https://<site>/<key>.txt.
The plugin serves the key at https://<site>/_emdash/api/plugins/instant-indexer/key without caching it. Alternatively, redirect /<key>.txt to that address. Some search engines may not follow redirects.
Replace the root file after key changes and retest.