Skip to content

IndexRush inside AICMOHQ

IndexRush (built into AICMOHQ)

IndexRush is AICMOHQ’s indexing/discovery autopilot. It watches a sitemap, respects a daily URL quota, and tells IndexNow — and, only if you explicitly opt in, Google’s Indexing API — that those URLs exist.

Use it when you want new pages discovered faster. It does not write content and it does not measure whether AI assistants cite you.

How it differs from other AICMOHQ tools

SurfaceJob
IndexRushTell search and discovery partners about URLs you already published.
Kavi / queue / SEObot-style content toolsResearch and draft pages or posts. IndexRush never invents pages.
Ved GEOProbe AI answer engines and track citations. GEO is measurement; IndexRush is a ping.
Search Console integrationRead queries, clicks, and impressions. It does not submit URLs.

Do not treat IndexRush as a way to force Google to index ordinary marketing pages. That is not what Google’s Indexing API allows, and AICMOHQ will not help you abuse it.

Two ways to run it

Dashboard — IndexRush (Grow → IndexRush). Add a host, sync the sitemap, dry-run submit. Dashboard submits default to dry-run.

CLI — local state under ~/.aicmo/indexrush.json (mode 0600, or $AICMO_HOME / $INDEXRUSH_HOME):

Terminal window
aicmo index init
aicmo index add-site --host example.com --sitemap https://example.com/sitemap.xml --autopilot
aicmo index sync-sitemap
aicmo index submit --dry-run
aicmo index status
aicmo index doctor
aicmo index serve --once

aicmo index autopilot is one cycle. aicmo index serve --watch loops. aicmo run index.status and aicmo run index.doctor are the same local reads.

Setup

1. IndexNow key (required)

IndexNow is the default path. Bing and other IndexNow partners (including some LLM crawlers that follow Bing) pick up the ping.

  1. Run aicmo index init or add a site in the dashboard. AICMOHQ generates a key and stores it in local/workspace state — it is never committed and not printed in logs.
  2. Host the key file at https://<your-host>/<key>.txt so the file body is exactly the key. You can also set INDEXRUSH_INDEXNOW_KEY_LOCATION if you use a different path on the same host.
  3. aicmo index doctor --probe-key checks that the file is reachable.

2. Google Search Console (optional, read-only)

Connect Search Console under Settings → Integrations to see queries and pages. That OAuth grant is webmasters / webmasters.readonly. It does not turn on Google’s Indexing API.

A Google service account is only needed if you opt into the Indexing API (below). Put the JSON in INDEXRUSH_GOOGLE_SERVICE_ACCOUNT_JSON — never in the repo, never in a client bundle.

3. Quotas and dry-run

VariableDefaultMeaning
INDEXRUSH_DAILY_URL_QUOTA50Max IndexNow URLs per site per UTC day
INDEXRUSH_DAILY_GOOGLE_QUOTA10Max Google Indexing API URLs per site per UTC day (only if opted in)
INDEXRUSH_DRY_RUNfalseBuild payloads, do not POST. Dashboard submit is dry-run unless you override.
INDEXRUSH_ALLOW_GOOGLE_INDEXING_APIfalsePolicy gate. Off unless you set it.
INDEXRUSH_INDEXNOW_KEYunsetOverrides the generated key
INDEXRUSH_INDEXNOW_KEY_LOCATIONhttps://<host>/<key>.txtPublic key file
INDEXRUSH_GOOGLE_SERVICE_ACCOUNT_JSONunsetService account JSON string for the Indexing API

Per-site quotas can also be set on add-site --quota.

Google Indexing API policy

allow_google_indexing_api defaults to false. Keep it that way unless every URL you submit is a JobPosting or BroadcastEvent page you own, which is the only use Google documents for that API.

If the gate is off, IndexRush still submits via IndexNow. If you pass --google or set the env flag without a googleSchemaType of JobPosting or BroadcastEvent, the Google path is skipped and the doctor/status report explains why.

Do not use IndexRush to spray URLs, replay the same page all day, or request indexing of pages you do not control. Daily quotas exist to keep traffic polite.

Autopilot

Sites added with --autopilot (or the dashboard default) are included in:

  • aicmo index serve / aicmo index autopilot
  • The daily /api/cron/indexrush job (same 05:00 UTC window as other AICMOHQ loops; handlers are idempotent via quota + last-status)

Each cycle syncs the sitemap, then submits URLs that have not yet been acknowledged, up to the daily cap.

Troubleshooting

  • doctor says no IndexNow key — run aicmo index init or set INDEXRUSH_INDEXNOW_KEY.
  • key file 404 — the key must be served on the same host as the URLs.
  • quota reached — wait until the next UTC day or raise INDEXRUSH_DAILY_URL_QUOTA for a host you own. Do not rotate keys to dodge the cap.
  • Google path skipped — expected unless you opted in and set a JobPosting/BroadcastEvent schema type.
  • Want citation data instead? — use Ved / GEO, not IndexRush.