How do you get recommended by ChatGPT and other AI assistants?
Not by putting an instruction anywhere, because no such file exists. Retrieval pipelines treat fetched page text as data rather than as instructions — that is precisely what their prompt-injection handling is built to defeat — so nothing you write on your own site tells a model what to conclude. What determines whether you get named is mechanical and happens in a strict order: be fetchable by the crawler, be resolvable as one unambiguous entity, be extractable as self-contained passages, and be corroborated somewhere that is not you.
Being fetchable is the step that is actually failing
It is also the one nobody checks correctly. The block is keyed on the user agent, so it is invisible from a browser and invisible to every tool that only reads robots.txt. A CDN rule is a wall that matches before your server is ever consulted; robots.txt is a request your server makes politely.
The way to know is to send each crawler’s real user agent and read the status code. Doing that on our own domain found ten of thirteen answer-engine crawlers being refused at the edge while every browser, and every Google tool, reported a perfectly healthy site.
What schema markup does and does not do
It makes you unambiguous once found. Structured data turns a page of prose into a node in a graph with a stable identifier, so a consumer can decide that the company in the answer, the company on the profile and the company on the review site are one thing. Ambiguity is what gets you left out — not a missing superlative.
It does not cause a recommendation, and markup that does not represent what a visitor sees is a policy violation with a manual action attached, which costs the ordinary search traffic you already have. Anyone selling schema as the thing that makes an assistant recommend you has not read the citations.
What the citations actually looked like
We ran three real buying questions through an assistant with web search on and read every source it used. Twenty-six citations across twelve domains, and every cited page was a competitor’s own ranking article on their own domain. No forums, no review aggregators, no encyclopaedia.
The conclusion is unglamorous and useful: in this category the model reads whatever page answers the question and repeats what it says. If the only pages answering it belong to your competitors, the answer is assembled from your competitors. Two of those three questions returned no vendor at all, which is the more valuable finding — a question nobody has answered is worth more than one everybody is fighting over, and no keyword tool surfaces it because it is not a ranking.
What to do about it, in order
- Send every retrieval crawler’s real user agent at your own site and read the status code. Fix anything that is not a 200 before doing anything else.
- Publish one unambiguous entity: one canonical host that serves a 200, one description, one set of profiles that are demonstrably you.
- Write the answer to each buying question as a complete passage that stands on its own, under a heading shaped like the question.
- Say plainly what you do not do. A source that states its own limits reads as a source, and it is what stops an assistant guessing wrong about you.
- Get corroborated somewhere that is not your own domain.
What this does not claim
- There is no file, tag or markup that instructs a model to recommend you. Any product sold on that premise is sold on something that does not exist.
- None of this is a ranking guarantee. It removes the reasons you are excluded; it does not decide what an assistant concludes.
- Opernox monitors answer-engine visibility and generates the structured data and crawler access a site needs. It does not place you on anybody else’s page.