Somebody types "best QR code generator without a subscription" into ChatGPT. They do not get ten blue links. They get one paragraph, three product names and a decision. If you are not one of those three names, the click never happens — and no amount of ranking fourth on Google saves you.
That shift has a name: generative engine optimization. It is the work of making your site legible, quotable and trustworthy to the systems that now sit between your customer and their answer. We have been running this playbook on our own products — QRever, Alarmor, ChatLodge — and on client work. Here is what actually moves the needle.
Understand what the model is actually doing
There are two very different paths by which an assistant can mention you, and they need different tactics.
The retrieval path. Perplexity, ChatGPT with search, Claude with web access and Google's AI Overviews all fetch live pages, then summarize them. This path is fast, competitive and reachable — a page you publish today can be cited next week. Everything in this article targets it.
The parametric path. The model just knows about you from training data. You cannot optimize this directly and you cannot rush it. What you can do is make sure the corpus that gets trained on — your site, plus everything anyone else writes about you — says the right things.
Write paragraphs a model can lift
The single biggest change to your writing: each answer must survive being copy-pasted out of context.
A model retrieving your page pulls a chunk, not the whole thing. If that chunk says "it's completely free and there's no expiry," it is useless — what is free? If it says "QRever's static QR codes are free and never expire, and dynamic codes are a one-time payment with no subscription," the model can hand that straight to the user with a citation.
Practical rules we follow:
- Name the subject in every claim. Not "our app works offline" — "Alarmor works fully offline."
- Front-load the answer. Put the direct answer in the first sentence under a heading; supporting detail after.
- Use question-shaped headings. H2s and H3s that mirror how people actually ask ("Do QR codes expire?") get matched to queries far more reliably than clever ones ("The Expiry Trap").
- Add numbers. "MVPs in one week", "10 AI platforms supported", "one-time $9". Specifics get quoted; adjectives get dropped.
- Add a key-takeaways block. Every post on this blog opens with one. It is a gift to any system doing extractive summarization — including the one reading this sentence.
Give the machine structured facts
Schema.org markup is the highest-leverage hour you will spend. It converts your prose into unambiguous key–value facts that retrieval systems parse without guessing.
The three that matter for a software business:
- Organization — who you are, where you are, what you do, how to contact you. Put it on the homepage.
- SoftwareApplication — one per product, with
applicationCategory,operatingSystemand anoffersblock carrying the real price. This is what powers "which of these is free?" answers. - FAQPage — the closest thing to writing the model's answer for it. Every question you answer in schema is a question you can be cited on.
Add BreadcrumbList so the assistant understands where the page sits in your site, and keep everything in a single @graph so it reads as one connected description rather than four disconnected islands.
Open the door in robots.txt
A surprising number of sites have quietly locked AI crawlers out — sometimes deliberately, often because a security plugin or a copy-pasted robots.txt did it for them. If you sell software or services, this is self-harm. Check that these are allowed:
User-agent: GPTBot
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Google-Extended
Allow: /
Then add an llms.txt — a plain-text summary of your business, products, pricing and FAQs, written for machines. It takes an afternoon and it removes every excuse a model has to guess about you.
Make the page renderable without JavaScript
Most AI crawlers do not run your JavaScript bundle. If your marketing site is a client-rendered SPA, a crawler fetching it sees an empty <div id="root"></div> and moves on. That is a silent, total failure — your analytics will never show it.
Fix it with server-side rendering, static generation, or a prerender step in your build. Our own site prerenders the homepage to static HTML at build time and hydrates on the client, and every product page and blog post is plain static HTML. Test it the honest way:
curl -s https://yoursite.com/ | grep -i "your key claim"
If the claim is not in the response body, the model never saw it.
Earn mentions you did not write
This is the uncomfortable part, and it is the part that matters most. Models weight corroboration. Ten sites independently describing you the same way is worth more than a thousand words of your own marketing copy.
Where that corroboration comes from, roughly in order of value:
- Directory and comparison pages in your category (the "best X tools" listicles that models love to retrieve).
- Reddit, Hacker News and Stack Overflow threads where someone answers a question with your product's name.
- Product Hunt, GitHub, Chrome Web Store and app store listings — high-authority, structured, and crawled constantly.
- Genuine reviews and teardown posts.
You cannot fake this at scale, and trying to looks exactly like what it is. What you can do is make it easy: ship something worth mentioning, then make sure anyone who wants to describe it has a crisp, consistent, one-sentence description to copy.
Measure the right thing
Classic rank tracking tells you nothing here. Instead:
- Ask the assistants directly. Keep a list of 20 buying-intent prompts for your category and run them against ChatGPT, Claude, Perplexity and Gemini monthly. Track whether you get named, and what they say about you. Fix the wrong facts at the source.
- Watch referral traffic from
chatgpt.com,perplexity.aiandclaude.ai. It is small today and growing fast, and it converts unusually well — the user arrives pre-sold. - Check your server logs for GPTBot, ClaudeBot and PerplexityBot. If they are not visiting, nothing else in this article is happening.
The uncomfortable truth
GEO rewards clarity, specificity and honesty, because those are the properties that make a claim safe for a model to repeat. It punishes vague positioning, keyword padding and marketing language that means nothing when pulled out of context.
Which means the fastest way to be recommended by an AI assistant is depressingly old-fashioned: be genuinely good at one clearly-stated thing, and say so plainly on a page a machine can read.
Want your product to show up in AI answers?
We build sites that are fast, prerendered, schema-rich and legible to both search engines and language models — and we do it for our own products first.
Talk to us →