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
| Surface | Job |
|---|---|
| IndexRush | Tell search and discovery partners about URLs you already published. |
| Kavi / queue / SEObot-style content tools | Research and draft pages or posts. IndexRush never invents pages. |
| Ved GEO | Probe AI answer engines and track citations. GEO is measurement; IndexRush is a ping. |
| Search Console integration | Read 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):
aicmo index initaicmo index add-site --host example.com --sitemap https://example.com/sitemap.xml --autopilotaicmo index sync-sitemapaicmo index submit --dry-runaicmo index statusaicmo index doctoraicmo index serve --onceaicmo 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.
- Run
aicmo index initor 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. - Host the key file at
https://<your-host>/<key>.txtso the file body is exactly the key. You can also setINDEXRUSH_INDEXNOW_KEY_LOCATIONif you use a different path on the same host. aicmo index doctor --probe-keychecks 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
| Variable | Default | Meaning |
|---|---|---|
INDEXRUSH_DAILY_URL_QUOTA | 50 | Max IndexNow URLs per site per UTC day |
INDEXRUSH_DAILY_GOOGLE_QUOTA | 10 | Max Google Indexing API URLs per site per UTC day (only if opted in) |
INDEXRUSH_DRY_RUN | false | Build payloads, do not POST. Dashboard submit is dry-run unless you override. |
INDEXRUSH_ALLOW_GOOGLE_INDEXING_API | false | Policy gate. Off unless you set it. |
INDEXRUSH_INDEXNOW_KEY | unset | Overrides the generated key |
INDEXRUSH_INDEXNOW_KEY_LOCATION | https://<host>/<key>.txt | Public key file |
INDEXRUSH_GOOGLE_SERVICE_ACCOUNT_JSON | unset | Service 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/indexrushjob (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 initor setINDEXRUSH_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_QUOTAfor 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.