Rule referenceaeo/faq-coverage

FAQ Coverage: Question Content An Answer Engine Cannot Lift

aeo/faq-coverage flags any page that reads like an FAQ (at least 2 question-phrased H2 headings starting with how, what, or why, or a /faq, /how-to-, or /what-is- URL path) whose question-and-answer pairs are not laid out where an answer engine can lift them whole, and it asks you to fix that in the visible page rather than by bolting on FAQPage JSON-LD, a rich result Google switched off on May 7, 2026.

Frequently asked questions

What exactly makes the rule decide a page 'looks like an FAQ'?
Two independent triggers, either one is enough. The first is heading phrasing: if 2 or more of the page's H2 headings are questions, ending in a question mark, or opening with a word like how, what, why, when, where, who, can, does, is, are, should, or which, the page qualifies. The faqMinQuestionHeadings option sets that count and defaults to 2. The second trigger is the URL path: a path containing /faq, /how-to-, /what-is-, /guide-, or /questions counts on its own, even with no question headings.
Why is this only info severity instead of a warning or error?
Because nothing is broken; the page can rank and serve readers perfectly well as it stands. The rule is surfacing an opportunity, not a defect. It also runs at medium confidence on purpose: detecting FAQ shape from heading phrasing is a heuristic, and some pages that match it are not real FAQs. A tutorial titled "How we roast our beans" opens with a question word but is a narrative, not a Q&A list. Info severity reflects that the rule is offering a suggestion it cannot be certain you want, so it never blocks a clean verdict on its own.
If the page already has FAQPage markup, does the rule still fire?
No. Finding an @type of FAQPage, HowTo, or QAPage anywhere in the JSON-LD graph makes the rule pass, because those pairs are already declared in a machine-readable form and a crawl has nothing useful left to say. Treat that purely as an exemption for sites that already ship the markup, usually for a non-Google consumer of their schema. It is not a hint to add it: the engine's own site removed every FAQPage node it emitted in August 2026 for exactly this reason, and the rule's fix text never suggests the markup.
Doesn't Google show a rich FAQ accordion in search if I add this schema?
Not any more, for anybody. Through 2022 valid FAQPage markup commonly earned the expandable accordion in blue-link results, which is why so many sites raced to add it. Google restricted the feature to well-known government and health sites in August 2023, then retired it outright: the changelog entry of May 8, 2026 announced it would stop appearing from May 7, 2026, and the documentation page came down on June 15, 2026. There is no successor feature to migrate to, and the effort is better spent on the visible layout.
My home-espresso brewing guide trips this rule: what should I actually change?
Your /how-to-dial-in-espresso page already has the hard part: real H2 questions like "What grind size gives a 25 to 30 second extraction?" and "Why does my portafilter channel and spray?", each answered somewhere in the prose below. The rule fires because those answers are not sitting where a machine expects them. Move the resolving sentence to the top of the paragraph immediately under its heading, so the burr-grinder advice, the tamp-pressure tip, and the extraction-time troubleshooting each read as one self-contained answer. Then when a barista asks an assistant "why is my espresso shot pulling in 9 seconds", your channeling answer is the paragraph it can quote whole.

Test your site for faq coverage: question content an answer engine cannot lift

Loading bot check… if this doesn't resolve in a few seconds, refresh the page.

Your report will spotlight the `aeo/faq-coverage` lens, with a link to the full audit.

Generative Citation Checklist

Optimize your content to trigger Google AI Overviews and answer engine summaries:

  • Entity Grounding: Ensure the primary topic is declared with schema markup.
  • Answer-First Format: Place direct answers (under 300 characters) in paragraph tags directly under headings.
  • Authoritative Citations: Link to peer-reviewed sources or primary data sets to establish domain authority.

What it detects

aeo/faq-coverage looks at each page and asks two questions in sequence. First, does this page look like FAQ or how-to content? It looks that way if 2 or more of its H2 headings are phrased as questions, a heading that ends in a question mark, or one that opens with a question word like how, what, why, when, where, who, can, does, is, are, should, or which, or if the URL path matches a question pattern such as /faq, /how-to-, /what-is-, /guide-, or /questions. The trigger threshold is the faqMinQuestionHeadings option, which defaults to 2.

Second, are those pairs already declared machine-readably? The rule walks the page's JSON-LD graph and goes quiet the moment it finds an @type of FAQPage, HowTo, or QAPage anywhere in the tree, because a page carrying that markup has nothing left for a crawl to point out. That is a pass condition, not a recommendation: the finding it writes never asks you to add any of those three types.

The finding lands at info severity with medium confidence. Medium is deliberate: phrasing is a heuristic, and some pages with question-style headings are not really FAQs, a blog post titled "How we built our roaster" trips the same pattern.

Why it matters

An answer engine quoting your page has to decide where one answer starts and stops. When a question sits in its own heading and the complete answer occupies the paragraph directly beneath it, that decision is trivial and the quote comes out intact. When the same material is spread across a wall of prose, three bullets, and a sentence that begins "as mentioned above", the engine either reassembles it badly or skips you for a competitor whose layout was easier to read.

For years the reflex answer to this was markup. Through 2022, FAQPage JSON-LD commonly earned the expandable accordion in blue-link results. Google narrowed that feature to authoritative government and health sites in August 2023, announced on May 8, 2026 that it would stop appearing entirely from May 7, 2026, and deleted the FAQPage documentation on June 15, 2026. HowTo went the same way in September 2023.

So the markup is not the fix any more, and this rule does not ask for it. QAPage is not a substitute either: Google documents it for pages where users can submit answers, not for a site's own FAQ.

A page that fails

/guides/how-to-dial-in-espresso on a home-barista blog. The page is a genuine walkthrough with five question-phrased H2s, "How fine should I grind for espresso?", "Why is my shot pulling in 9 seconds?", "What does channeling in the portafilter look like?", "How tight should I tamp?", and "When should I adjust grind size versus dose?". The URL path matches /how-to- and the page carries 5 question H2s, well past the threshold of 2. But every answer opens with two paragraphs of throat-clearing about the author's cafe before the number arrives, and the grind-size answer finishes three headings later under "A note on burrs". The rule fires at info: the questions are there, liftable answers are not.

A page that passes

The same espresso guide after the author moves each answer up under its own question. "How fine should I grind for espresso?" is now followed immediately by "Grind finer until your double shot extracts in 25 to 30 seconds with a steady tiger-stripe crema", and the 9-second heading by "A 9 second gusher means the grind is too coarse or the dose too low, so the puck offers no resistance". Nothing was deleted; the cafe anecdotes moved below the answers they used to bury. Asked "why is my espresso shot too fast", an assistant can now quote one paragraph verbatim and attribute it. The rule stays silent, and no JSON-LD was added to earn that.

How to fix it

  1. 1Give every question its own heading and put the complete answer in the first paragraph directly beneath it, so a machine can lift one pair without reassembling it from elsewhere on the page.
  2. 2Lead each answer with the answer. Move the context, the caveats, and the anecdote below the sentence that actually resolves the question.
  3. 3Do not add FAQPage or HowTo JSON-LD expecting a rich result: Google stopped showing the FAQ feature on May 7, 2026 and dropped HowTo back in September 2023.
  4. 4Do not reach for QAPage as a workaround. Google documents it for pages where users can submit answers, which a site-authored FAQ is not.
  5. 5For a pSEO template, render the questions and answers from the same per-record data, so each URL gets its own specific pair instead of one boilerplate block.
  6. 6Never ship boilerplate Q&A where only the entity name is swapped: identical questions across every page read as mass production to the same systems you want quoting you.

SpamBrain context

aeo/faq-coverage is an answer-engine-optimization rule, not a spam classifier; it fires at info severity and never blocks a verdict, because a page whose answers are hard to lift is a missed opportunity, not a manipulation. The page has already done the hard part by writing real answers; the rule is asking it to lay them out where a machine can find them.

The one place it brushes against spam thinking is templated Q&A. Question-and-answer blocks are trivial to generate at scale, and a generator that stamps the same three questions onto ten thousand pages with only the city or product name swapped produces the exact mass-production fingerprint that Google's scaled-content-abuse policy was written to demote. Page-specific answers are the only kind worth rendering; boilerplate just makes the sameness easier to detect.

This rule ships in @pseolint/core, MIT-licensed at github.com/ouranos-labs/pseolint.

Sources

  • Google Search Central: Introduction to structured data markup: Google's structured-data guidance is what the rule declines to lean on: FAQPage and HowTo both lost their rich results (HowTo in September 2023, FAQ on May 7, 2026), so aeo/faq-coverage recommends the visible fix, one question per heading with its complete answer beneath, and treats existing FAQPage, HowTo, or QAPage markup only as proof the pairs are already machine-readable.
  • Schema.org: full hierarchy of structured-data types: Schema.org still defines FAQPage, HowTo, and QAPage as vocabulary, which is why aeo/faq-coverage stays silent when it finds any of them in a page's JSON-LD: the pairs are already declared. It never asks you to add them, because a live schema.org type is not the same thing as a live Google rich result.
  • Google Search Central: AI features and your website: Google narrowed FAQ rich results to government and health publishers in August 2023 and removed the feature from Search entirely on May 7, 2026, which is why aeo/faq-coverage frames the gap as an AI-extraction problem in the visible page rather than a missing-markup problem: the answer engines read the prose, not a retired accordion.

Related rules

Want to know whether this rule actually fires on your site?

Run pseolint against your sitemap. The audit is free, takes about a minute, and returns a per-URL list of every rule that fired (including this one) with the exact metric values so you can prioritise the fix queue.