Get your pages crawled faster. A tiny, zero-dependency toolkit for IndexNow submission (Bing, Yandex, Seznam, Naver…) and sitemap ping/expansion. Works as a CLI and a library. Node 18+.
npx @kinobd/seo-submit sitemap https://example.com/sitemap.xml --key <your-key># Submit specific URLs to IndexNow (all on the same host)
npx @kinobd/seo-submit indexnow --key ab12cd34 https://example.com/a https://example.com/b
# Expand a sitemap (or sitemap index) and submit every URL via IndexNow
npx @kinobd/seo-submit sitemap https://example.com/sitemap.xml --key ab12cd34
# Ping Google & Bing with your sitemap
npx @kinobd/seo-submit ping https://example.com/sitemap.xml
# Just print every URL in a sitemap (pipe it wherever)
npx @kinobd/seo-submit expand https://example.com/sitemap.xml | wc -lYour IndexNow key is any 8–128 character string you choose, hosted at
https://<host>/<key>.txt (or pass --keyLocation). See
indexnow.org.
import { indexNow, submitSitemap, pingSitemap, sitemapUrls } from '@kinobd/seo-submit';
await indexNow(['https://example.com/new-page'], { key: 'ab12cd34' });
const { found, submitted } = await submitSitemap('https://example.com/sitemap.xml', { key: 'ab12cd34' });
await pingSitemap('https://example.com/sitemap.xml'); // → { google: 200, bing: 200 }
const urls = await sitemapUrls('https://example.com/sitemap.xml'); // handles sitemap indexesindexNow(urls, { key, host?, keyLocation?, endpoint? })— batches automatically (10k/req), one host per call.submitSitemap(sitemapUrl, opts)— expand a sitemap → IndexNow.sitemapUrls(sitemapUrl)— fetch + parse<loc>, recurses one level into<sitemapindex>.pingSitemap(sitemapUrl)— ping Google & Bing.
Built by kinobd.net to keep a large multi-site catalogue promptly indexed, and extracted as a clean, generic tool any site owner can use.