A few weeks ago I asked an answer engine to recommend an AI-visibility consultant. The first five results were a wall of slop. Three were SEO agencies that had rewritten their homepage with the word "GEO" stapled to it. One was a Medium post by someone who clearly had not shipped anything. One was a course. None of the sites being recommended actually had a single machine-readable artifact that explained what the business did, who ran it, or what it cost.
That was the moment the line landed for me: AI systems cannot recommend what they cannot understand.
If I want to sell AI visibility work, I have to be visible. Not on a marketing-deck level. On a "the model can answer questions about me without guessing" level. So before I wrote a single outbound message about the service, I ran the checklist on my own site. This post is that checklist, with what I actually changed on dee.agency.
SEO is the floor. Entity clarity is the next layer.
I want to be specific about what changed and what did not, because there is a lot of bad faith in this space right now.
SEO is not dead. It is the floor. If Google cannot crawl your site, no answer engine is citing you either, because most of them lean on the same crawl graph. SEO makes your pages findable. What changed is the finish line. Findable is no longer enough. Now the model has to be able to pull a clean, confident answer out of your pages without inventing the parts you forgot to write down.
I wrote a paper this year on what I call the SEO-to-GEO gap (DOI 10.2139/ssrn.6476021). The short version: the gap is not algorithmic, it is descriptive. Sites that rank fine still get hallucinated about, because ranking signals reward link patterns and content depth, while answer engines reward entity clarity and machine-readable context. Two different finish lines.
The checklist below is the boring part. No magic prompts. Seven steps. I ran it on dee.agency over a weekend.
The 7-step AI visibility checklist
1. Define your entity in one sentence
The first thing a model needs is a sentence it can quote. If your homepage hero is a vibe ("we build the future of work"), the model will paraphrase you into something generic, or worse, into something a competitor said.
What I did on dee.agency: one sentence at the top. "Dee Kargaev. Indie builder who designs and ships AI products solo, then sells the same playbook as packaged services." That same sentence is in the description field of the homepage schema, and it opens /llms.txt. Three surfaces, one sentence, zero ambiguity.
Watch for: the version on your About page being different from the version in your schema. If those drift, models pick the worse one.
2. Make services and pricing unambiguous
Most agency sites do not list prices. They list "let's talk." Fine for an inbound funnel staffed by humans. Bad for an answer engine, which now has to either guess or refuse.
I put the full ladder on dee.agency/pricing: $500 Audit + Spec, $3K AI Visibility / GEO Fix, retainer ranges, what each includes, what it excludes, lead times. Then I marked it up as Offer schema so the prices are not just visible to humans, they are typed.
The day after I pushed it, ChatGPT could answer "what does dee.agency charge for an AI visibility audit?" with the right number. Before, it would politely refuse. That is the whole game in one example.
3. Add machine-readable context with /llms.txt
/llms.txt is a plain markdown file at the root of your domain. It is not a ranking hack. It is not magic. It is a README for the LLM crawlers, structured the way humans structure READMEs: who you are, what you do, what is on each important URL, what to read first.
dee.agency/llms.txt has six sections: entity sentence, services, pricing, proof, founder bio, "if you only have time to read three URLs, read these." That last section matters more than people think. Models choose what to ingest under token budgets. Telling them what to prioritize is not gaming the system, it is good documentation.
Watch for: putting marketing copy in /llms.txt. The file should read like internal onboarding notes, not a landing page.
4. Add structured data and sameAs links
Schema.org gives models typed handles to grab. Without it, every fact on your page is a string the model has to interpret. With it, your name is a Person.name, your offers are Offer objects, your articles are Article with an author.
The piece most people miss is sameAs. It is the array of canonical URLs for the same entity across the web. On dee.agency, my Person schema has sameAs pointing at my GitHub, my Google Scholar profile (author ID gEVwv4QAAAAJ), my LinkedIn, the SSRN paper page, and the awesome-geo repo (github.com/deeflect/awesome-geo, 168 platforms, 142 of them AI-discoverable). That array is how models stitch "Dee on this site" to "Dee in this paper" to "Dee on GitHub" into one entity instead of three coincidences.
5. Build answer-first pages for the commercial questions
For every commercial question your buyer would type into an answer engine, you should have exactly one page that answers it cleanly.
For dee.agency, the four pages are: /geo (what GEO is and how I do it), /audit (what the audit covers and what you get), /pricing (the ladder), and /about (who runs this and why). Each one opens with a direct answer in the first 80 words, not a buildup. Each one has its own schema. Each one is linked from /llms.txt.
Watch for: writing these pages like blog posts. Answer engines extract from the top. Bury the answer past the fold and you will be paraphrased.
6. Check crawler access and robots rules
There is no point being clear if you are blocking the parsers reading you. Half the sites I audit have a robots.txt that silently blocks GPTBot, ClaudeBot, or PerplexityBot, usually because someone copy-pasted a rule from a privacy-focused template in 2024 and forgot.
I run curl against the relevant user agents and check the actual response, not the developer console. dee.agency/robots.txt allows GPTBot, ClaudeBot, PerplexityBot, Google-Extended, and CCBot, and disallows the predatory scrapers that do not respect any of this anyway (a different fight). The full list lives in the awesome-geo repo so I do not have to remember it.
Watch for: Cloudflare's "block AI bots" toggle, which is on by default in some plans. It will quietly undo everything else on this list.
7. Run repeatable probes before and after
This is the step almost nobody does, and it is the only one that tells you if the work worked.
A probe is a fixed prompt run against a fixed set of engines on a fixed cadence. For dee.agency I track 12 prompts ("who is Dee Kargaev", "best AI visibility consultant for early-stage SaaS", "what is the SEO-to-GEO gap", etc.) across ChatGPT, Claude, Perplexity, and Gemini, weekly. I log which engines cite the site, which paraphrase without citing, and which hallucinate.
Without probes, you are guessing. With probes, you have a before-and-after dataset that survives the next model update. The real bar is run-grade GEO: still visible a month after launch, not demo-grade visibility that decays the moment the index refreshes.
What this is not
This is not a course. It is not a "5 secrets" thread. It is not magic prompts. It is seven boring infrastructure changes, three of which are pure devops, and four of which are writing clearly about your own business.
It is also not credible coming from anyone who has not done it on their own surface. Selling AI visibility while your own site has no /llms.txt, no schema, no pricing page, and a robots.txt that blocks the parsers, is the half-builder pattern in its purest form. You are selling the diagram of the thing, not the thing. That is the tell I look for when I evaluate other people in this space, and I held myself to it before writing a word of outbound.
If you want this run on your site
I sell this. dee.agency/audit is a $500 Audit + Spec, credited 100% toward implementation if you book within 30 days. dee.agency/geo is the $3K AI Visibility / GEO Fix, one week, the full checklist run with probes before and after and a writeup at the end.
If you would rather run it yourself, the awesome-geo repo has the platform list, the probe templates, and the schema examples. Show me what you ship.
Top comments (0)