What is AEO, and how is it different from SEO?
Answer engine optimization is about being cited inside AI answers, not ranking as a link. What changes versus SEO, and which signals actually get checked.
Published:
More and more questions now get an answer instead of a list of links. ChatGPT, Perplexity, Claude, Copilot and Google's AI Overviews read pages, put together a reply, and sometimes name the sources they used. Answer engine optimization (AEO) is the work of making your site one of those sources.
This post explains how AEO differs from classic SEO. It also lists the concrete signals our AEO analyzer checks on a page, so you can see what "AI-ready" means in practice.
SEO ranks links, AEO earns citations
Classic search engine optimization is built around a results page. A query returns a ranked list of links, and the goal is to sit as high as you can on it and win the click. The user lands on your page, and your page does the rest.
An answer engine skips that step. It reads several pages, pulls out the parts that answer the question, and writes its own reply. Your page can still matter a great deal, but it shows up as a cited source or a mention inside someone else's text, not as a blue link the user has to choose.
That changes the questions you ask about a page:
- Can the engine read it at all? If its crawler is blocked, or the page forbids snippets, there is nothing for it to quote.
- Does it understand who is speaking? Structured data and clear identity signals tell the engine which organization and which people stand behind the content.
- Is there a clean, quotable answer? Self-contained statements, direct answers to questions and clear structure are easier to lift into a reply than long, vague paragraphs.
- Is the source trustworthy? Engines have to decide whose claims to repeat, so signals of experience, expertise and trust carry weight.
AEO does not replace SEO. A lot of the groundwork is shared: a page that is crawlable, fast, well titled and well structured is a better starting point for both. AEO adds a layer on top that is about machine readability and being a safe source to cite.
What our analyzer checks
The analyzer at aeo.uplo.services is rule-based: it fetches your page and a few files from your site root and checks them against a fixed set of rules. Here is what those rules look at.
Access: robots.txt and page-level directives
The analyzer reads your robots.txt and splits AI crawlers into two groups.
- Answer crawlers fetch pages to answer live questions:
OAI-SearchBot,ChatGPT-User,Claude-SearchBot,Claude-User,PerplexityBot,Perplexity-UserandBingbot. Blocking these is treated as a real AEO problem. - Training crawlers collect content for model training:
GPTBot,ClaudeBot,anthropic-ai,Claude-Web,Google-Extended,CCBotandcohere-ai. Blocking them is a legitimate choice, so the report shows it as information rather than a penalty.
It also flags a site-wide Disallow: /, and Disallow rules that cover
directories needed to render the page, such as /_next, /static, /assets
or /wp-content. A page can be "allowed" and still be unreadable if its CSS
and JavaScript are off limits. If your robots.txt declares Content Signals
(for example Content-Signal: ai-train=no, search=yes), the report shows them
too.
Then it looks at the page itself. A crawlable page can still be closed to
quoting through <meta name="robots"> (or the googlebot and bingbot
variants). The analyzer looks for noindex, nosnippet, max-snippet:0, and
noarchive or nocache.
Discovery: sitemap, llms.txt and markdown
- Sitemap. The analyzer uses the sitemap declared in
robots.txt, or falls back to/sitemap.xml. It flags a declared sitemap that returns 404, follows a sitemap index to its first child sitemap, and counts how many URLs have alastmoddate within the last 90 days. It also uses the sitemap to find your about, FAQ, contact, team, pricing, legal and blog pages. - llms.txt. It checks for
/llms.txt(and/llms-full.txtnext to it) and validates its structure against the llmstxt.org format: an H1 title, an optional>summary,##sections, and lists of markdown links that a crawler can follow. An HTML page served with a 200 status at that address does not count as anllms.txt. - Markdown negotiation. It requests your homepage with
Accept: text/markdownand checks whether the server answers with atext/markdownversion instead of HTML. Since no major answer engine documents this as a ranking factor, it is reported as information only.
Meaning: structured data
The analyzer parses every JSON-LD block on the page, including entities nested
in @graph. Among other things, it checks for:
- JSON-LD that fails to parse;
- an
Organization(or a subtype such asLocalBusinessorCorporation); - a specific type that says what the page is, such as
Article,Product,Service,SoftwareApplicationorFAQPage, as opposed to only the genericThing,WebPageorWebSite; sameAslinks, and whether any of them point to Wikipedia, Wikidata, LinkedIn or a.govor.edudomain;- a person (
author,founder,employeeormember) linked by@idto the organization; - name, address and telephone on the organization;
articleBodyon articles and adateModifieddate;- schema types that are eligible for Google rich results.
Answers: FAQ content
Question-and-answer content maps directly onto the questions people ask, so the
analyzer looks for it in two places. In the HTML, it looks for FAQ markup:
details and summary elements, FAQ-named blocks and FAQPage microdata. In
FAQPage structured data, it checks four things:
- whether the answers also appear in the visible text of the page;
- whether answers are a reasonable length on average (between 50 and 500 characters);
- how many named entities the answers mention;
- whether most questions are phrased the way people ask them, ending with a question mark or starting with words like "what", "how" or "why".
Trust: E-E-A-T signals
The analyzer checks experience, expertise, authority and trust with simple, visible signals:
- Experience: first-person phrasing such as "we tested" or "in our experience", and at least two real images that are not logos, icons or stock photos.
- Expertise: credentials in the text (for example "certified", "engineer" or academic degrees) and a consistent, specific vocabulary.
- Authority:
sameAsdata or links to profiles on LinkedIn, Wikipedia, Crunchbase or Google Scholar, plus links to.govor.edusites or to research sources such as PubMed, arXiv or DOI. - Trust: links to about, privacy and contact pages, a physical address, and HTTPS.
These are weighted differently for informational, e-commerce and business pages, because a product page and a guide earn trust in different ways. On Ukrainian pages, the phrase and keyword checks use Ukrainian vocabulary instead of English.
Content and quotable structure
- Depth. Words are counted in the main content only, leaving out
navigation, header, footer and sidebars. Pages under 300 words are flagged as
thin, and e-commerce pages under 100 words as too short. It also counts
h2andh3headings, and flags an average sentence length above 25 words. - Quotable blocks. It counts blockquotes, definition lists (
dlwithdt/dd) and callout or TL;DR boxes: self-contained pieces that are easy to lift into an answer. - Page metadata. A
<title>of 10 to 70 characters, a meta description of 50 to 160 characters, and a canonical link with an absolute URL. - Language and images. A well-formed
<html lang>value, and analtattribute on images. An emptyalt=""counts as correct for decorative images.
Where to start
You don't need to fix everything at once. A sensible order follows the sections above. First make sure answer crawlers and snippets are not blocked. Next, tell engines who you are with structured data. Then give them clear, quotable answers and visible trust signals.
To see where your own site stands, run a free check at aeo.uplo.services. You get a score across five categories and the top issues to fix first. If you'd rather have someone handle the fixes, Uplo also does this work as a service.