Indexer by DependsiT

IndexNow: The Complete Guide to the Open Indexing Protocol

IndexNow open protocol flow from key file to submission to participating engines

IndexNow is an open protocol that lets you notify participating search engines the moment your URLs change. Instead of waiting for the next crawl, you send a simple HTTP request with a list of updated URLs plus a key that proves ownership. Engines that support the protocol can then prioritize those URLs for recrawling. This guide is for site owners, SEOs, and developers who want a complete, honest understanding of what IndexNow does, which engines take part, and how to run it reliably. The primary keyword is indexnow, and every section builds toward a workflow you can operate with confidence.

You will learn how the protocol works end to end, where Google stands, how keys and verification function, how to submit single URLs and batches up to 10000, what response codes mean, how sitemaps still fit, how to automate from CMS or deploy pipelines, what limits and etiquette apply, how to measure effect without fooling yourself, and a rollout plan for one site. By the end you will be able to explain IndexNow in one sentence and run it alongside your Google workflow. For key setup details that this guide summarizes, see how to generate and host your IndexNow key.

Key takeaways

  • IndexNow is an open protocol co developed by Microsoft Bing and Yandex that notifies participating engines about URL changes.
  • Participating engines include Bing, Yandex, Naver, Seznam, and others listed on indexnow.org, with DuckDuckGo routing via Bing, while Google does not support IndexNow.
  • Ownership is proven by a key file hosted at your site root, and submissions carry host, key, keyLocation, and urlList fields.
  • One request can carry up to 10000 URLs, but honest submission of changed URLs beats bulk blasts for long term trust.
  • IndexNow complements sitemaps, internal linking, canonicals, and crawl health, and it runs best beside a separate Google workflow.

IndexNow protocol flow from a hosted key file through a URL batch to three engine nodes

What IndexNow is and what it is not

IndexNow is a simple notification protocol. When you create, update, or delete a page, your site sends an HTTP request to a participating engine endpoint with the list of affected URLs. The engine verifies ownership via your key file, then schedules those URLs for crawling sooner than routine discovery might. The protocol does not upload content, does not guarantee indexing or ranking, and does not replace crawling. It shortens discovery time so good pages can be evaluated sooner. Think of it as raising a flag when something changed, while the engine still decides whether and when to visit.

What IndexNow is not matters as much. It is not a Google submission path. Google does not support IndexNow, and sending IndexNow pings does not reach Google. It is not a ranking boost. Faster discovery does not change quality evaluation. It is not a substitute for sitemaps, internal links, canonical tags, robots health, or server reliability. Those foundations still determine whether a crawled page qualifies for the index. It is not a license for bulk spam. Engines expect honest signals for URLs that actually changed, and abuse can reduce trust in your submissions.

The practical benefit is speed for fresh and changed content. News updates, product availability, price changes, new docs, and corrected articles all benefit when engines learn about changes in minutes rather than days. For large sites, it also reduces wasteful recrawling of unchanged URLs, because you point engines directly at what changed. For small sites with low crawl frequency, it provides a voice that routine schedules might otherwise miss for weeks. In every case the effect is faster consideration, not automatic inclusion.

A minimal submission carries four fields: host, key, keyLocation, and urlList. Host is your domain. Key is the string that matches your hosted key file. KeyLocation is the full URL to that file at your site root. UrlList is the array of absolute URLs that changed. Engines validate that the key matches the file, that the URLs belong to the host, and that the list respects size rules. Valid requests receive success codes. Invalid keys, mismatched hosts, and malformed lists receive client errors that you fix on your side. The official IndexNow documentation defines these fields with examples and remains the source of truth when implementations differ.

QuestionAnswer for this guide
What it doesNotifies participating engines about changed URLs
What it does not doIndex, rank, or replace crawling and quality checks
Google coverageNone, Google does not support IndexNow
Content uploadedNone, engines still crawl your URLs
Core fieldshost, key, keyLocation, urlList

By the end of this section you should be able to explain IndexNow to an owner in one sentence: it tells participating engines which URLs changed so they can recrawl sooner, while indexing still depends on quality and eligibility. That shared definition prevents disappointment later when faster discovery does not move rankings by itself.

If you need background reading, start with the indexnow protocol spec on indexnow.org before choosing tooling. The spec defines host, key, keyLocation and urlList with examples you can copy into tests. Once the shape is clear, compare any indexnow api client on error handling and logging rather than marketing claims. A good client validates host purity, logs every indexnow submission with status and response snippet, and queues retries with backoff. That discipline matters more than language choice for long term trust.

Which engines take part and where Google stands

IndexNow was co developed by Microsoft Bing and Yandex as an open protocol that any engine may adopt. Current supporters include Bing, Yandex, Naver, Seznam, and others listed on indexnow.org, with DuckDuckGo benefiting via Bing crawling. The list evolves as engines join or adjust handling, so always re check the current page on indexnow.org during planning rather than trusting a stale screenshot. Do not present any list as exhaustive in permanent docs. Link to the official participants page and record the date you checked.

Bing is the most documented participant for Western sites. Bing Webmaster Tools explains submission, quotas, and reporting, and Bing endpoints accept IndexNow requests directly. Yandex supports the protocol for its index with its own Webmaster guidance. Naver and Seznam extend reach into Korean and Czech audiences where those engines matter for traffic. That regional value is easy to miss. A site with meaningful Naver or Seznam visits gains a direct notification path it would otherwise lack. For Bing specific setup steps, see how to submit URLs to Bing with IndexNow.

Google does not support IndexNow. Google uses sitemaps, Search Console URL Inspection and Request Indexing, plus the Google Indexing API for JobPosting and BroadcastEvent pages only. Never claim IndexNow submits to Google. Plan a two engine workflow from the start: Indexing API for Google where eligible plus IndexNow for participating engines. For a side by side comparison of coverage, auth, and quotas, the IndexNow versus Google Indexing API comparison lays out when to use each and when to use both.

Coverage planning should follow your analytics, not hype. If 90 percent of your search visits come from Google, IndexNow still helps the remainder plus discovery speed on Bing powered surfaces, but it will not move Google rankings. If you serve audiences where Yandex, Naver, or Seznam matter, IndexNow deserves equal attention to your Google workflow. Record traffic share per engine before you invest, then set expectations per engine after rollout. That note keeps reporting honest when stakeholders ask why Google charts did not shift after IndexNow success on other engines.

EngineRole in IndexNowWhat to read
BingCo developer, documented endpoint and toolsBing Webmaster help and IndexNow docs
YandexCo developer, supports protocolYandex Webmaster support pages
NaverParticipant, extends Korean reachOfficial IndexNow participants list
SeznamParticipant, extends Czech reachOfficial IndexNow participants list
DuckDuckGoBenefits via Bing crawlingBing documentation, not a direct endpoint
GoogleDoes not support IndexNowGoogle Search Central for Google paths

A note on verification: always confirm participation on indexnow.org close to launch week. Engines occasionally clarify handling, limits, or reporting without changing the core protocol. Your runbook should record the check date and the list you observed. That timestamp prevents arguments later about what was promised when.

For hands on practice, follow one short indexnow tutorial that sends a single URL test then a small batch, rather than jumping to bulk automation. Bing focused docs for indexnow bing setup show Webmaster Tools reporting plus endpoint behavior that complements the spec. If your site runs on CMS, test an indexnow wordpress plugin on staging first and confirm key file fetch plus success codes before enabling auto submit on production. That staged path proves verification, response handling and logging with minimal risk.

How the protocol works end to end

The end to end flow has five steps: generate a key, host it at your site root, submit changed URLs with that key, handle response codes, and monitor crawl effect. Generation creates a random string that becomes your shared secret with engines. Hosting places that string inside a text file named after the key at https://example.com/{key}.txt so any engine can fetch it. Submission sends host plus key plus keyLocation plus urlList to an IndexNow endpoint. Verification happens when the engine fetches your key file and compares its content to the key in your request. Scheduling happens when valid URLs enter the crawl queue with higher priority than routine discovery.

Keys are per host, not per URL. One key can serve a whole domain, including subdomains where you reuse the same key file pattern or host per host files as needed. KeyLocation must be an absolute URL on the same host as the notified URLs in most implementations. UrlList must contain absolute URLs on that host. Mixed hosts in one request cause validation errors. Keep requests host pure: one host per submission, with URLs that belong to it. That discipline simplifies debugging because any host mismatch fails fast with a clear client error rather than partial success.

Endpoints accept both GET for tiny tests and POST with JSON for real work. GET suits one URL checks during setup. POST suits batches with JSON bodies that carry up to 10000 URLs per request. Use POST for automation so encoding stays clean and logs remain readable. Send from your server or pipeline, not from browsers, so the key stays out of front end code. Log every submission with timestamp, endpoint, host, key ID fingerprint rather than raw key where possible, URL count, status, and response snippet. That log proves what was sent and what each engine answered.

Timing expectations should be modest and measurable. Valid submissions often lead to faster fetching, sometimes within hours, but engines do not promise instant indexing. Crawl still depends on site health, server speed, robots, and per engine scheduling. Measure time from submission to search engine fetch in server logs, then from fetch to index state in Webmaster tools. Those two intervals separate protocol effect from quality effects. If fetch quickens but index state does not change, the constraint is content or eligibility, not discovery.

StepActionHow to confirm
1. Generate keyRandom string, record securelyKey stored in secrets, fingerprint logged
2. Host key filePlace at root as {key}.txtPublic fetch returns key string
3. Submit URLsPOST host plus key plus list200 or 202 response with no error
4. Engine verifiesFetches key file, comparesNo key errors on next submissions
5. Crawl scheduledEngine prioritizes URLsServer logs show engine fetch sooner

For Bing behavior specifics such as tools integration and reporting, Bing Webmaster help provides the engine side view to pair with the protocol spec. Keep both links in your runbook so future teammates see protocol plus engine guidance together.

Keys verification and ownership

The key file is the ownership proof. Its name is your key plus .txt, its location is your site root, and its content is the key string itself. Example pattern: key abc123def456 produces file https://example.com/abc123def456.txt containing abc123def456. Engines fetch that URL during verification and compare. If the file is missing, returns 404, has wrong content type handling that blocks fetch, or contains extra whitespace or HTML wrapping, verification fails and submissions with that key return client errors. Keep the file plain text, publicly fetchable, and stable across deploys.

Generation should use a random source with enough entropy to avoid guessing. Many teams generate a 32 character alphanumeric string from a cryptographic random generator. Record the key in secrets management, not in Git or tickets. Record a fingerprint or key ID in logs rather than the raw key where possible, so log sharing does not leak the secret. If you manage many hosts, decide whether to share one key across hosts you control or to use per host keys. Shared keys simplify rotation across a portfolio. Per host keys limit blast radius if one host is compromised. Either pattern works if documented. Mixed undocumented patterns cause the most confusion during audits.

Hosting details determine success. Serve the file with Content-Type text/plain, allow anonymous GET, and exclude it from auth walls, bot blocks, and aggressive CDN caching that could serve stale content after rotation. Test with curl from outside your network to confirm public fetch, status 200, and exact body match. Confirm http to https redirects preserve fetchability where engines follow redirects, but prefer direct https to avoid redirect edge cases. After redesigns, migrations, or CDN changes, re verify the key file the same day. Redesigns are the most common cause of sudden key failures that look like protocol outages.

Rotation should use overlap. Generate a new key, host the new file alongside the old file for a transition period, switch submissions to the new key, verify success, then remove the old file after a week of clean operation. Removing the old file immediately breaks any worker still using it. Keeping both files during overlap costs nothing and prevents downtime. Document rotation with date, actor, key fingerprint, verification result, and removal date. That record answers audit questions without searching chat history.

CheckCommand or viewExpected
File presentGET https://example.com/{key}.txt200 with key string body
Content exactDiff fetched body versus stored keyExact match, no HTML wrapper
Content typeResponse headerstext/plain, publicly cacheable short
No auth wallAnonymous fetch from outside200 without login
CDN stableFetch after purge and via edgeSame body from origin and edge

Key setup is a one time task with long lived value. Spend an hour getting it right, then leave it untouched except for planned rotations. That stability builds trust with engines and keeps submission logs clean.

Engine verification fetching the site root key file before changed URLs queue for crawling

Submit one URL and batches up to 10000

Single URL submission is the right starting point for testing. Use it to prove key hosting, endpoint reachability, and response handling with minimal blast radius. A GET request with host, key, keyLocation, and one URL in urlList or query form proves the round trip in seconds. Confirm a success code, then check server logs for engine fetch of the key file and later of the notified URL. That pair proves verification plus scheduling. Keep the test URL on your own property where a quick fetch is harmless.

Batches carry real value in production. One POST can include up to 10000 URLs in urlList. That limit is per request, not per day, but etiquette still asks for honest signals only. Submit URLs that actually changed, not your full sitemap on every build. Deduplicate before sending, keep requests host pure, and split larger backlogs across multiple requests with delays. A practical batch size for steady operation is a few hundred URLs per request with a short pause between requests. That pace succeeds without triggering rate defenses and keeps logs readable.

Request shape must be exact. Host is the domain without protocol, for example example.com. Key is the string matching your hosted file. KeyLocation is the full https URL to that file. UrlList is an array of absolute https URLs on that host. Mixed hosts, relative paths, and localhost entries cause validation errors. Validate locally before sending: absolute https, correct host, no spaces, proper encoding. Reject invalid entries at queue entry with a logged skip reason so one bad URL does not fail a batch of 999 good ones.

# Single URL test with GET, replace values with your own
curl -s "https://www.bing.com/indexnow?url=https://example.com/docs/123&key=YOUR_KEY&keyLocation=https://example.com/YOUR_KEY.txt&host=example.com"
{
  "host": "example.com",
  "key": "YOUR_KEY",
  "keyLocation": "https://example.com/YOUR_KEY.txt",
  "urlList": [
    "https://example.com/docs/123",
    "https://example.com/docs/124"
  ]
}
FieldExampleRule
hostexample.comDomain only, matches notified URLs
keyrandom 32 char stringMatches hosted file content exactly
keyLocationhttps://example.com/KEY.txtAbsolute URL at site root
urlListArray of absolute URLsUp to 10000 per request, host pure

After batch success, log URL count, status, and response snippet per request. Track daily submission volume versus CMS change volume. If submissions exceed changes by a wide margin, your pipeline is over notifying and needs filtering. Honest volume builds long term trust. Bulk blasts of unchanged URLs provide short term activity at the cost of credibility.

Response codes and what to do next

IndexNow responses use standard HTTP semantics with protocol specific meanings. A 200 means the submission was accepted. A 202 means accepted for processing where the engine queues validation. A 400 means malformed request shape. A 403 often means key or ownership problem. A 422 means validation failed for URLs or key mismatch. A 429 means too many requests and requires backoff. Read status plus body plus timestamp for every call, because the body names the field that failed. Do not retry 4xx without a fix. Back off on 429 with delay and reduced rate.

Key errors deserve immediate attention because they block all submissions. If submissions suddenly return 403 or 422 after a redesign, check the key file first: present, exact content, correct content type, publicly fetchable, not cached stale at CDN. Fetch it anonymously from outside your network and diff against the stored key. If you rotated recently, confirm workers use the new key and both files existed during overlap. Most key incidents trace to file removal, HTML wrapping by a new template, or auth rules that started blocking the path.

URL errors point to queue filtering. A 400 or 422 for a batch with one bad URL can fail the whole request depending on endpoint handling. Validate locally and split batches so bad entries are quarantined rather than blocking good ones. Log skipped URLs with reasons: relative URL, wrong host, localhost, or encoding failure. That skip log proves discipline and keeps success rate meaningful. After fixing shape, resend once and confirm success before resuming automation at full rate.

# Validate key file before debugging submission codes
curl -s -D - "https://example.com/YOUR_KEY.txt" -o /tmp/keycheck.txt
cat /tmp/keycheck.txt
CodeMeaning for IndexNowNext step
200AcceptedVerify with fetch logs, continue steady pace
202Accepted for processingSame as 200, allow queue time
400Malformed shapeFix host, key, list, or encoding, resend once
403Key or ownership issueRe verify key file, check content and access
422Validation failedDiff key versus file, filter URLs to host pure
429Too many requestsBack off, reduce rate, resume slower

Monitor code distribution weekly. A healthy pattern shows mostly 200 or 202 with rare 429 during busy publishes and near zero persistent 4xx. Sustained 4xx means a systemic shape or key problem that needs a queue validator or hosting fix. Sustained 429 means batch sizes or frequency need reduction. Those trends guide tuning better than any single response.

IndexNow and sitemaps why you keep both

IndexNow and sitemaps solve different problems. Sitemaps provide a complete, crawlable inventory of URLs with metadata such as lastmod. IndexNow provides instant signals for what just changed. Engines use sitemaps for comprehensive discovery and IndexNow for prioritization. Keeping both gives engines a map plus a flag. Dropping sitemaps because IndexNow exists removes the inventory that helps engines understand site structure, new sections, and canonical organization. Dropping IndexNow because sitemaps exist removes the speed that helps fresh content get evaluated sooner.

Sitemap hygiene still matters. Keep XML valid, split large sites into sitemap index files, list only canonical indexable URLs, keep lastmod accurate, and remove 404s promptly. Submit sitemaps in Bing Webmaster Tools and keep robots references correct. Those basics improve both routine crawling and IndexNow follow through, because engines fetch notified URLs in the context of overall site health. A notified URL on a site with broken sitemaps, deep orphaning, and slow responses still struggles. A notified URL on a healthy site gets evaluated quickly.

Lastmod accuracy deserves emphasis. Engines use lastmod for scheduling when it is trustworthy. Fake lastmod that claims every URL changed daily teaches engines to ignore your signals, which also weakens IndexNow trust. Update lastmod only when content meaningfully changed, and ensure CMS logic sets it from real edit timestamps rather than build time. That honesty aligns sitemap signals with IndexNow signals so both point at the same changed set. Inconsistency between the two, such as IndexNow flagging URLs whose sitemap lastmod is months old, creates confusion that slows evaluation.

MechanismStrengthKeep because
XML sitemapComplete inventory plus lastmodEngines need full map for discovery
IndexNow pingInstant change signalEngines prioritize fresh URLs sooner
Internal linksCrawl path depth controlOrphaned URLs crawl last regardless
Canonical tagsDuplicate consolidationSignals choose which URL qualifies
Robots healthAccess controlBlocked URLs cannot be evaluated

Practical setup for most sites: maintain a clean dynamic sitemap that updates on publish, send IndexNow for changed URLs from the same publish event, and keep internal linking shallow so newly flagged URLs are reachable within a few clicks. That trio covers inventory, speed, and reachability without extra cost. Review all three on the same monthly date so none drifts.

Automation paths CMS plugins pipelines

Automation should trigger from real change events, not timers that resubmit everything. In CMS platforms, hook into publish and update actions so only changed URLs enter the IndexNow queue. In static builds, diff the content manifest or sitemap between builds and submit only the delta. In deploy pipelines, emit from the deploy step that knows which templates changed. In every case filter to absolute public URLs on the notified host, deduplicate, batch sensibly, and log every request with status. That event driven pattern keeps volume proportional to editorial work and avoids spam signals.

WordPress sites often use plugins that auto submit on publish. Choose plugins that support key management, batching, and logging, and verify they send host pure lists with correct keyLocation. Test with one post, confirm success code, then confirm key file fetch in server logs. Avoid plugins that submit on every page view or that include unrelated hosts. For custom stacks, a small queue worker with persistence suffices: a database table or message queue holds pending URLs, a sender posts batches with delay, and a logger records outcomes. That worker survives restarts and prevents loss during 429 pauses.

CI and deploy integration needs care to avoid bulk floods. A routine CSS deploy that touches build timestamps should not notify thousands of URLs. Gate submission on content diff, not build success alone. Only URLs whose HTML meaningfully changed should enter the queue. Exclude asset only changes, timestamp only rebuilds, and preview hosts. In preview environments, disable IndexNow entirely or point it at a test host with its own key so staging activity never pollutes production signals.

# Queue entry filter sketch, host pure and absolute only
# if not url.startswith("https://example.com/"): skip with reason wrong host
# if url in recent_history: skip with reason duplicate
# else: enqueue for next batch
PathTriggerGuardrail
CMS hookPublish and update actionsOnly changed URLs, deduplicate
Static build diffManifest or sitemap deltaIgnore asset only rebuilds
Deploy pipelineContent template change stepExclude preview hosts
Manual toolOne off backfillPace across days, prioritize

Start automation with new content only, then expand to updates, then consider limited backfills for important history paced across days. That order delivers value without rate incidents and builds confidence in logs before volume grows.

Automation flow from a CMS publish event through a dedupe queue to batched endpoint sends

Limits etiquette and spam rules

IndexNow asks for honest signals. Submit URLs that actually changed, respect size rules, pace batches, and back off when told to slow down. One request may carry up to 10000 URLs, but that ceiling is not a daily target. Normal operation sends far fewer, proportional to editorial changes. Submitting your full sitemap hourly, re flagging unchanged URLs, or flagging URLs that do not exist or are blocked by robots wastes engine resources and reduces trust in your host. Engines may throttle or deprioritize hosts that abuse the signal.

Rate behavior varies by engine, so design defensively. Send batches with short delays, serialize per host, and implement exponential backoff with jitter on 429. Cap daily volume below what your change rate justifies and alert on spikes that exceed twice the recent average. Correlate spikes with imports, migrations, or plugin misconfigurations before resuming at full rate. If a migration genuinely changes thousands of URLs, pace the backlog across days, prioritize important templates, and pause when 429 appears. Steady paced submission beats flood and pause cycles for both trust and crawl efficiency.

Content eligibility still applies after notification. Do not submit URLs that are noindex, canonicalized elsewhere, blocked by robots, behind auth, or returning 404, unless the update intentionally changed that state and you want re evaluation. For removed content, submit the URL once as changed so engines can recrawl and observe the 404 or 410, rather than spamming repeats. For redirected moves, submit the new canonical after the redirect is live. Those practices align notification with crawlable reality so engines learn to trust your flags.

RulePracticeWhy
Honest changes onlySubmit created, updated, deleted URLsBuilds long term scheduling trust
Host pure batchesOne host per requestPrevents validation failures
Paced sendsSmall batches with delaysAvoids 429 and throttling
Backoff on 429Exponential delay plus jitterRecovers without daily exhaustion
No spam repeatsDeduplicate within windowSaves quota of attention and logs

Document your etiquette in one page: what qualifies as a change, batch size, delay, backoff policy, and daily alert threshold. New teammates and vendors follow that page instead of improvising. That consistency is what engines experience as a trustworthy host.

Measure effect without fooling yourself

IndexNow speeds discovery, not quality evaluation. Measure it that way. Track time from submission to engine fetch in server logs, then from fetch to index state in Webmaster tools. The first interval shows protocol effect. The second shows content and eligibility effects. If fetch quickens but index state does not change, the constraint is quality, canonicals, robots, or server behavior, not discovery. Reporting both intervals prevents crediting IndexNow for ranking moves it did not cause and prevents blaming it for quality gaps it cannot fix.

Establish a baseline before rollout. For two weeks, record median time from publish to Bingbot fetch for new URLs without IndexNow, plus index state after seven days. After rollout, record the same metrics with IndexNow enabled and queue disciplined. Compare medians, not anecdotes. Control for template changes, site speed work, and publishing volume shifts that could confound results. A simple before and after table with sample sizes is more persuasive than a single fast example. Share raw counts alongside medians so stakeholders see distribution, not just headline speed.

Avoid vanity metrics. Submission count alone proves activity, not value. Success code rate alone proves shape correctness, not crawl effect. Ranking changes alone prove many factors, not protocol causation. The useful dashboard combines submissions, success rate, fetch latency, index state for notified versus non notified cohorts, and server health. If notified URLs fetch sooner but index at similar rates to controls, IndexNow is working as designed and content work is the next lever. That reading keeps investment balanced across discovery and quality.

MetricWhat it showsHow to read
Submission to fetch medianDiscovery speedShould shorten after rollout
Fetch to index rateEligibility and qualityMay not move with protocol alone
Success code rateShape and key healthShould stay near 100 percent
Notified versus controlCausal hintCompare matched cohorts, not all traffic
Server performanceCrawl capacitySlow origins blunt speed gains

Review monthly for the first quarter, then quarterly. If fetch latency improved and stayed improved with honest volume, keep the workflow. If no fetch change appears, check key health, batch filtering, and whether notified URLs were actually crawlable. Measurement closes the loop between sending signals and earning faster evaluation.

A practical rollout plan for one site

Roll out in five stages across two weeks. Stage one, days one to two: generate key, host file, validate public fetch, and record check date plus participants list from indexnow.org. Stage two, days three to four: manual single URL test, confirm success code, confirm key file fetch and URL fetch in server logs. Stage three, days five to seven: automate new publishes only with queue, deduplication, batching, and logging. Stage four, week two: expand to updates and deletes with eligibility prechecks, add alerts for 429 and persistent 4xx. Stage five, end of week two: baseline comparison and decision to keep, tune, or expand to backfills.

Backfills deserve separate planning. If important history was never flagged, pace it after steady operation proves healthy. Prioritize revenue critical templates, then docs, then archives. Send a few hundred per day with delays, pause on 429, and skip URLs that are noindex, canonicalized elsewhere, or 404 unless re evaluation is intended. Log backfill separately from live publishes so reporting distinguishes catch up from steady state. Most sites find live automation plus a small paced backfill covers needs without rate incidents.

Handover should fit on two pages: architecture diagram plus access sheet. Diagram shows CMS event to queue to sender to endpoints plus log storage. Access sheet lists key fingerprint, key file URL, hosts covered, batch policy, alert thresholds, and rotation date. Store both with your Google workflow docs so future teammates see the two engine picture in one place. That pairing prevents the common gap where Google access is tidy but IndexNow key health goes unchecked for months.

StageDatesExit criteria
Key and hostDays 1 to 2Public key fetch exact match
Manual testDays 3 to 4200 or 202 plus log fetch proof
Automate newDays 5 to 7Queue live, logs clean, no spam
Expand and alertWeek 2 startUpdates covered, alerts wired
Review and decideWeek 2 endFetch latency comparison recorded

By the end of rollout you should have a quiet workflow that sends honest signals, handles errors calmly, and proves effect with fetch data. That quiet reliability is the goal. IndexNow should fade into infrastructure that just works while editors focus on content.

FAQ

Does IndexNow submit to Google?

No. Google does not support IndexNow. This indexnow guide covers participating engines such as Bing, Yandex, Naver, Seznam and others listed on indexnow.org. For Google, use sitemaps, Search Console inspection and the Indexing API for eligible JobPosting and BroadcastEvent pages. Run both workflows from the same publish event with separate queues and logs. That separation keeps reporting honest when stakeholders ask why Google charts did not shift after success on other engines, and it prevents misdirected pings. Keep one page in your runbook that records the check date and the engines you observed for future audits.

How many URLs can I send in one IndexNow request?

One POST request can carry up to 10000 URLs in urlList. That is a per request ceiling, not a daily target. Normal operation sends far fewer, proportional to real changes. Choose an indexnow tool that enforces host purity, deduplication and paced batches in the hundreds for steady work. Pace with delays and back off on 429. Honest volume builds trust better than bulk blasts of unchanged URLs, and clean logs make quota reviews simple when volume grows after migrations or imports.

Where do I put the key file?

Host it at your site root as https://example.com/{key}.txt containing exactly the key string, served as plain text and publicly fetchable without login. This indexnow key file must match byte for byte, with no HTML wrapper or extra whitespace. Validate with anonymous curl and diff against the stored key. Keep it stable across deploys and re verify after redesigns, migrations or CDN changes. Rotate with overlap by hosting old and new files together during transition, then remove the old file after a week of clean operation.

Do I still need sitemaps if I use IndexNow?

Yes. Sitemaps provide the complete inventory with lastmod that engines use for comprehensive discovery. IndexNow provides instant signals for what just changed. From an indexnow seo perspective, the two complement each other plus shallow internal linking, clean canonicals and robots health. Align lastmod honesty with IndexNow honesty so both point at the same changed set. That combination covers map, speed and reachability without extra cost, and monthly joint reviews keep none of the three drifting out of sync. Review all three on the same monthly date so none drifts while automation runs quietly in the background.

Why did my submissions return 403 or 422?

Those codes usually mean key or validation problems that block scheduling. Re verify the key file is present with exact content and public access, confirm key matches request, confirm host purity and absolute URLs, and check for CDN staleness after recent changes. Fetch the file anonymously from outside your network and diff it against secrets. Fix the named field once, resend once, then add a queue validator so the same bad shape cannot re enter. Log skips with reasons to keep success rate meaningful and debugging fast.

Will IndexNow improve my rankings?

IndexNow can shorten time to crawl, but ranking still depends on quality, relevance, canonicals, links and user value. Measure submission to fetch latency for protocol effect and fetch to index plus ranking separately for quality effects. If fetch quickens without ranking moves, invest in content and site health next. Treat IndexNow as discovery infrastructure, not a ranking lever, and report both intervals so owners see where speed helped and where content work remains the next priority. Keep measurement monthly for the first quarter, then move to quarterly reviews once trends stabilize.

Sources

  • https://www.indexnow.org/documentation
  • https://www.bing.com/webmasters/help
  • https://yandex.com/support/webmaster/indexnow/indexnow.html
  • https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap
  • https://support.google.com/webmasters/answer/9008080

Further reading

Put this into practice. Indexer submits URLs to the Google Indexing API and IndexNow, audits coverage with Search Console, and shows exactly which pages are indexed. Start free or see how it works.