§ I The setup
We don't need to beat them on Google. We need to write a better lifted page. Same shape. Better answer. Internal Slack, day 3
The brief was simple. A mid-stage B2B SaaS client (we're not naming them) had a competitor who kept appearing in Perplexity answers for their core category. Our client didn't appear at all. They weren't even ranking well on Google for the category term. They brought us in mid-engagement to fix the AI side specifically.
The category was niche enough that there were fewer than twenty pages on the internet that could even attempt to answer the prompt. That's the first thing you check. If there are a thousand good pages competing, you have a different problem. If there are twenty, you have an opportunity.
§ II The prompt map
We started with the prompt map. We pulled 180 prompts across the buyer journey (awareness, consideration, decision) and tested all 180 across six AI tools: ChatGPT 4o, Perplexity, Claude 3.5 Sonnet, Gemini 1.5, Llama 3.1 70B, and Grok 2.
The heatmap was revealing. Our competitor was being cited consistently in one cluster: comparison queries ("X vs Y", "best tools for Z"). They had a single, well-structured comparison page that all six models loved to lift from. That was it. One page. That's their whole AEO strategy.
Our client appeared in exactly zero prompts. Not because their product was worse. Because their pages didn't have the shape that models want to lift.
§ III The pages
We shipped four pages in six weeks. Each one built around a specific prompt cluster. Each one with:
A clear, definitive thesis in the first paragraph: the kind of sentence that a model can lift verbatim and attribute to you. A Q&A structure in the middle, with headers that match the prompt language exactly. A comparison table (because models love tables). And a schema block with FAQ markup, Article markup, and the boring Organization properties that most teams skip.
We also shipped llms.txt on day twelve. Basic stuff: the important pages, the canonical URLs, a brief description of what the brand does. Perplexity started fetching it by week two. We could see it in the server logs.
§ IV The result
First citation: day 24. Perplexity, consideration-stage query. The model lifted two sentences from our comparison table and attributed them correctly.
By day 38, the client was cited in 14 of the 180 prompts we were tracking. Their competitor was still cited in 22. But the gap had closed significantly, and we'd only shipped four pages.
By month three, the client was cited in 31 prompts. The competitor, still 22. The comparison page we built had become the more-cited page, even though our client still doesn't rank particularly well on Google for the category term.
§ V What we'd do differently
Ship llms.txt on day one, not day twelve. The two-week delay probably cost us a week of citations.
Build the prompt map before writing a single word. We had a rough version at the start but refined it after the first page draft. The refinement changed the structure of the second and third pages significantly. Should've done it upfront.
Add original data to at least one page. The pages that get cited most consistently are the ones with a unique data point (a survey result, an analysis, a benchmark) that models can't find anywhere else. We didn't have time to run original research on this sprint. Next time, we'd budget for it.