Method
How AI visibility is measured across AI search answers
RankAI measures AI visibility with a multi-engine sheet: one row per observed surface, with the question, the date, the answer text and the citations. No single score, just a record of what was seen, where and when.
To measure AI visibility across ChatGPT, Perplexity, Gemini, Grok and Google AI, RankAI's working answer is a multi-engine sheet. Each observed surface gets its own row, and each row carries the question asked, the date, the text of the answer that was read and the citations it contained. The sheet does not produce a single score. It records what was seen, where and when, so that observations stay readable and verifiable claims stay separate from guarantees. The general method is described on the method page.
What is actually observed
RankAI's public pages name ChatGPT, Perplexity, Gemini, Grok and Google AI. That list defines the perimeter of the surfaces we cover. Inside that perimeter, every observation is local: one question, one engine, one moment. The same question put to two different engines produces two separate rows, because the answers are separate. The sheet exists to keep them from being merged.
Two limits belong here rather than in a section of their own. Claude and Grok are measured only after you connect them: without a connection there is no observation to record. Gemini and Google AI Overviews are not the same observation and must sit on separate rows, even when the question is identical.
The multi-engine sheet, step by step
What follows is RankAI's working proposal, not a universal standard. Its purpose is to make collection repeatable and reading verifiable.
- Set the perimeter before you observe. List the engines you intend to follow from the named ones: ChatGPT, Perplexity, Gemini, Grok, Google AI. Check: every engine on the list has at least one row, and no row combines two surfaces.
- Write the question identically for every engine. Check: the question text in the sheet matches what was typed character for character, so two rows can be compared without interpretation.
- Record the date and the answer you read. Check: the row shows the date of the observation and an excerpt of the answer actually seen, not a summary from memory.
- Note the citations present in the answer. Check: for each row you state whether the answer cites sources and which ones, without adding sources that do not appear.
- Close the sheet with a stop rule. Check: the sheet is complete when every engine in the perimeter has its own row and no row contains two surfaces. If a row is missing, the sheet stays open.
An illustrative example, not an observation
The row below is filled in for illustration only. It was not observed. Question: "how is AI visibility measured." Date: hypothetical. Engine: Gemini. Answer read: shown as an excerpt. Citations: marked as present or absent. The row is fictitious and exists only to show the shape. The mistake to avoid is a row that merges two engines, for example a row labelled "Gemini / Google AI" holding a single answer. That row cannot be verified, because it fuses two surfaces the perimeter keeps apart. It has to be split into two distinct rows before the sheet can be considered closed.
The contribution of this piece is the closing rule applied to reading. A multi-engine sheet does not say how visible a site is in absolute terms. It says how many verified rows exist for a declared perimeter. Three checks follow from that, which RankAI offers as its own method. First: a row without a date is not an observation, it is a memory. Second: a row without an excerpt of the answer cannot be read, because it gives no way to recheck what was written. Third: a row that merges two surfaces must be split, even if the answers look similar, because similarity is not proof of identity. With these three checks applied, the sheet becomes a record that can be compared over time: two dates for the same question and the same engine, or two engines for the same question and the same date. Incomplete rows cannot be compared, and the absence of a citation must not be treated as absence of visibility. The sheet records what was read, not what exists in every possible answer.
What the sheet cannot guarantee
The sheet records point-in-time observations, not a stable result. An API answer is not a person's screen: those are two different readings and must not be swapped. That is why the sheet always states how the answer was read. The verifiable limit is this: the sheet is complete only when every engine in the perimeter has a dated row with the answer that was read and no row merges two surfaces. Anything outside that condition remains a partial observation and should be read as one. For the full method, see the method page.