Français

How GEO forces web accessibility

Table of contents

The answer without the click

For twenty years, search optimization boiled down to one question: how do I show up in Google's ten blue links?

That question is disappearing. When a user asks ChatGPT, Gemini, or Perplexity a question, they don't get a list of links. They get an answer — written, structured, with sources cited at the bottom. Your site is no longer ranked. It's cited, summarized, or ignored.

SEO optimized your position in a ranking. GEO optimizes your chances of being the source the AI chooses to cite.

And what decides that citation isn't keywords or backlinks. It's the quality, structure, and clarity of your content — and of your application.

These are exactly the practices web accessibility has demanded for 25 years.

SEO vs GEO: what changes when the engine answers for you

SEO and GEO share a goal — making your content visible — but they don't play the same game.

SEO vs GEO comparison
SEOGEO
GoalAppear in resultsGet cited in the answer
UnitThe pageThe passage
Key signalKeywords, backlinks, domain authorityClarity, structure, verifiable data
OutcomeA click to your siteA citation with or without a click
Competition10 links per page3 to 5 sources per answer

The fundamental difference: in SEO, Google ranks pages. In GEO, the LLM selects passages — a paragraph, a list, a number — and weaves them into its response. Your content is no longer a result. It becomes an ingredient.

This means a poorly structured 3,000-word page loses to a shorter article where each section clearly answers a question. The AI doesn't scan an entire document hoping to find the right information. It chunks, evaluates, and selects — passage by passage.

The good news: practices that work for GEO don't contradict SEO. They reinforce it. Clear, structured, well-sourced content is also content that Google ranks well. It's not a choice between the two — it's the same work serving both.

How LLMs choose their sources

Not all generative engines cite the same sources. Each has its own trust logic.

Gemini (Google) trusts what your brand says. It favors your own content — your website, your documentation, your product pages. If your site is well-structured and authoritative on your topic, Gemini cites you.

ChatGPT (OpenAI) trusts what the web says about you. It relies on consensus: according to a Liner study, Wikipedia accounts for 7.8% of its citations, followed by Reddit (1.8%) and Forbes (1.1%). What matters is reputation and third-party coverage.

Perplexity trusts domain experts. It favors specialized sources, industry directories, and verified reviews. In healthcare, it's Zocdoc. In hospitality, TripAdvisor. For subjective queries, niche sources make up 24% of all citations.

And the overlap between platforms is slim. Being visible on ChatGPT doesn't guarantee being cited by Perplexity.

What all three agree on

Despite their differences, all three engines converge on what they ignore:

  • Vague content with no data or sources
  • Pages without an exploitable heading structure
  • Marketing copy that rephrases without informing
  • Sites whose HTML is a soup of <div>s with no semantics

And on what they favor:

  • Content that directly answers a question
  • Verifiable numbers and citations from credible sources
  • A clear heading hierarchy — pages structured with H1→H2→H3 are consistently better represented in generative answers
  • Lists and tables — generative engines readily pick up tabular structures and enumerations for their responses
  • Structured data (schema.org) that explicitly declares what the content represents

What LLMs read

An LLM doesn't see your page the way a user does. It doesn't see your colors, your layout, or your animations. It sees text and structure. Exactly like a screen reader.

Headings

An LLM chunks your page into passages. Headings are its cut points. A clean H1→H2→H3 hierarchy means content the AI can segment, understand, and cite passage by passage.

headings.html
<!-- ❌ Flat — the LLM sees a wall of text -->
<div class="section-title">Our commitments</div>
<div class="subsection-title">Environment</div>
 
<!-- ✅ Structured — the LLM sees a tree -->
<h2>Our commitments</h2>
<h3>Environment</h3>

A skipped heading level (H1 then H3 with no H2) breaks the hierarchy. The screen reader loses a navigation level. The LLM loses a level of context. The result is the same: your content is harder to use.

Landmarks

Semantic elements — <header>, <nav>, <main>, <article>, <section>, <aside>, <footer> — aren't decoration. They're markers that screen readers use to navigate and LLMs use to separate useful content from noise (menu, footer, sidebar).

landmarks.html
<!-- ❌ A div soup — everything looks the same -->
<div class="wrapper">
  <div class="top-bar">...</div>
  <div class="content">...</div>
  <div class="bottom">...</div>
</div>
 
<!-- ✅ Semantic landmarks — structure is explicit -->
<header>...</header>
<main>
  <article>...</article>
</main>
<footer>...</footer>

An LLM hitting a page of nested <div>s has to guess what's content and what's chrome. An LLM hitting an <article> inside a <main> knows exactly what to extract.

Lists and tables

Pages cited by generative engines overwhelmingly contain lists or tables. That's not a coincidence: a list is a structure the AI can reuse as-is in its response. A paragraph of prose containing the same information requires extraction and rephrasing — with a risk of loss or distortion.

list-vs-prose.html
<!-- ❌ Prose — the LLM must extract and rephrase -->
<p>We offer an initial audit, followed by a remediation plan,
then six months of support and finally a verification audit.</p>
 
<!-- ✅ List — the LLM can cite directly -->
<ol>
  <li>Initial audit</li>
  <li>Remediation plan</li>
  <li>Six months of support</li>
  <li>Verification audit</li>
</ol>

Structured data

schema.org markup lets you explicitly declare what your content represents: an article, a FAQ, a product, a review, an event. Brands that use structured data make it easier for generative engines — and increase their chances of being cited.

It makes sense: instead of guessing that a block of text is a Q&A, the LLM knows because you declared it. Less ambiguity, more chances of being selected.

Image alt text

LLMs don't see images — they read their alt. A descriptive, natural alt text makes an image that AI can understand, index, and cite in the right context. We cover this in detail in The two lives of an image.

The same code, rewarded twice

If you read the previous sections with an accessibility eye, you noticed: every practice that LLMs reward has existed in accessibility standards for years.

GEO practices mapped to accessibility requirements
What GEO rewardsWhat accessibility requiresSame rule?
H1→H2→H3 hierarchy with no skipsWCAG 1.3.1 — logical content structure✓
Semantic landmarks (<main>, <nav>, <article>)WCAG 1.3.1 + 2.4.1 — identifiable regions✓
Structured lists and tablesWCAG 1.3.1 — programmatic relationships✓
Descriptive alt textWCAG 1.1.1 — non-text content✓
Structured data (schema.org)Not in WCAG — but same philosophy~

This is not a coincidence. LLMs and screen readers share the same disability: they can't see the page. They read the code. When the code is semantic, structured, and explicit, both find their way. When it's a soup of <div>s styled with CSS, both are lost.

For 25 years, the argument for accessibility was ethical, then legal. GEO adds a third argument — economic. An inaccessible site excludes users and faces legal risk. Now, it's also invisible in the answers that millions of people read every day in ChatGPT, Gemini, and Perplexity.

Accessibility no longer needs you to believe in it. The market enforces it.

What you can do right now

You don't need to choose between accessibility, SEO, and GEO. The work is the same.

Check your heading structure. Every page has one H1. Levels follow in order with no skips. You can verify this in 10 seconds with the WAVE extension.

Replace your <div>s with semantic HTML. <main>, <article>, <section>, <nav>, <header>, <footer> — each element says what it contains. Screen readers navigate by them. LLMs do too.

Get your alt text right. Informative images need an alt that says what they show — a natural sentence, not stacked keywords. Decorative images need alt="" to tell screen readers and LLMs to move on. Both cases matter. We cover this in detail in The two lives of an image.

Structure your data as lists and tables. If your content is an enumeration, write a <ul>. If it's a comparison, write a <table>. The AI can cite a list. It can't cite a paragraph hiding a list.

Add structured data. schema.org markup to declare what your content represents — article, FAQ, product, review. Less ambiguity for the LLM, more chances of being cited.

Bring evidence. Generative engines favor content that cites sources, statistics, and experts. According to Aggarwal et al., an article with verifiable numbers has up to 40% more visibility in generative answers than one without.

These six actions serve three goals. One effort, three results — exactly what I explained in Three bills, one codebase, zero overhead. Except now, the bills are four.

Sources