The most programmatic of programmatic failures: a slot the generator did not fill. Unrendered template syntax (`{{city}}`, `{city}`, `${city}`, `%CITY%`, `{% %}`), values the code failed to produce (`undefined`, `NaN`, `null`, `None`, `[object Object]`) in the title, description, headings or JSON-LD, a bracketed dataset column name such as `[City]`, lorem ipsum — critical. An empty place in a title or heading (`Plumbers in , TX`, a title that opens with ` | Brand`) is a warning. Code blocks, scripts, TeX formulas and Markdown sources (where `{{ }}` is Hugo or Jekyll syntax) are not judged.
The finding reads:
critical unfilled-slot —
Find where the empty value comes from: a dataset row missing the field, a typo in a template variable, or a field the generator does not fill. Fix the data or the template and rebuild — editing the built page is useless, the next build brings the seam back.
Collapsed when it fires template-wide. If it appears on 90% or more of the pages — or of one language version — of a site with at least 20 pages, it is a property of the template and is reported once, with the count, instead of once per page.
pipx install indexgap
cd your-project
indexgap init
indexgap check
Then indexgap brief turns
every finding on this page into a work order in indexgap-briefs/,
with the thresholds the result has to satisfy and the command to check it.