Cited

You can rank #1 and still not be in the answer.

Buyers ask an assistant before they ask Google. Ranking and citation have come apart — the pages a model names are often nowhere near the organic top ten. This checks the only thing that matters now: when someone asks ChatGPT, Claude, Perplexity or Gemini the question your buyer actually asks, does your product get named, where in the list, and with a link back to you?

Start a check How keys are handled

no account · no server · zero API keys in paste mode · MIT licensed, source on GitHub

centre = your brand · each ring = one engine · each point = one buyer prompt
0 cited
Step 1

Who the model should be naming

Aliases matter. Models write “Acme Billing”, “Acme.io” and “acme” in the same answer.

Step 2

The questions your buyer asks before they ever see your pricing page

Keywords are short. Prompts carry the buyer, the constraint and the stack. Fill the blanks and generate a starter set, then edit freely.

10 max · one per line
Step 3

Pick how the answers get collected

You ask the question in the real consumer apps — the same ones your buyer uses — and paste the answer back. Nothing is sent anywhere, and you get the personalised, logged-in answer an API would never show you. Open the grid below, click any square, copy the prompt, paste the reply.

Step 4

The answer grid

One square per prompt per engine. The number is a 0–100 visibility score: being named at all is most of it, then how early you appear, whether your domain is linked, and how the answer talks about you.

named weak absent not checked

Add a brand and at least one prompt to build the grid.

Step 5

What the grid says

visibility score
—
Nothing checked yet.
Answers checked0
Named in0
First name in the list0
Your domain linked0
Share of the conversation0%
who the models name instead

Run a check to see the leaderboard.

sources the answers leaned on

Domains found inside the answers show up here — this is the third-party layer worth winning.

Step 6

The fix, generated from what you entered

A missing square is usually one of three things: the crawlers are blocked, the page buries the answer, or nothing on the page is extractable as a fact. These are the files that fix the first two.

llms.txt

Fill in step 1 and 2.

robots.txt — let the answer engines in

Fill in step 1 and 2.

Schema for your comparison page

Fill in step 1 and 2.

Answer-first page skeleton

Fill in step 1 and 2.
Before you paste a key

Fair question: why would you trust an unknown page with an API key?

You shouldn't, on trust alone. So the answer here is that you don't have to take anyone's word for it — six ways down, in order of how paranoid you want to be.

Every line of this page is public.
MIT licensed, built in the open, deployed straight from the repo — so what you are running here is traceable to a commit you can read.

Use no key at all

Paste mode scores the answers you collect by hand. Every number on this page works without a key — and it reads the logged-in consumer answer, which is closer to what your buyer sees than an API response.

Take the page off the internet

This is one HTML file with no build step and no backend. Save it, open it from your own disk, and the "site you don't know" is now a file you own. Nothing about it changes.

Read it in a minute

The repo is public and the whole app is one unminified file. Search it for fetch( — four call sites, all named below, no bundler hiding them. Diff the commit against what your browser received.

Let the browser enforce it

The file ships a content security policy that allows exactly four network destinations. If this page tried to post your key anywhere else, Chrome would refuse the request, not ask permission. Search the source for Content-Security-Policy.

Watch every request live

Every outbound call is logged below as it happens, with its destination and size. Calls to anything not on the allowlist are refused in code and logged in red before the network is touched.

Make the key worthless

Cut a fresh key with a $1 cap, run the check, revoke it. Ten minutes of exposure on a key that can spend a dollar is a different risk from your production key, and it costs you one click.

Network log

allowlist: 4 hosts
No requests yet.

If your policy says keys never touch a browser

Deploy this on your own domain, put the real key in an environment variable, and point the endpoint field at your worker. The page then never sees a secret at all.


        
Free, and staying free

Help me build more free tools

AEO trackers charge $99 a month for a version of this. Cited is free, open source, and has no paywall coming — no upsell screen, no seat limits, no "contact sales" tier. If it saved you a subscription, a tip funds the next tool. If it didn't, use it anyway and tell someone it exists.

scan to send
Tron
Check the network matches before you send. Tokens sent on the wrong chain cannot be recovered by anyone, including me.
Star the repo
Costs nothing, and it is how the next person finds this.
Open an issue
A bad score you disagree with is the most useful bug report there is.
Send it to a founder
Most teams have not checked once. The grid makes the point faster than any thread.
KS
Kartikeya Saran
built Cited · ships in the open

I build small, single-file tools that run without a backend — the kind you can read end to end, host yourself, and keep using after the company behind them loses interest. Cited is the first one. There will be more.

building next
Weekly snapshots with week-over-week diffing, prompt packs by category, and a competitor grid so you can run the check on someone else's brand.