Open a terminal and run one command against your own site:
curl -s https://yoursite.com/services/water-heater-repair | grep -c "our answer text here"
If that returns 0, nothing else in this article matters. A large share of the FAQ sections built in the last two years do not exist in the HTML that AI crawlers read. The questions are there. The answers are gone.
That is the part almost every guide on this topic skips. The advice you will find is some blend of "add FAQ schema," "keep answers under 80 words," and "put your conclusion first." Two of those three are unsupported by the best available data, and the third is only half right. This piece is built on Google's own May 2026 AI search guidance, a controlled Ahrefs experiment, an analysis of 277 traced AI Overviews citations, and a technical audit of what accordion components actually ship to a crawler.
Rule 1: The answer has to be in the raw HTML
Before anything else, confirm a crawler can see your answers. Most cannot, and the reason is a UI component, not an SEO mistake.
Stackra published an audit of its own site in March 2026 after discovering the problem. Fetching the About page HTML the way a bot would returned 9 FAQ question headings, clearly present, and none of the answers. As they put it, the text was "not hidden with CSS. Not set to display: none. Not collapsed with height: 0. The text simply was not there."
The cause is Radix UI, the primitive library behind shadcn/ui and a large share of sites built since 2023. Its Accordion implementation unmounts closed content from the React tree entirely. That is a deliberate performance choice and it is invisible to a human, who clicks and sees the answer appear. To a fetcher reading the document, the content never existed. The same applies to Collapsible, to Dialog and Sheet, and to non-active Tabs panels depending on implementation.
Watch out
AI fetchers like GPTBot, ClaudeBot, and PerplexityBot pull content directly from page HTML. They do not execute JavaScript and they do not click your accordion open. Googlebot does render JavaScript, but rendering cannot recover a DOM node that was never mounted.
The fix is boring and permanent: replace the component accordion with the browser's native details and summary elements. Native details always keeps its content in the document and toggles visibility with the open attribute, so the text is present in the HTML whether the item is expanded or not. Google explicitly indexes details content. You keep the collapse behavior, you lose the JavaScript, and the answers become readable.
Then re-run the curl. If the answer text comes back, you have earned the right to worry about wording.
What "quotable" actually means
AI search does not quote pages. It quotes passages.
When someone asks ChatGPT, Perplexity, or Google's AI Mode a question, the system retrieves candidate content, scores individual blocks against the query, and synthesizes an answer from the best ones. ChatGPT and Perplexity are reported to split pages at heading boundaries and score those sections independently. Your FAQ answer is not competing as part of your page. It is competing on its own against every other passage on the web that addresses the same question.
That mechanic drives every rule below. It is also why a page sitting at position eight can get quoted while the page at position one does not. A practitioner in r/AI_SearchOptimization who tracked ranking against citation across client sites put it plainly after months of manual logging: "Top-of-page-one ranking was not a reliable predictor of citation. Plenty of pages holding the top spot never got pulled in. Meanwhile pages sitting well down the page got cited repeatedly." The pages that did get cited shared a structural trait, an answer that was "extractable without needing the rest of the page for context."
This is the same extraction gate that decides whether ChatGPT names your business at all, and it is why getting cited by Perplexity has more to do with passage shape than with domain authority.
Rule 2: Write longer answers than the advice tells you
Nearly every guide on this topic lands on 40 to 80 words. The best available first-party data points the other way.
LinkSurge analyzed its own Google AI Overviews monitoring data and traced 277 citation snippets back to the exact block they came from, across 659 successfully fetched pages and 10,083 parsed heading blocks. Comparing cited blocks against uncited blocks on the same pages:
| Signal | Cited blocks (n=257) | Uncited blocks (n=9,826) |
|---|---|---|
| Median character count | 476 | 273 |
| Opens with a demonstrative | 2.3% | 1.5% |
| Contains a cross-reference | 4.7% | 2.6% |
By the numbers
476 characters is roughly 75 to 85 words. That is the top of the commonly recommended band, not the bottom. The blocks that got quoted were consistently the substantial ones.
Two honest caveats, because this number gets misquoted fast. The corpus is Japanese-language pages, so transfer to English is untested. And there is a real confound: longer blocks hold more of a page's text, which makes them easier to match to a truncated snippet, so the size of the gap is not trustworthy. What does hold up is the direction. There is no evidence that slicing your answers into two-line fragments earns citations, and some evidence it costs them.
The practical target: one sentence that answers the question outright, then two to four sentences carrying the specifics that make the answer trustworthy. A number, a named brand of equipment, a code section, a real timeframe. An answer with nothing checkable in it is a passage a model has no reason to prefer.
Rule 3: Put the questions in the body, not in a drawer at the bottom
The most common FAQ pattern on a service business site is a collapsed block of six questions sitting below the last section, after the testimonials. That placement is working against you twice.
Same 277-citation dataset, this time by position on the page:
| Position of cited block | Share of citations |
|---|---|
| First 20% of page | 53.4% |
| 20 to 40% | 13.0% |
| 40 to 60% | 14.4% |
| 60 to 80% | 6.5% |
| Last 20% | 12.6% |
There is a real skew toward the top. But break out the page's opening lead specifically and it accounted for only 30.7% of citations. The other 69.3% came from heading blocks inside the body. The median cited block sat at position two on pages with a median of 13 blocks.
The takeaway is not "move your FAQ to the top." It is that question-shaped headings distributed through the body of a page are live citation candidates in a way a terminal accordion is not. If a customer reliably asks "how long does a water heater install take," that deserves an ## heading in your service page copy with a real answer under it, not an entry in a drawer.
A six-week study one practitioner ran across 8 competitors in r/Agentic_Marketing found the same thing from the other direction. Flagship pillar content, the big resource guides with dedicated navigation and internal link priority, accounted for roughly 11% of total AI citations. The bulk came from what they called "boring answers to narrow questions," pages of 400 to 800 words that answered one specific thing, often published years earlier and rarely linked from navigation. Their summary: those pages "look like answers, not content."
Rule 4: Every answer has to survive being read alone
Assume the model will extract one question and answer pair and show it with nothing around it, because that is exactly what happens.
That means no "as we mentioned above," no "this is why the process works," no pronoun pointing back at the previous question. If someone landed on that answer cold, could they act on it?
But do not over-apply this. The same dataset that produced the length finding also tested the standard advice against demonstratives and cross-references, and found the opposite of the assumption: blocks opening with "this" or "that" were slightly more common among cited blocks (2.3% against 1.5%), as were blocks containing phrases like "as noted above" (4.7% against 2.6%). The team removed both penalties from their own scoring tool. The rule that survived contact with data is standalone readability, not a ban on specific words. If the referent lives inside the same block, you are fine.
The same team also found that mechanically front-loading a conclusion in every section is oversold. After adjusting out cases where the quote started at character zero, which is a chunk-boundary artifact rather than a signal, 35.8% of citations began in the first fifth of a block against a 20% chance baseline, while 25.3% began from the middle. Answer-first helps. It does not decide.
Rule 5: Get your questions from the phone, not from a keyword tool
Here is the advantage a local service business has over every SaaS company writing about this topic, and almost nobody uses it.
Your office answers the same thirty questions every week, in the customer's own words, with the customer's own anxiety attached. "Do I need to be home for the estimate." "Will you have to cut into the drywall." "What happens if it rains the day you're scheduled." Those are the exact phrasings people type into ChatGPT, and they are sitting in your call log, your text threads, and the objections your estimator hears at the kitchen table. No keyword tool surfaces them and no competitor has them.
Work through that list first. Then supplement with Google's People Also Ask boxes, autocomplete, and the query list in Search Console, which will show you the question-shaped searches already reaching you.
Tip
Pull the last 40 inbound calls and write down the question each caller actually opened with, before your team steered the conversation. That list is your FAQ. Rank it by how often the question appears, not by search volume.
For a local business there is one more requirement, and it comes from how these models handle place. As one operator-facing breakdown in r/Businessowners framed it, Google ranks local businesses on proximity signals, on GPS, while "LLMs like ChatGPT and Perplexity don't work that way. They have no GPS at query time. Instead, they piece together your local relevance from text scattered across the web."
Which means an answer that says "we serve the greater metro area" is unmatched to any local query. An answer that names the neighborhoods, the county permit office, the housing stock ("most homes in the older east-side neighborhoods here run cast iron stacks"), and the response radius gives the model something to bind to a place. That matters more than usual for local: Whitespark's study of local search found AI Overviews appearing for 68% of local queries while the local pack appeared for only 39% of the same queries.
We run generative search optimization for local service businesses, which starts exactly where this article does: fetching your pages the way a crawler does, finding the answers that are not in the HTML, and rebuilding the question set from your actual call log rather than a keyword export. If ChatGPT is naming your competitors and not you, we will show you which of the six rules you are failing.
Rule 6: Stop cloning one FAQ block across every city page
If you run forty location pages with the same six questions and the same six answers on each, you have built forty passages that are indistinguishable from each other. A retrieval system scoring them has no basis for preferring one, and each of them is a generic answer competing against somebody's specific one.
This is the single most common self-inflicted wound on contractor sites, because the FAQ block is usually a template partial. It is also the easiest to fix, because you only need one genuinely local sentence per page. The permit office by name. The typical age of the housing stock. The drive time from your yard. The rebate program that applies in that municipality and not the next one. Everything else can stay templated.
The same logic applies to your Google Business Profile and your service pages: consistency of your business facts across the web is a strength, but duplicated content across your own pages is not consistency, it is dilution.
So what about FAQ schema?
Short version: keep it if it costs you nothing, but stop counting it as the work.
The timeline matters here because a lot of published advice predates it:
| Date | What changed |
|---|---|
| August 2023 | FAQ rich results restricted to authoritative government and health sites |
| May 7, 2026 | FAQ rich results stop rendering in Google Search entirely |
| May 15, 2026 | Google publishes its first generative AI search guide |
| June 2026 | Search Console FAQ report and Rich Results Test drop FAQ support |
| August 2026 | Search Console API removes FAQ metrics |
Google's May 15, 2026 guide is direct: structured data is not required for generative AI search, and there is no special schema.org markup to add for AI Overviews or AI Mode. The same document states there is no ideal page length and no requirement to break content into small pieces, which quietly retires several other pieces of standard GEO advice.
The strongest evidence against the schema claim is experimental, not documentary. Ahrefs published a difference-in-differences study in May 2026: 1,885 pages that added JSON-LD, roughly 4,000 matched control pages, measured from August 2025 through March 2026. Results were AI Mode +2.4%, ChatGPT +2.2%, and AI Overviews minus 4.6%. The first two are indistinguishable from noise. One important limit: every page in that dataset was already receiving 100 or more AI Overviews citations before schema was added, so what the study establishes is narrow, that adding schema to already-cited pages does not increase citations. Whether it helps an undiscovered page is untested.
Supporting evidence points the same way. SE Ranking's analysis found pages with FAQ schema averaged 3.6 ChatGPT citations against 4.2 for pages without it, a slight negative correlation. And in February 2026, Mark Williams-Cook created a page for a fake company with an address embedded only inside invalid, made-up JSON-LD and nowhere in the visible content. ChatGPT and Perplexity both returned the address, which tells you LLMs tokenize the raw text of <script> blocks rather than semantically parsing the structure. They read the characters, not the schema.
The honest counterweight: "not required" is not the same as "not used." Fabrice Canel, Principal Product Manager at Microsoft Bing, stated at SMX Munich that schema markup helps Microsoft's LLMs understand content, and ChatGPT's search leans on Bing's index. So the defensible position is that FAQPage markup is a cheap, low-risk addition with an unproven ceiling, and that the hour you were going to spend implementing it is better spent on the five rules above. If you already have it, Google has confirmed unused structured data does not cause problems, so leave it alone.
For the fuller picture of how each engine differs on this, the answer engine optimization guide breaks the behavior out engine by engine.
How to tell whether it worked
You cannot use Search Console for this anymore. FAQ reporting left the interface in June 2026 and the API in August 2026, and AI citations were never reported there in the first place.
That leaves manual prompt testing, run on a schedule. The protocol that survives contact with reality:
- Fix a query set. Twenty to thirty questions in the exact language customers use, including the local ones ("who fixes tankless water heaters in [neighborhood]").
- Run them against each engine separately. ChatGPT, Perplexity, and Google AI Mode draw from different pools. A page that dominates AI Overviews can be invisible in ChatGPT.
- Log three outcomes, not one. Cited with a link, mentioned in the text with no link, and absent. Mention without a link is far more common than citation with one, and if you only measure referral traffic you will conclude nothing happened.
- Sample repeatedly. Volatility here is much higher than SERP volatility. The practitioner quoted earlier re-ran a subset of prompts in a single sitting and got a different citation set each time, which makes any one-off "AI visibility audit" close to meaningless.
- Re-curl after every site change. The accordion problem comes back the moment someone rebuilds a component.
If you want the diagnostic version of this, why your website is not showing up in ChatGPT walks the same checks from the symptom end.
The 45-minute FAQ pass
A tight version you can run this afternoon on one service page:
- Curl the page. Confirm every answer string is present in the raw HTML. If not, swap the accordion for
detailsandsummary. - Pull 40 real questions from your call log, texts, and estimate objections. Rank by frequency.
- Pick the six that map to this page's service and are not already answered in the body copy.
- Promote the top two to real
##headings inside the body, with the answer directly underneath. - Write each answer to about 400 to 500 characters. Direct answer first sentence, then specifics with at least one checkable fact.
- Read each answer with the page covered. If it needs the paragraph above it to make sense, rewrite it.
- Add one locally-specific sentence that no other page on your site could carry.
- Delete the duplicates. If this exact block appears on other pages, differentiate or remove.
- Log the six questions into your prompt-test sheet, with today's date and the current result for each engine.
That is the whole job. The parts that get sold as the job, the JSON-LD block and the word-count target, are the two parts the data supports least.
