How we know which sites AI engines cite
2026-08-08 · updated 2026-09-25
Editor's note: updated 2026-09-25 to describe the on-demand API. Geondex no longer runs checks on a schedule or sends email. A check runs when your agent asks for one.
Every person who sees Geondex for the first time asks the same thing, and it is the right question: how do you actually know what ChatGPT said? You cannot look over the shoulder of every user. So where do the numbers come from?
Here is the whole method. There is less magic in it than you might expect.
1. We ask the engines the questions your customers ask
Your agent gives us two things: your domain, and one question. Not a single word, but the kind of full question a real person types: "best carbon table tennis blade for beginners", not "blade". That is the whole input. If you are not sure which questions to ask, Geondex can suggest some for your domain.
When the call comes in, we send that question to each AI engine — Perplexity, ChatGPT, Claude, Gemini and Grok — through its official developer interface, with web search switched on. Nothing runs on a schedule. A check happens only when you ask for one. Searching the web is what these engines do when a person asks the same question, so the answers are a fair sample of what a user would see. They are a sample, not a guarantee: the same question can get a different answer an hour later.
We do not scrape chat windows and we do not automate a logged-in browser. Both are fragile and against the terms of most engines. Everything we read is returned to us officially.
2. We read the source list, not the prose
When an AI engine answers a question using the web, it returns two things: the written answer, and the list of sources it used. That source list is the product. It is where your domain either appears or does not.
We record, for every source in the list:
- Which URL was cited — often a specific page, not your homepage.
- What positionit held in the engine's source list. A source near the top is more likely to be read than one near the bottom.
- The page title, when the engine returns one.
We also keep, for each engine:
- A short excerpt of the answer, so you can see what the engine said around the sources — enough to tell a main recommendation from a passing mention.
3. We clean up the URLs before counting
This step is boring and it matters more than it sounds. The same page can be cited as example.com/blog, https://www.example.com/blog/, or https://example.com/blog?utm_source=chatgpt. Counted naively, one citation looks like three.
So before anything is counted we lowercase the host, drop a leading www., remove tracking parameters, and convert international domain names to one standard form. When we decide whether you were cited, we match on the host, so all three spellings count as your domain. Without this, every number above it is wrong.
4. We compare this check against your last one
A single measurement is nearly useless. "You are cited for 2 of 12 questions" tells you almost nothing on its own. What you need is the change.
So every check is stored. When your agent asks the same question about the same domain again, the answer comes back with a comparison against your last identical check, engine by engine:
- Gained — an engine started citing you for a question it did not before.
- Lost — it stopped. Usually because someone else took the slot.
- Moved — you are still cited, but higher or lower in the list.
There is no scheduler and no alert email. You decide when to look — after you publish something, for example — and the change comes back with the answer. Earlier checks are free to read back at any time.
This is what makes the tool useful rather than merely interesting. You publish something on Tuesday; the following week you run the same check and an engine now cites that page. You now have a dated link between a change you made and a result.
5. We record who is cited instead of you
When the answer does not include you, it includes somebody. Those domains are the most useful thing on the page. They are a list, ranked by the engine itself, of the pages that currently answer your question better than yours does.
You can open them. You can see the format, the depth, the structure. That is a far more concrete instruction than any generic optimisation advice.
What we deliberately will not tell you
We can prove that a citation appeared after you did something. We cannot prove your change caused it — nobody outside the engine can, and any tool claiming otherwise is guessing. Retrieval changes, competitors publish, indexes refresh. We show correlation with dates attached and label it as correlation.
We also will not tell you that adding a piece of markup to your page will get you cited. Structured data helps machines read a page; it is not what earns the citation. The evidence points at being mentioned and linked on other sites people already trust. That is slower and less comfortable than a checklist, which is probably why so many tools sell the checklist.
Why this is worth measuring at all
Search used to end with a list of links, and you could see your position in it. Increasingly it ends with a written answer and a short source list. If you are not in that list, the reader never learns you exist — and, unlike a ranking drop, nothing in your analytics tells you it happened. There is no impression count for an answer you were left out of.
That silence is the actual problem. Measuring it is the first step to doing something about it.
If you want to see it on your own site, connect your agent through the MCP server, or try a call in the API console. A good first step is the free AI crawler check: it reads your robots.txt and tells you which AI crawlers it allows. If the engines are blocked from fetching your pages, nothing else matters yet.
See this on your own domain.
Ask your agent to put the same question to Perplexity, ChatGPT, Claude, Gemini and Grok, and see who they cite. 500 free credits every month.