Why AI answers cite someone else
What we are solving
Section titled “What we are solving”You ask an assistant the question your product answers. It names a few sources. You are not one of them.
A search page has ten slots and a scroll below them, so even from a weak position a reader can still find you there. An answer has room for three or four sources, and if you are not one of those, you are simply absent.
Here is one on a query my own bot answers:
Two sources, and one of them is a forum thread: the assistant put somebody’s Reddit post next to a product blog. My own site is in neither slot. Read on 13 August 2026.
The paper that named this problem is GEO: Generative Engine Optimization (Aggarwal et al., 2023). The authors rewrote existing pages, added none, and report up to 40% more visibility for a source inside the generated answer on GEO-bench. The work is one thing: arranging facts you already have so a model can lift them.
What the model reads before it decides to quote you
Section titled “What the model reads before it decides to quote you”The heading asks the question and the next two sentences answer it. That is the whole rule. I break it every time I start a page with context.
A model reads your intro and decides whether there is anything here worth carrying into an answer. A person who arrived from search reads background before the answer as no answer at all, and a model reads it the same way.
Whether a paragraph survives being cut out of the page
Section titled “Whether a paragraph survives being cut out of the page”An assistant quotes a passage, not a document, so every paragraph has to name its own subject and stand up without the one above it. Keep it short and do not open with a pronoun.
The test takes ten seconds. Paste one paragraph into an empty note and read it, and if you cannot tell what it is about, a model cannot either.
Inside the paragraph there has to be something hard: a number, a date, a proper name, a version. “Many teams” cannot be quoted. A measured value with its date can, and that is the sentence a person screenshots.
Where the figure does not exist yet, measure it or drop the sentence. “Most”, “often” and “significantly” carry nothing into an answer.
The one checkable thing that is only yours
Section titled “The one checkable thing that is only yours”Your own benchmark, your own price table, your own failure log — something a reader can go and verify, that nobody else on the results page has.
This is where a source and a summary part company. A page that only restates the field competes with every other restatement, and the older restatement usually wins.
Cutting the document so it segments cleanly
Section titled “Cutting the document so it segments cleanly”Heading levels without gaps. A numbered list where there is a process. A table once three or more options are being compared. Questions make good headings, because a person phrases the query the same way.
Is JSON-LD worth the ten minutes
Section titled “Is JSON-LD worth the ten minutes”Put it in one block in the head: Organization or Person as the entity, Article with an author and a publication date, and sameAs with your profiles and listings.
One job of sameAs is documented: it helps Google resolve entities for its Knowledge Graph, in Google’s own Organization reference. What it does for AI citation, nobody has measured — no vendor statement, no study, no measurement of mine. So it is ten minutes and a defensible bet, not a mechanism.
The model already learned about you somewhere else
Section titled “The model already learned about you somewhere else”Directories, discussion threads, other people’s comparisons. On-page work starts paying only once the model knows you exist as a thing. Recognition comes first, citation second.
What did not work
Section titled “What did not work”- Adding volume instead of a verifiable claim. I made the page longer and the adjectives better, and nothing moved. The answer kept citing the page with the number in it, which was shorter than mine.
- Assuming published pages would carry the product. The pages went up and the signups kept arriving from somewhere else. The exact share belongs on a case page, with its measurement date; I do not have it here.
- Keeping the conclusion for the end. The essay shape buries the answer under the setup, so the only passage anything can extract is the intro, and the intro has not said anything yet.
- Writing FAQ blocks to fill the schema. Questions nobody asked, answered by repeating the paragraph above them. Markup did not make an empty answer worth quoting.
- Sprinkling microdata through the markup. A template change broke it silently and nothing warned me, while JSON-LD in one block in the head has survived every redesign since.
- Selling
sameAsas the thing that merges mentions into one entity a model recognises. That sentence stood here and in the route with no evidence under it. The field has one documented use, Google’s Knowledge Graph. Whether a language model reads it, I do not know — and neither did the sentence. - Opening paragraphs with “It” and “However”. Both words point back at a sentence that will not travel with the quote.
Verify
Section titled “Verify”Run geo-citability from Tools. It scores passages and points at the ones that fall apart out of context, and that is the check I find hardest to run on my own writing.
Then measure presence rather than position:
- Ask your target question in a few assistants, several runs each, because answers are non-deterministic and a single run is an anecdote.
- Record two things per run: whether you are named at all, and whether you are linked as a source, because being named and being linked are different levels and they move separately.
- Track the trend across runs and weeks. One snapshot tells you nothing about which way it is going.
- Watch analytics for referrals from assistant hosts. A referral proves you were cited and read. It says nothing about ranking anywhere.
- Validate the JSON-LD with a structured data test before you trust it.
If no agent shows up in your logs at all, the problem is access and not writing. Start from AI crawlers and llms.txt.
