Business & Marketing · · 5 min read

Bulk indexing for Bing - IndexNow Tool

Bulk indexing for Bing - IndexNow Tool

An open protocol lets you push URL updates straight to Bing, Yandex, Naver, Seznam, and Yep for free, in one HTTP request. It has existed since 2021. Nobody sells it to you, because there is no retainer in "put this text file on your server". Here is the protocol, the mistake I made with it, and the tool I built because I'm lazy...

A crawler will find your new page eventually. For Bing, "eventually" is somewhere between a day and three years :]

The engine re-crawls your site on a schedule it picked, compares what it finds against what it had, and updates the index if something changed. Most of that effort goes into old pages that haven't changed since 1997, while the page you published this morning sits unlisted forever.

IndexNow Solves This Problem

Instead of waiting for pages to get indexed, you tell the engines directly: these URLs changed, come look. Now!

How IndexNow works

IndexNow is an open protocol that anyone can use. You need very little to make it work:

That's it. No account, no dashboard, no verification email, no API quota to apply for. You submit once toapi.indexnow.org, and the participating engines share the submission between themselves, so you are not making the same call five times.

Which brings me to the funny part: this has been live since 2021, it is documented, it is free, Microsoft is behind it, and setup takes about a minute. It is not a loophole. It doesn't violate any T&Cs. There's no penalty risk.

Over the years and countless SEO content pieces that I have digested, it has come up roughly never, ranked somewhere below "write helpful content" and well below whatever link building trick is being pushed that quarter.

Why? I have no idea. For the same reason SEOs collectively decided to ignore Bing?

The "bad" News

Google does not participate. It evaluated IndexNow, ran a test, and never adopted it. For Google, you are on sitemaps and Search Console, exactly as before. If Google is the only engine you care about, close this tab - the tool will do nothing for you. BUT... If you care about AI visibility, want to get your pages cited and potentially influence LLMs... You should not ignore it :)

Who does participate: Bing, Yandex, Seznam (which owns the Czech market), Naver (which owns the Korean one), and Yep.

Bing matters more than its search share suggests, because the Bing index is what sits underneath Copilot, DuckDuckGo, Ecosia, Yahoo, and a bunch of other things. If your goal is getting cited by an AI assistant rather than ranked on a page of blue links, Bing is not the consolation prize. It is a large part of the actual surface.

So why build anything?

The submission is one HTTP request.

The request is easy. Doing it properly, repeatedly, across more than one site, is the tedious part, and tedious is where I stop doing things.

You need to know which URLs you already sent, or you spend your submissions telling Bing about pages it accepted last month. You need your key file to actually be there, serving the right string. You need to catch the one URL on the wrong host before it goes into the batch, because IndexNow rejects the entire batch over it. You need to know which failures are worth retrying and which are permanent. And you need the whole thing to run without you, on a schedule, because a manual indexing routine is a routine you abandon in week two.

That is what indexnow-tool does. It is a local web UI and a CLI over the same code, with a SQLite file underneath keeping score.

Recent runs

It refuses to send the same URL twice. Every URL is stored and canonicalized first, so HTTPS://WWW.Example.com/A and https://www.example.com/A count as one. Re-run last week's sitemap and only the genuinely new URLs go out. Run #10 in that screenshot re-submitted the same sitemap and sent 112 URLs, skipping the 1,465 already accepted.

It reads URLs from wherever they are. A sitemap URL, txt, csv, or pasted text.

It checks your key file the way an engine will. One click, before anything is submitted. This is the single most common reason submissions fail, and it is invisible from your end.

It sends 1,000 at a time. The limit is 10,000. Smaller batches mean you can watch progress move, and one rejected batch does not take the rest of the run with it.

It tells you what broke. Every rejected batch is stored with its HTTP code and what that code actually means. 429 retries and honors Retry-After. Network errors retry three times. Every skipped URL records why it was skipped.

It retries on purpose. Failed URLs are listed with their IDs, so you retry all of them, retry three of them, or mark them resolved if you confirmed the page got indexed another way.

Every UI action has a command. They exit non-zero on failure, which is the only property that matters for automation:

0 6 * * *  indexnow run --project mysite --source sitemap

Already-submitted URLs get skipped, so a daily run over your full sitemap only ever sends the delta.

Installing it

pipx install indexnow-tool
indexnow

indexnow with no arguments starts the web UI and prints its address. The database lands in ~/.indexnow/indexnow.db.

There is a Docker path (docker compose up -d, bound to 127.0.0.1 by default) and a from-source path if you want to read it first.

New run

Then: add a project, upload your key file, press Verify key, pick a source, run.

Results?

I'm not going to claim that it doubled my traffic. It skyrocketed it :)

IndexNow does not guarantee indexing. It removes the discovery delay and points crawl budget at pages that actually changed. Whether the engine then indexes the page, and whether an assistant then cites it, remains their decision and depends on the page deserving it. Submitting a bad page faster gets you ignored sooner. But anyone who tried to get things indexed in Bing knows that their crawlers are notoriously slow and bad. For some reason, IndexNow removes the issue completely and forces Bing to digest thousands of pages within days.

Source Code: github.com/dawid-ai/indexnow-tool

Package: pypi.org/project/indexnow-tool

Read next