AI visibility
Stable prompt sets: how to keep AI visibility comparable
A stable, versioned set of questions is what makes brand citations on ChatGPT readable as a series over time. Here is how to freeze, tag and log it, and where the method breaks.
If you want to track brand citations on ChatGPT month over month, the practical answer is to freeze a stable set of questions, version it and lock it before you measure. Change the questions on every run and the comparison collapses: you can no longer tell whether a citation appeared because the engine moved or because you asked something different. With a fixed set, the same question asked today and two months from now gives two answers you can read in sequence, and the gap between them means something. The goal is not many questions. It is the same questions.
A set that moves cannot be compared
Any question set grows, gets corrected, loses entries. If each edit enters the measurement without a trace, a comparison between two runs mixes two effects: the engine changing and the set changing. Separating them takes a version log, a written record of what changed, when and why. Without one, rebuilding the history afterwards is guesswork: who added that question, in which month, before or after the baseline run. The limit is operational, not theoretical.
The RankAI method, offered as working practice
What follows is a RankAI proposal, not a universal standard. Its purpose is to make the set stable and checkable, and to tie it to how you read brand citations on ChatGPT.
- Freeze the set before measuring. Check: a file or table lists every question in full, and the freeze date comes before the run date. No date, no frozen set.
- Give every question an ID. Check: each row carries a unique, stable code, so a renamed question stays the same question instead of becoming a new entry.
- Log every version with a completed row. Check: the row states what changed, when, and from which version to which. Illustrative example, fictional: "v2 → v3, 12 June (fictional example), added a price-comparison question, nothing removed." If any of the three elements is missing, the row is incomplete.
- Measure frozen versions only. Check: each run names the set version it used. A measurement with no declared version cannot be compared with the others.
- Treat absence as absence. Check: when a visibility figure is unavailable, the product shows it as N/A, never as zero. Zero is a data point; N/A is missing data. Blurring the two corrupts the series.
What often gets missed is that a stable set does more than let you compare engines with each other. It lets you read brand citations on ChatGPT as a series rather than a stack of snapshots. If the wording of a question shifts, a citation that appears or vanishes may reflect the new phrasing, not a real change. So keep two layers apart: the frozen set, untouched during a run, and the working set, where new questions get tried. Experimental questions join the frozen set only at the next version, with their own log row. The historical series stays readable and new material does not contaminate it. This is hygiene for comparison, not a guarantee about outcomes: it tells you what you measured, not what will happen.
A limit you can check
The method holds only if the log is updated before the run, not after. A log rebuilt later may look plausible but cannot be verified: there is no proof the version was the one in force at the time of the run. Picture a team that adds three questions in April and writes the log entry in July, after the numbers are in. The entry may be accurate, yet nothing shows the April run used the older set, so the comparison stays a hypothesis. If no log exists at all, comparing two runs is a hypothesis, not data.
For the full picture on reading these measurements, see the in-depth page.
Citation, mention or retrieved source: how to tell them apart