---
name: structured-answer
description: Use when authoring or auditing a page whose primary purpose is to answer a single question — service pages, FAQ entries, "what is X" pages, comparison pages. Defines the page shape that answer engines lift verbatim. Triggers include "make this AEO-friendly", "structure this for Claude / ChatGPT", "audit this page for answer-engine pickup".
---

# Structured-answer page template

Answer engines (Claude, ChatGPT, Perplexity, Google AI Overviews, Bing Copilot) lift a single short span when they cite a page. That span is almost always the first paragraph after the H1, when it is short and direct. Every other element on the page either supports the lift or gets ignored.

## The shape

```
<head>
  <title>{question or topic} — {site name}</title>
  <meta name="description" content="{80–160 char summary of the answer}">
  <link rel="canonical" href="{this page's URL}">
  <meta property="og:title" content="{question or topic}">
  <meta property="og:description" content="{same as meta description}">
  <script type="application/ld+json">{ emit via aeo-emit-jsonld }</script>
</head>

<body>
  <h1>{question or topic}</h1>
  <p>{≤280 characters. The answer. One sentence preferred. Names the entity, states the answer, ends on a fact.}</p>

  <h2>{follow-up section}</h2>
  <p>{details, examples, links}</p>

  <h2>Frequently asked questions</h2>
  <!-- emit FAQPage JSON-LD with 3–5 Question / Answer pairs -->
</body>
```

## Why this works

- The H1 names the question; the first `<p>` is the answer. Engines treat that pair as a structured Q/A.
- The `<p>` is short enough to be lifted whole. Longer paragraphs get truncated mid-sentence.
- The JSON-LD repeats the structured data in a parser-friendly form so engines that index pre-render don't have to scrape the DOM.
- The FAQ section adds a second class of lift target — engines often cite an FAQ answer when the page's main question is too broad.

## What breaks the lift

- A multi-sentence first paragraph. The engine truncates and the citation reads like a fragment.
- Marketing prose before the answer ("In today's fast-moving world…"). The engine lifts the marketing prose, not the answer.
- The H1 stating the brand instead of the question. "Acme Plumbing" is not a question; "How much does a boiler service cost?" is.
- Missing JSON-LD. Engines that pre-render the page still index the DOM, but they down-weight pages without structured data.
- Skipped heading levels. Engines use heading hierarchy to decide which content is the answer and which is supporting detail.

## How to audit

Run `aeo-audit-page` against the URL or HTML. Eight heuristics return pass / warn / fail. Treat any `fail` as a blocker — the rewrite suggestion in the response is concrete. Treat `warn` as a polish target.

To record the audit on the document for trend analysis, pass `persist: true` with the document's `elementId` as `targetKnowledgeDocumentId`. The plugin writes an `:AEOAudit` node linked via `HAS_AEO_AUDIT`.
