Quality control for programmatic SEO pipelines

You generated three thousand pages from a dataset. They are on disk, they are in the sitemap, and there is no traffic. indexgap tells you where they were lost — and which of the numbers on those pages your generator invented.

pipx install indexgap
cd your-project
indexgap init
indexgap check

The check that has no equivalent elsewhere

Every general site auditor will tell you a page is thin or a title is duplicated. None of them can tell you that a visa page states a processing time that appears nowhere in the row of data that produced it. indexgap compares the numbers printed on each page against its own dataset row, and that is the check the rest of the package is built around.

It is also why indexgap never writes page text. If the package supplied those numbers itself, the check would be checking its own output and would be green forever.

What it looks for

All 64 checks →

Findings are not tasks

On a live 2,970-page catalogue the audit reports 6,074 findings. indexgap brief turns them into 966 work orders — because a finding that fires on nearly every page is one template defect, and a near-duplicate cluster of 24 pages is one decision, not 24.

Ten commands

From auditing the keyword file before a single page exists, through the audit itself, to the crawl-to-index funnel and measuring whether AI search cites you. See all ten →

What it costs to run

Python 3.9 and up, standard library only. No dependencies, no API keys, no telemetry, no account. Nothing leaves your machine without an explicit flag. The one command that queries AI search engines needs your own keys and sends nothing without --send. MIT licensed.