Answer engine optimization (AEO)

Structure your pages so answer engines can quote them

Answer engine optimization is shaping a page so that a system looking for an answer can find yours, lift it and attribute it — whether that system is a featured snippet, a voice assistant, People Also Ask or an AI-generated answer. The unit that wins is not the page but the passage: a question, stated plainly, with the answer directly beneath it. SEOAST measures how extractable the answers on your page are and ranks what to fix.

No signup required to start — 10 audits a day without an account.

The 9 checks behind this

Each one is a check that runs, described by the engine itself. If a check changes, this page changes with it.

  • Question-and-answer extractability

    qa_content

    Headings that end in a question mark, and summary/details blocks, in the main content — each paired with the copy beneath it, plus any FAQPage or QAPage JSON-LD. Fails when marked-up questions are absent from the visible copy, or when every question on the page has under 15 words beneath it; warns when questions carry no markup, when some go unanswered, or when an answer runs past 200 words before reaching the point. A page with no questions on it reports not_measurable — this measures how liftable existing answers are and does not require a page to have any.

    Fixing it: Lets an answer engine lift a complete answer off this page instead of a fragment of one.

  • Structured data (JSON-LD)

    structured_data

    Every <script type="application/ld+json"> block: whether it parses as JSON, whether it declares an @type (walking arrays and @graph), and which types are present. A block that fails to parse is worse than no block at all, because it forfeits rich-result eligibility silently.

    Fixing it: Makes the page eligible for rich results. Eligible, not guaranteed — Google decides whether to show them.

  • Heading hierarchy

    heading_hierarchy

    The h1-h6 outline: how many h1 elements exist, whether any heading is empty, and whether the document skips a level (an h2 followed directly by an h4). Zero or multiple h1 elements and skipped levels both make the page outline ambiguous to crawlers and screen readers.

    Fixing it: Gives crawlers and screen readers an unambiguous outline of what the page covers.

  • H1 and title alignment

    h1_title_alignment

    Overlap between the meaningful terms in <title> and in the first <h1>, as a fraction of the smaller term set. At or above 0.5 the two describe the same topic; at or above 0.25 they are loosely related; below that the search result promises one thing and the page delivers another. Reports not_measurable when either element is missing or empty.

    Fixing it: Makes the search result and the page agree about the topic, reducing bounce.

  • Content depth and readability

    content_readability

    Visible copy taken from <main>, <article>, <body> or the document, then measured for word count and Flesch Reading Ease. Under 300 words reads as thin; a reading ease below 30 reads as academic or legal prose to a general audience.

    Fixing it: Gives the page enough substance to be a credible answer to the query.

  • Meta description

    meta_description

    Presence, uniqueness and length of <meta name="description">. Fails when absent or empty; warns outside 70-160 characters or when more than one description tag is present. Does not rank, but it is the copy that earns the click.

    Fixing it: Raises click-through on the ranking you already have. Does not affect ranking itself.

  • Server-rendered content

    render_dependency

    Visible text as a share of the response body, plus inline script share and server-rendered word count. Fails under 60 words alongside a script-heavy document, or below a 2% text ratio; warns below 5%. SEOAST executes no JavaScript, so this measures what a crawler sees before deciding whether to queue a rendered pass.

    Fixing it: Puts the content in the first response, where every crawler reads it, instead of behind a render pass that is neither fast nor guaranteed.

  • Business contact details (NAP)

    business_contact

    Phone numbers from schema telephone, tel: links and visible text, and addresses from PostalAddress, <address> and address-shaped copy. Fails on conflicting phone numbers, or on a business page with no contact details at all; warns when details exist but are not machine-readable or the structured address is incomplete. Reports not_measurable on any page that does not present a business.

    Fixing it: Makes the phone number and address readable as data and consistent with the listings elsewhere that search engines reconcile them against.

  • Google Business Profile match

    gbp_match

    Two tiers. From the page alone: whether a Google Business Profile is linked or embedded, and whether that link carries a place identifier. When the pipeline has retrieved the profile itself: name, phone, street, locality, postal code and website compared field by field against it. Fails on a disagreement between the two; warns when no profile is linked or the link names no listing. The coverage line states whether the profile was retrieved, so an unmeasured match is never shown as a matching one.

    Fixing it: Removes a disagreement between the site and the Google Business Profile, and states which listing this site belongs to.

How to work it

  1. Step 1

    Pick the questions

    List the questions your customers actually ask — from sales calls, support tickets, People Also Ask and your own search data — and map each to the page that should answer it.

  2. Step 2

    Audit those pages

    Run each URL. The Q&A extractability, structured data and heading checks show which answers can already be lifted and which are buried or missing.

  3. Step 3

    Rewrite for extraction

    Turn each question into a heading, open with the direct answer, and move the context below it. Add FAQPage or QAPage JSON-LD only for questions that appear on the page.

  4. Step 4

    Re-audit and repeat

    Audit again after publishing and compare against the previous run, then move to the next set of questions.

Where AI answers get their pages

Each answer engine sources pages differently, and robots.txt governs each crawler separately. SEOAST reports which AI crawlers your robots.txt blocks; it does not query the engines themselves.

ChatGPT search
Pages fetched by OpenAI’s crawlers. OAI-SearchBot governs whether a page can surface in search answers; GPTBot governs training and is a separate decision.
Google AI Overviews and AI Mode
Google’s own search index, crawled by Googlebot. A page that is noindex, blocked or thin in the index is out of contention before any AI feature is involved.
Gemini
Grounds answers on Google Search. Google-Extended controls use of your content for Gemini models and does not remove a page from Search.
Perplexity
Its own index, built by PerplexityBot, and live fetches when a user asks. A robots.txt block on PerplexityBot takes a page out of that index.
Microsoft Copilot
The Bing index, crawled by Bingbot. Bing Webmaster Tools and IndexNow are the levers; a page Bing has not indexed cannot be cited.
Claude
Web search results plus pages fetched on request. Anthropic publishes separate tokens for search (Claude-SearchBot), user fetches (Claude-User) and training (ClaudeBot).

How this works in practice

Answer first, then explain

Answer engines reward the pattern a good reference book uses: the question as a heading, a one- or two-sentence answer immediately beneath it, and the detail after that. SEOAST’s Q&A extractability check pairs every question heading and summary/details block with the copy under it, fails questions left without a real answer, and warns when an answer runs long before it reaches the point.

Markup that matches what a reader sees

FAQPage and QAPage JSON-LD tell a machine where the questions and answers are. They help only when they agree with the visible page: marked-up questions that appear nowhere in the copy are a failure, not a bonus. SEOAST validates the structured data you declared and checks it against the text on the page.

Structure is how a passage gets found

A single H1 that agrees with the title, a heading hierarchy without skipped levels, and readable paragraphs let an engine locate the passage that answers a query. SEOAST scores each of these and shows the measurement behind the verdict, so the fix is specific.

For local businesses, the answer includes who and where

Many answer-engine questions are local: who does this near me, are they open, how do I reach them. SEOAST checks that your contact details are consistent and machine-readable, and whether your page links a Google Business Profile that agrees with it.

What this does not do

SEOAST does not query ChatGPT, Perplexity, Gemini or Google AI Overviews, and it does not track featured snippets, People Also Ask boxes or voice results. It measures whether the answers on your page are built to be extracted — the part you control.

What this will not do

Measures how extractable the answers on one page are. It does not track snippets, People Also Ask or AI answers, and it does not query any answer engine.

Questions

What is answer engine optimization?

AEO is structuring content so that systems which answer questions directly — featured snippets, voice assistants, People Also Ask and AI answer engines — can extract your answer and credit you as the source.

What is the difference between AEO and GEO?

Very little in practice. AEO came first and grew up around featured snippets and voice search; GEO is the term for AI-generated answers. The page-side work is the same: be fetchable, answer questions directly, mark them up honestly, and be clearly attributable.

Do I need FAQ schema?

It helps a machine find your questions and answers, but only when every marked-up question is visible on the page with its answer. Schema that describes content the reader cannot see is scored as a failure.

How long should an answer be?

Long enough to answer the question on its own, then stop. Lead with one or two sentences that stand alone if quoted, and put supporting detail after. SEOAST flags answers that run long before reaching the point and questions answered in only a handful of words.

Can SEOAST tell me if I own a featured snippet or an AI answer?

No. It audits the page, not the results. Track snippet and answer ownership with a rank tracker or by testing your target questions directly; use SEOAST to fix the pages that are not winning.

Do I need an account?

No. Audits run without signup, up to a daily limit. An API key raises that limit.

  • Generative engine optimization (GEO) audit

    GEO audit for any URL. SEOAST checks the signals generative engines depend on — crawl access for AI bots, server-rendered content, structured data, entity and trust signals, and llms.txt — then ranks the fixes.

  • Local SEO audit

    Audit a local business page for the signals map results depend on: LocalBusiness schema, NAP consistency, geo coordinates, opening hours, a maps link and linked profiles.

  • AI-search readiness audit

    Check whether your page can be crawled, parsed and understood without JavaScript. SEOAST measures the foundational signals — crawl access, server-rendered content, structured data, heading structure and llms.txt — that machine readers depend on.

Audit your page

No signup required to start.