Why does markup decide which page gets chosen?
Every system that might surface your page, classic ranking algorithms, featured snippet extraction, embedding-based retrieval, AI answer engines, and increasingly autonomous agents, reads the same artifact: the HTML document your server returns. Each reads it differently. A ranking algorithm scores relevance signals in the head and body. A snippet extractor hunts for a self-contained passage. A retrieval model embeds the text and matches it against the meaning of a query, not its exact wording. An answer engine looks for a quotable claim with an accountable source. A human scans the heading outline and decides in seconds whether to stay.
The perfect page is the one document that reads well to all of them simultaneously. That is an engineering problem with a known solution, because almost every check these systems apply corresponds to a specific HTML element or attribute. This guide walks through them in the order the document does, and this page itself is built from the template it describes: view source and you are reading the worked example. The template distils the HTML-level subset of Laurelin's 330-check audit register into one document, and a perfect HTML page in this guide's sense means a page that passes every markup-level check, leaving only content quality to fight on. Acronyms used throughout: SEO, AEO, and LCP.
| Job | Question it answers | Key elements |
|---|---|---|
| Eligible | Can machines reach, read and quote this page? | title, meta robots with snippet directives, canonical, lang, viewport, hreflang |
| Extractable | Can a passage be lifted whole and still make sense? | single h1, direct-answer opener, question h2s, ul/ol, table, section ids |
| Believable | Who stands behind this, and is it current? | byline with rel="author", time, linked statistics, blockquote/cite/q, footer trust block |
| Corroborable | Can machines verify the entities involved? | one JSON-LD @graph with @id, about/mentions, sameAs, author Person |
What makes a page eligible to be indexed and quoted?
Eligibility is binary and it is decided in the head. The register's most common self-inflicted wound is a page competing hard for answers while its own markup forbids them. Three lines do most of the work. The title carries the strongest relevance signal, and it follows a fixed formula in priority order, because Google truncates from the right: primary keyword first (chosen on search volume and relevance), then the primary topic keyword naming the page's parent in the information architecture, then a secondary keyword, then the brand. Each slot is a different job, never the same term repeated.
<title>Primary Keyword | Primary Topic Keyword | Secondary Keyword | Brand</title>
<meta name="robots"
content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
<link rel="canonical" href="https://example.com/topic/this-page/">The robots line matters more in the AI era than it ever did in the ten-blue-links era. max-snippet:-1 explicitly places no limit on how much of the page may be quoted; a restrictive snippet setting, or a stray nosnippet, silently removes a page from featured snippets and AI answers while leaving its rankings looking normal, which is why the failure goes unnoticed. The canonical declares the one definitive URL so that parameter variants and duplicates consolidate rather than split their signals, and everything else must agree with it: the og:url, the sitemap entry, and every internal link on the site, which is why internal links are written as absolute URLs matching the canonical exactly. Around these three sit the supporting cast: UTF-8 charset within the first kilobyte, the viewport meta (mobile-first indexing means the mobile render is the page), a valid BCP47 lang attribute, favicons (they appear beside your result and in AI citation chips), and hreflang only when real locale versions exist, each at its own distinct URL with x-default naming the fallback.
How do answer engines actually lift your content?
They extract passages, not pages. Whether the surface is a featured snippet, an AI Overview, or a chat answer with citations, the unit of selection is a self-contained span of text that answers the query without needing the surrounding context. The perfect page is therefore written passage-first. The single H1 states the question or topic in the words a searcher uses. Immediately after the byline comes the most valuable element on the page: a direct-answer paragraph of 40 to 120 words, fully self-contained, specifics and conclusion up front, carrying id="direct-answer" so it is fragment-addressable and targeted by the schema's speakable property. Write it last, once you know what the page proves.
Below it, structure does the rest. Question-form H2s map each section onto a query variant, so one strong page covers a cluster of related searches instead of fragmenting into thin page-per-variant doorways. Heading levels never skip. A table of contents of fragment links doubles as jump links under the search result and hands every section its own keyword-bearing anchor. Bulleted and numbered lists carry one fact per item because snippet extractors lift lists wholesale. Genuinely tabular data goes in a real table with a caption, a thead and th scope="col", since tables are the most-lifted element in AI comparison answers. Definitions get semantic anchors: dfn marks the defining instance of the core term and abbr expands acronyms on first use, both prime snippet material. Images participate too: keyword-bearing file names, truthful keyword-bearing alt text, explicit width and height, and a figcaption whose source link is one more descriptive anchor.
The semantic wrapper matters as much as the content: article inside main tells every extractor, from Readability to AI crawlers to Laurelin's own NCS checker, where the judgeable content starts and stops. Boilerplate stays outside it; the aside holds the cluster's crosslinks; and the whole document uses landmarks rather than div-soup, because the accessibility tree those landmarks build is exactly what screen readers and shopping or research agents navigate by.
Why should anyone, human or machine, believe the page?
Trust is asserted in markup and verified elsewhere, and the perfect page asserts it in four places. The byline names a real person, links to their author page with rel="author", and dates the content with time elements whose machine-readable datetimes match the structured data and the article: meta tags exactly; a fresh modified date on genuinely updated content is a currency signal, while a faked one is a spam risk. Statistics are their own anchors: the number itself links to the primary source, ideally with a fragment to the exact section, because a cited claim gets quoted and attributed by answer engines while an uncited one gets paraphrased or dropped. Quotations use the semantic trio: blockquote with a machine-readable cite attribute for block quotes, the cite element for the human-readable title of the work, and q for inline quotes. Quote selection is itself an optimisation surface, verbatim always, but of the quotable passages in a source, prefer the one that states your topic in your cluster's vocabulary.
The fourth place is the footer: the organisation's name, an address element with contact details that match the Google Business Profile exactly, and links to the About, contact, privacy and editorial policy pages, each of which is a separate scored trust check. Outbound links complete the picture: linking to authoritative external sources places the page in a real topical neighbourhood rather than leaking value, with rel="nofollow" reserved for links you do not editorially vouch for and rel="sponsored" for paid ones, never on your own internal links.
How does the page wire itself into the knowledge graph?
One JSON-LD script in the head, structured as a single @graph with stable @id anchors, so the Organization, WebSite, Article, author Person, BreadcrumbList and FAQPage reference each other as one coherent entity instead of five floating fragments. Two properties do the semantic heavy lifting: about names the one primary topic entity, with a Wikidata or Wikipedia identifier where one exists, and mentions lists the fan-out entities the page discusses, declaring the semantic neighbourhood explicitly instead of hoping the embedding models infer it. The author Person carries knowsAbout and resolvable sameAs profiles, which is how expertise asserted on the page gets corroborated where machines cross-reference it. That corroboration loop, assert on-page, verify off-page, is the entire logic of the trust and authority pillars, compressed into frontmatter-sized JSON.
The discipline that keeps structured data safe is the twins rule: every claim in the markup exists visibly on the page, word for word for FAQ questions and answers, exactly for dates and breadcrumbs. Schema describing invisible content is a manual-action risk, and schema stuffing, marking a page as types it is not, is the same class of offence. Edit one twin, edit the other, always.
Which performance levers live in the HTML itself?
Core Web Vitals verdicts come from the field, but the levers are markup. The published pass thresholds are an LCP of 2.5 seconds, a CLS of 0.1 and an INP of 200 milliseconds, and the template pulls each one from the document side: a preload with fetchpriority="high" on the one true hero image so the LCP resource is fetched first, preconnect for critical third-party origins, explicit width and height on every image so nothing shifts during load, loading="lazy" on below-the-fold images and never on the hero, srcset and sizes so mobile devices download small files, and every non-critical script deferred at the end of the body so nothing render-blocking sits in the head.
The deeper rendering rule outranks all of these: the content must exist in the raw HTML the server returns. Crawlers and most AI engines judge the server-rendered document, so content or links that only appear after JavaScript runs fail the rendering checks; a framework stack needs SSR or prerendering. And the document served to crawlers must be the document served to users, because that diff is the cloaking guardrail.
What is the agent layer, and is it worth building today?
The newest layer is aimed at software that reads on a person's behalf. This page declares an Open Knowledge Format bundle twice: a link rel="alternate" type="text/markdown" in the head and a visible, keyword-anchored footer link, because a plain crawlable anchor is the one discovery mechanism every agent already understands. OKF is Google Cloud's markdown-plus-frontmatter format for curated, trustable agent knowledge, with provenance, verification tiers and freshness built into its metadata. The honest status: the spec defines no web discovery mechanism and no search engine fetches site bundles yet, so this is zero-cost future-proofing for the agentic web, never a ranking claim, and the bundle must mirror the visible pages, since a bundle that says more than the site is the same divergence risk as cloaking. The full analysis is in the companion piece, what OKF means for modern search and content.
What must the perfect page never do?
Every technique in this guide has a stuffed, hidden or faked counterfeit, and the register treats the counterfeits as risk flags rather than capability gaps. The page never hides text with CSS, never stuffs keywords into alt, meta or aria attributes, never marks up content that is not visible, never fakes a modified date, never clones itself into thin per-keyword variants, and never serves crawlers anything different from users. It also skips the rituals that burn effort without evidence: llms.txt files and AI mirror pages remain unfetched proposals, distinct from the stewarded OKF spec above, and neither is a substitute for the boring fundamentals. Validity itself is a check family: parseable HTML that passes the W3C validator, no duplicate ids, no deprecated elements, one head and one body, nothing after the closing html tag.
What does the evidence say about markup versus content?
Google's own guidance on generative AI search puts the hierarchy plainly:
Creating content that people find unique, compelling, and useful will likely influence your website's presence in generative AI search in the long run more than any of the other suggestions.
Google Search Central, AI features and your website, Google.
That is the correct reading of everything above. Markup is the qualifying round: it makes a page reachable, quotable, extractable and attributable, and a failure at that layer disqualifies even brilliant content. But selection among qualified pages is won by information gain, the facts, first-hand experience and named sources the competing pages lack. The perfect HTML page is therefore not a trick; it is the removal of every markup-level reason to pass you over, so the content decides.