# Bing & Copilot via IndexNow: verify your site

**IndexNow** is an open protocol for telling search engines "this page changed". One notice is shared between the participating engines: **Bing** (which also powers Copilot and Bing's AI answers), **Yandex**, **Seznam**, **Naver** and **Yep**. FreshlyCited sends IndexNow notices for your verified sites on every push, **free**, alongside the Google push.

> IndexNow doesn't reach Google, and it isn't a channel into ChatGPT or Perplexity. It tells the participating engines a URL changed so they can recrawl it sooner; they still decide what to index.

## How it works

1. **Add your site** (Bing & Copilot page in the app, `add_indexnow_site`, or `POST /api/v1/indexnow/sites`). Add each exact hostname you use: `example.com` and `www.example.com` are different sites to IndexNow.
2. **Publish the key file.** FreshlyCited generates a key. Put a plain-text file containing only the key at `https://<your-host>/<key>.txt`. If you can't write to the root, set a **key location** such as `https://example.com/seo/<key>.txt`; it then only covers URLs under `/seo/`.
3. **Verify.** FreshlyCited fetches the file and checks it contains exactly the key. The check is safe by design: only public http(s) addresses, a few seconds and a few kilobytes at most, and redirects must stay on your host.
4. **Push as usual.** URLs on a verified, switched-on site go to IndexNow (`api.indexnow.org`) in the same push, up to 10,000 per request and one host per request.

## What we send, and when

- Only URLs whose host matches one of **your verified sites**. Backlinks on other people's sites are never sent to IndexNow (they go to Google only).
- **Changed content only:** a URL sent to IndexNow in the last 24 hours isn't resent, unless you explicitly push it again (**Push again**, `retry_job`, `send_unindexed_to_indexer`, or `indexnow_force: true`).
- Each link records its IndexNow result in the push: **Sent to Bing (IndexNow): received** (`accepted`, HTTP 200), **received, key pending** (`submitted`, HTTP 202: the engines are still validating your key), **error** with the HTTP code (403 key not valid, 422 URL doesn't match the host, 429 too many requests) or **sent in the last 24 h**. "Received" means IndexNow accepted the notice, not that Bing indexed the page.
- The push outcome says it plainly, for example "3 links also sent to Bing (IndexNow)". Use `get_job_indexnow` or `GET /api/v1/jobs/{id}/indexnow` for per-link detail.

## Staying verified

FreshlyCited re-checks every verified site daily. If the key file is missing twice in a row (an hour apart), the site is **paused**: IndexNow notices stop, you get an email and a notice on the site, and nothing else changes until you verify again. You can also switch a site off at any time, or rotate its key.

## Seen by Bing?

A notice isn't proof of indexing. FreshlyCited has an optional Bing search check (`engine: "scan_bing"`) that platform admins can switch on under Settings › Integrations; it is **off by default** because Bing search results proved unreliable for per-URL checks, and `check_index` with `engine: "scan_bing"` returns 409 while it's off. When it's on, it only confirms positives: a match shows **Seen by Bing** (1 credit); a miss shows **Not confirmed by Bing** and is refunded, because not finding a URL in Bing's results doesn't prove it isn't indexed.

A reliable per-URL Bing index status would need Bing Webmaster Tools' URL inspection, which requires each site to be verified in Bing Webmaster Tools. That's on our roadmap.

## API at a glance

| Action | MCP tool | REST |
| --- | --- | --- |
| List sites | `list_indexnow_sites` | `GET /api/v1/indexnow/sites` |
| Add a site | `add_indexnow_site` | `POST /api/v1/indexnow/sites` |
| Verify | `verify_indexnow_site` | `POST /api/v1/indexnow/sites/{id}/verify` |
| Switch on/off, move key file | `update_indexnow_site` | `PATCH /api/v1/indexnow/sites/{id}` |
| Remove | `delete_indexnow_site` | `DELETE /api/v1/indexnow/sites/{id}` |
| What a push sent | `get_job_indexnow` | `GET /api/v1/jobs/{id}/indexnow` |

Step-by-step: [Verify your site for IndexNow](https://freshlycited.com/docs/recipes/verify-site-indexnow).


---
Source: https://freshlycited.com/docs/indexnow
