A growing share of commercial questions now get answered without a click. Someone asks an assistant, gets a synthesised answer with a handful of citations, and either follows one or does not. If your pages are not the ones being cited, you are invisible in that entire interaction.
This is what people mean by generative engine optimisation. Most of it is not new, and none of it is a trick.
How assistants pick sources
Broadly, three things decide it:
- Whether you rank at all. Most assistants retrieve from conventional search results before summarising. Classic SEO is the entry ticket, not a separate discipline — the groundwork is in the technical SEO checklist.
- Whether your page answers the question directly. A model extracting an answer needs a passage that is the answer, not a page that eventually arrives at one.
- Whether the claim is specific enough to attribute. “We deliver excellent results” cannot be cited. “Merging thin pages usually improves rankings” can.
First, check you are not blocking them
This one is worth thirty seconds because it silently undoes everything else. Some security plugins, CDN bot rules and copied robots.txt files block AI crawlers by default — including the ones that fetch pages in order to cite them.
curl -s https://yoursite.com/robots.txtThe names change, so check current documentation rather than trusting a list, but as of writing the ones that matter split into two jobs:
| Agent | Roughly |
|---|---|
GPTBot | OpenAI crawling, largely for training |
OAI-SearchBot, ChatGPT-User | Fetching to answer and cite — blocking these costs citations |
ClaudeBot | Anthropic’s crawler |
PerplexityBot | Perplexity’s index |
Google-Extended | Google’s AI training control — does not affect normal Search |
Training and citation are separate decisions. It is entirely reasonable to disallow training crawlers while allowing the ones that fetch a page in order to link to it. Blocking everything with one broad rule is a choice many sites have made by accident, then wondered why they are never cited.
Also check at the edge, not just in the file — a WAF or bot-protection rule can return 403 to these agents while robots.txt says they are welcome.
Write answer-first
The single highest-impact change. Under every heading that poses a question, answer it in the first sentence, then explain.
| Unciteable | Citable |
|---|---|
| “There are many factors that influence WordPress performance, and understanding them requires context…” | “Slow WordPress sites are most often caused by the database, not the front end.” |
| “Backup strategy depends on your needs.” | “A backup is only real once you have restored it — test one quarterly.” |
| “Redirects are an important part of any migration.” | “Redirect each old URL to its closest equivalent, never to the homepage.” |
The right-hand column can be lifted and attributed. The left cannot. Note that it is not about length — it is about whether the sentence carries the claim on its own.
Be specific, and be willing to be wrong
Vague copy is unciteable copy. Replace adjectives with facts:
- “Fast” → the actual metric, and what it was before
- “Experienced” → years, project count, what kind of work
- “Affordable” → a range, or the model you price on
- “We work with many platforms” → name them
Specific claims are commitments. That is exactly why they carry weight, and why so few pages make them.
Structure that survives extraction
Assume any section could be pulled out on its own, without the rest of the page.
- Descriptive headings that state the topic, not clever ones
- Short paragraphs — one idea each
- Lists and steps where the content genuinely is a list or a sequence
- A summary near the top for anything long
- Tables for comparisons, which models parse very reliably
- Self-contained sections — “as we saw above” breaks when the section travels alone
Structured data that matches the page
Schema helps machines understand what a page is about. Organization, Service, Article, FAQPage and BreadcrumbList all do useful work.
One FAQ entry, in the page head
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "How long should a WordPress backup be kept?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Keep at least 30 days of versioned backups, so a problem you did not notice for a week is still recoverable."
}
}]
}
</script>The rule people break: your FAQ schema answers must match the visible text on the page exactly. Schema that says something the page does not say is a guidelines violation, and it is the single most common structured-data mistake we find.
Validate before you ship — Google’s Rich Results Test and the Schema.org validator both catch the errors that make markup silently ignored.
Be clear about who you are
Models need to know what entity your site represents before they will attribute anything to it. That means a consistent organisation name everywhere, an About page with real people and real credentials, matching details across your site and your third-party profiles, and named authors on articles.
Anonymous content from an unclear entity is exactly what a system trying to attribute a claim will skip.
What gets cited most
In our experience, roughly in this order:
- Direct answers to specific questions — the FAQ format works because it matches how people ask.
- How-to content with real steps, especially with an order and a reason for it.
- Comparisons — “X vs Y”, where the page is honest about both.
- Definitions of terms in your field.
- Original data, which is the hardest to produce and the most valuable.
Sales pages are cited least. Guides are cited most — which is why a services page and a blog do different jobs, and why you need both.
Auditing your own pages
Two checks that take a minute and find most of the gaps:
# Which published entries have no FAQ markup and no question headings?
wp eval '
$ids = get_posts( array( "post_type" => array( "post","page" ), "numberposts" => -1, "fields" => "ids" ) );
foreach ( $ids as $id ) {
$c = get_post_field( "post_content", $id );
if ( false === strpos( $c, "?</h" ) && false === stripos( $c, "FAQPage" ) ) {
echo get_permalink( $id ) . "\n";
}
}'# Are the AI agents actually getting a 200, or is the edge blocking them?
curl -s -o /dev/null -w '%{http_code}\n' -A 'OAI-SearchBot' https://yoursite.com/
curl -s -o /dev/null -w '%{http_code}\n' -A 'PerplexityBot' https://yoursite.com/Measuring it
Attribution is genuinely immature here, and anyone selling you a precise number is guessing. What you can do today:
- Watch for referral traffic from assistant domains in analytics — it is small but it is real, and it converts unusually well.
- Periodically ask the major assistants the questions you should be the answer to, and note who they cite instead. That list is your competitive research.
- Track branded search volume, which tends to rise when you are being mentioned without a link.
- Check your server logs for the agents above — being crawled is the precondition for being cited.
A closing caution
None of this is a hack, and anything marketed as one is likely to age badly. The pages that get cited are clear, specific, honest, well-structured and worth citing. That has been good writing advice for a long time — the difference is that now there is a second audience reading it.
Where to find the questions you have not answered yet: the ones visitors type into a chat on your own site. Askora answers only from your published pages and reports every question the content could not answer — which is the same list an AI search engine cannot cite you for.
Common questions
Should I block AI crawlers?
It depends what you sell. If your content is the product, blocking training crawlers is defensible. If you want customers to find you, blocking the crawlers that fetch pages to cite them removes you from the channel entirely. Decide the two separately.
Does this replace SEO?
No. Assistants overwhelmingly draw from what already ranks, so this is a layer on top of conventional SEO rather than an alternative to it.
How long until I see citations?
Slower than search. Pages need to be crawled, indexed and then chosen, and the systems that do the choosing update on their own schedule. Treat it as a quarter, not a week.
Does adding FAQ schema everywhere help?
Only where there is a genuine question and a genuine answer visible on the page. Marking up invented questions is a violation, and it tends to get the markup ignored across the whole site rather than just that page.
