In short: Once crawlers can reach you, the remaining work is making a page easy to fetch, easy to parse, and easy to extract one clear answer from.
Almost all of it is unglamorous technical hygiene: serve the substance in the initial HTML, use headings that describe what is under them, put the answer near the top of its section, and attach an author, a date and a source to anything you want repeated.
None of this requires a tool, which is the main reason it gets skipped in favour of buying one. The extraction check on this site will read a page back to you the way a retrieval system would, and it runs in your browser.
Serve The Substance In The HTML
This is the highest-value item on the list and the one most often violated by modern sites.
AI crawlers are generally less capable at executing javascript than Googlebot. Content that appears only after client-side rendering may be invisible to them. So may content behind interaction: tabs, accordions, and anything fetched when a button is clicked.
The check takes a minute per page. Fetch the raw HTML without executing scripts and look for your key answer:
curl -s https://example.com/your-page | grep -i "the phrase you want cited"
If it is not there, no amount of content work matters, because the content is not present as far as retrieval is concerned. Server-side rendering or static generation solves this, and both are ordinary engineering rather than a GEO speciality.
Accordions and tabs deserve specific attention. An FAQ where each answer loads on click is a common pattern and a common cause of invisible content. If the markup contains the answers and CSS hides them, you are fine. If the answers are fetched on interaction, they are not there. Check which one you built rather than assuming.
Structure That Survives Extraction
Retrieval systems break pages into chunks. What makes a chunk usable is entirely under your control.
Headings that describe their contents
Headings are the strongest structural signal you have, and clever ones waste it. "Three Reasons Migrations Fail" locates a chunk. "The Journey Ahead" locates nothing.
Keep the hierarchy honest too: one h1, h2 for sections, h3 for subsections, no jumping levels for visual effect. A jump from h2 to h4 tells a parser there is a missing level and it has to guess what the relationship is.
The answer near the top of its section
Whatever a section establishes should appear in its first sentence or two, with the elaboration underneath. A reader who stops early still gets the point, and an extracted chunk starting at the heading contains the answer rather than the wind-up.
Sections that stand alone
Read any section with nothing above or below it. If it depends on "a definition given earlier on the page" or an antecedent defined three paragraphs back, it loses its meaning when extracted, and a fragment that means nothing gets dropped.
Lists and tables for enumerable things
When information is genuinely a list of items or a comparison across dimensions, mark it up as a list or a table. The structure carries meaning that a paragraph of prose containing the same words does not. It is also the format most reliably reproduced in generated answers.
Attach Provenance To Anything You Want Repeated
Four attributes turn a claim into something a system can justify using. Every one of them is a small edit.
- A named author with a real biography and a traceable identity, rather than "the team". A byline that leads nowhere is barely better than none.
- A visible date, marked up so it can be read as a date rather than inferred from prose. Where a claim is time-sensitive, date the claim and not only the page.
- A source for every number, linked, in the same sentence or the next. This is the single change with the clearest published support behind it, since the original GEO research found citations and statistics among the most effective additions.
- A stated scope: what the claim covers and what it does not. Naming the limits makes the covered part safe to repeat instead of something a careful system has to hedge around.
Structured Data, Honestly Described
Schema markup makes entities and relationships explicit rather than implied. Organization, Person, Article, FAQPage and BreadcrumbList are the ones that earn their keep on a site that is not a marketplace or a publisher.
The honest position on its value: no major AI system has confirmed that schema is a direct input to answer selection.
What it demonstrably does is improve how you appear in conventional search, which feeds the retrieval layer, and remove ambiguity about what your entities are and how they relate. Both are worth having. Neither makes it a shortcut past a page that fails at extraction.
On llms.txt: a proposed convention for offering a machine-readable summary of your site to AI systems. It has genuine interest behind it and no confirmed universal support from the major platforms.
Adding one costs an hour and harms nothing. Treating it as a ranking factor is not supported by anything published, and vendors selling it as one are ahead of the evidence.
Speed And Freshness
Two smaller items with real effects.
Crawlers operate under budgets, and agentic systems working through a task are on a timer. A slow page gets fetched less often and abandoned more often. The work here is the same work as for human visitors, so it needs no separate justification.
On freshness: update pages when the content has actually changed, and let the modified date reflect that. Changing a date without changing anything is detectable, it teaches systems that your dates are unreliable, and unreliable dates are worse than old ones.
An honest 2024 date on a stable definition is fine. A dishonest 2026 date on the same page is not.
The Discovery Audit
One page, one hour. Run it on your most important page first, then use it as a template.
- Fetch the raw HTML with curl and confirm your key answer is in it. Fix this before anything else on the list.
- Check the heading hierarchy: one h1, no skipped levels, and every heading describing what is actually beneath it.
- Read each section in isolation. Rewrite any that lose their meaning without the surrounding page.
- Confirm a named author with a real biography, and a visible date that is marked up as a date.
- Find every number on the page. Give each one a linked source and a date, restate it so it stands alone, or delete it.
- Validate your structured data, and check that the entities named in it match how you describe yourself everywhere else.
- Paste the page into an assistant and ask which passage answers your target question. If it cannot point to one, the structure is the problem rather than the writing.
- Log the date you made these changes. Without it you will not be able to tell whether anything worked.
Key Takeaways
- If the substance is not in the initial HTML response, treat it as absent. Check with curl before doing anything else.
- Honest heading hierarchy and descriptive headings are the strongest structural signal available, and clever headings waste it.
- Put each section's answer in its first sentences, and make every section readable in isolation.
- Author, date, source and scope turn a claim into something a system can justify repeating.
- Schema clarifies entities and helps conventional search. It is not confirmed as a direct input to answer selection and will not rescue a page that fails extraction.
- Update dates only when content actually changed. Unreliable dates are worse than old ones.
Check yourself
Before you move on
Not scored, not recorded, and not part of the certificate. Both answers are settled by a sentence in this lesson, and the reasoning appears whichever option you pick.
- 01
Where should the answer to a question sit within its section on a page?
- 02
What is the honest position on schema markup?