request-indexing

Find your missing on pages Google and request them to be indexed using the Web Search Indexing API.

393
34
393
20
Vue
public

Request Indexing

Get your pages indexed.
Search Console data and multi-engine submission, in one small app.


requestindexing.com
GPL-3.0 Β· Cloudflare-native Β· free during beta
Built by Harlan Wilton Β· maintainer of Nuxt SEO
Follow @harlan_zw Β· Join Discord

[!NOTE]
Free during beta. See VISION.md for what this is and, more importantly, what it is not.

Connect Search Console, see which pages are indexed and which are not, and submit the ones that need it.

What it does

  • πŸ” Indexing status per URL: what Google has indexed, what it has not, and the stated reason
  • πŸ“€ Submission: push new and updated URLs to every engine the protocol supports
  • πŸ“ˆ Coverage over time: index percentage, transitions, and what changed since last week
  • πŸ—ΊοΈ Sitemaps: what you declared, what was discovered, what drifted
  • πŸ“Š The regular Search Console reads: queries, pages, countries, devices, kept past Google’s 16-month window
  • πŸ”“ GPL-3.0 + self-host: same app, your Cloudflare account, your keys

What it is not

This is a small product on purpose. It does not do AI crawler observability, LLM citation tracking, SPA prerendering, or inject llms.txt into your site. Those were an earlier direction and are gone. See VISION.md.

Built on

  • @gscdump/*, the engine: sync, retention, indexing inspection, sitemaps, submission, and the public protocol this app consumes
  • Nuxt + Nuxt UI Pro + Nuxt SEO
  • Cloudflare Workers, D1, R2, Queues
  • DataForSEO for keyword data

Engine features land here by upgrading the gscdump protocol, not by rebuilding them. IndexNow and Bing Webmaster Tools arrive that way when gscdump ships them.

Run locally

git clone git@github.com:harlan-zw/request-indexing.git
pnpm i

Configure a Google OAuth client at the Google Developer Console with scopes userinfo.email, webmasters.readonly, indexing, and redirect URLs http://localhost:3000/auth/google and http://localhost:3000/auth/google-indexing.

# .env
NUXT_OAUTH_GOOGLE_CLIENT_ID=<clientId>
NUXT_OAUTH_GOOGLE_CLIENT_SECRET=<clientSecret>
NUXT_KEY=<must be 32 chars>
NUXT_SESSION_PASSWORD=<secret>

Talking to the hosted engine also needs a gscdump partner key (NUXT_GSCDUMP_API_KEY) and webhook secret (NUXT_GSCDUMP_WEBHOOK_SECRET). See .dev.vars.example for the full list.

pnpm dev

Building requires a Nuxt UI Pro license:

NUXT_UI_PRO_LICENSE_KEY=<license> pnpm build

Self-hosting

The hosted product is one deployment of this codebase. Bring your own Cloudflare account, your own Google OAuth app, your own D1 + R2 bindings; deploy with wrangler deploy. Full guide: TODO.

Credits

The original Request Indexing was inspired by google-indexing-script (background).

Sponsors

Sponsors

License

GPL-3.0 Β© 2022-PRESENT Harlan Wilton

v0.3.3[beta]