citegeo

Open source, self-hosted, MIT

Four models just answered your buyer.

Not a score. The answers themselves, kept word for word. One of these four never mentions the brand at all.

The question asked

claude-code:opus2026-09-22

Brands this answer named
  • SEC XBRL API (data.sec.gov)
  • Microsoft Excel
  • Bloomberg
  • FactSet
  • S&P Capital IQ
  • Microsoft Power Query
  • Screener.in is not here

Act oneYou cannot see it happening

Search could be counted. An answer cannot.

  1. 01

    Search could be counted

    Ten ranked links, a position you could track, and a visit that arrived with a referrer attached. Every part of that loop was countable.

  2. 02

    An answer replaces all of it

    The assistant reads the pages for your buyer and writes one paragraph naming two or three products. No list, no position, and usually no click.

  3. 03

    Nothing tells you when you are left out

    A rank tracker watches a page your buyer never opened. Analytics can only count visits that happened. The answer that omitted you sends nothing at all.

  4. 04

    So put the question yourself

    CiteGEO asks the models what your buyers ask, keeps every answer whole, and links every figure back to the sentence it was counted from.

Act twoSo look at it directly

Every answer, kept whole.

Not a score with the working thrown away. One card for each answer a model gave, with the question that produced it, the brands it named, and the sentences themselves.

What you get

Measurement you can argue with.

A score with no components is a story. Every figure here carries the counts it was built from and the answers underneath them.

Visibility score
Presence, prominence and sentiment, always shown with the weights that made the composite.
Share of voice
Every brand named, run over run, with the standings beside the chart instead of a colour key.
Topics by competitor
A grid of every topic against every rival, three levels deep, down to the individual question.
Citation gap
The pages models cite for your topics that are not yours. That list is the work.
Prompt volume
How often anyone actually asked something like your tracked question, counted in an openly licensed corpus.
AI crawler analytics
Which crawlers reached your site, and the three states a frequency chart hides.

The one rule

An absence is reported as an absence. Never as a zero, never as a default, never as a plausible looking value. If a number cannot be derived from stored evidence, the interface says so in words.

Plain answers

GEO, AEO and AI visibility.

The terms are new and used loosely. Here is what each one means and how this tool treats it.

What is generative engine optimization?

Generative engine optimization, or GEO, is the work of getting a brand named, described correctly and cited when an AI assistant answers a buyer's question. It replaces the ranking position of search with a different unit: were you in the answer at all, how early, and on whose authority.

How is GEO different from SEO?

Search optimization competes for a position on a results page. GEO competes for a mention inside a generated answer, where there is no page and no position. The inputs overlap, because assistants cite the open web, but the measurement does not. There is no rank to read, so you have to ask the models and record what comes back.

Is answer engine optimization the same thing?

Close enough to treat as one job. Answer engine optimization, or AEO, is the older term and still the more common one inside marketing teams. Generative engine optimization is now the more searched one. CiteGEO measures both the same way.

How do you measure AI visibility?

By asking. CiteGEO sends your approved questions to each model you configure, reads every brand named in the answers, and reports how often you were named, how early you appeared, and whether you were recommended or listed. Each figure links to the answers behind it.

Which AI models does it track?

Any model reachable through OpenRouter, the OpenAI, Anthropic, Google Gemini, Perplexity and DeepSeek APIs, Azure OpenAI, or an OpenAI compatible endpoint such as a local gateway.

Does my data leave my machine?

No. CiteGEO is self-hosted. The only outbound requests go to the model APIs you configure, the sites it reads to build a profile, and any integration you connect.

Act threeThen change what it reads

An answer is assembled from pages somebody already wrote.

A model with search on does not invent the shortlist. It reads the open web and returns the pages it used. You cannot edit the answer, but you can change what it reads, and that list is the only actionable thing in this whole category.

The answer

Three names, one paragraph, no list and no position.

Sources it returned
  • a forum thread comparing the tools
  • a roundup post naming five of them
  • a documentation page
  • one of your own pages

CiteGEO keeps the sources a provider returns apart from URLs that merely appear in the answer text, because the two are not the same evidence. It then lists the pages cited for your topics that you do not own. Where a model answered without search it says no source was carried, rather than drawing an empty chart.

Self-host

Four commands
and it is yours.

You hold the provider key, you pay the provider directly, and the answers stay on your disk. CiteGEO adds no cost of its own and sends nothing anywhere except to the APIs you configure.

Get the source
$ git clone https://github.com/ankit373/citegeo
$ npm ci
$ cp .env.example .env
$ npm run server

listening on http://127.0.0.1:8787