GUIDE № 14 · POLICIES
How to Make Your Shopify FAQs Quotable by ChatGPT
Every FAQ you have on your product pages is a chance for AI to quote you directly when a buyer asks a question. But if your FAQs are rendered in an accordion widget with no FAQPage JSON-LD schema, AI engines often miss them or treat them as undifferentiated description text. The schema makes extraction reliable.
The content is right there on the page — shipping times, sizing notes, ingredients, returns. A shopper asking ChatGPT "does the Homestead & Co. oak cutting board ship to Canada?" would get a perfect answer if the assistant could see the FAQ. The fix is almost never writing more FAQs — it's wrapping the ones you have in FAQPage schema so AI engines treat each Q&A as an independent retrieval chunk.
What FAQPage schema does
FAQPage is a specific JSON-LD type in the schema.org vocabulary. It tells any crawler reading the page: "this block of content is a list of questions and answers, and here's the structure." Each entry has a Question with a name (the question) and an acceptedAnswer with text (the answer). The schema lives in a <script type="application/ld+json"> tag in the page source, invisible to human shoppers and perfectly legible to machines.
Without the schema, your FAQs are just HTML — a div containing an h3 and a p, nested inside an accordion that's probably collapsed by default. AI crawlers read the DOM, but the collapsed answer might be hidden by CSS or lazy-loaded by JavaScript, and even when the text is in the source, there's no signal that says "this is a question, and this is its specific answer." The crawler has to guess at the structure.
With FAQPage schema, the guessing stops. The assistant pulls the Q&A pairs out by type and has a structured unit of content it can quote verbatim when a buyer asks a matching question. The other schema types that share this territory — Product, Organization, BreadcrumbList — are covered in the JSON-LD structured data guide. FAQPage is the one that handles buyer-question answering specifically.
Why FAQ answers become separate AI chunks
Most retrieval-augmented systems behind AI assistants split a page into chunks — paragraphs, list items, schema objects — and store each with its own embedding. Vendors haven't published exact chunking strategies, but the pattern is well-documented across the field. When a buyer asks a question, the assistant matches the query against every chunk and picks the closest semantic fit.
Your product description is one chunk (or a handful, depending on length). A FAQPage schema block gives the assistant n additional chunks — one per Q&A — each scoped to a single buyer concern. A shopper asking about returns retrieves the returns answer; a shopper asking about sizing retrieves the sizing answer. They don't compete with each other, and they don't dilute the main description.
This is the same principle we cover in product descriptions AI will quote: the more distinct, well-formed chunks you offer, the more specific buyer questions you can answer. A description alone has to do everything at once — hook, features, specs, objections — and no single passage can be optimized for all of them. FAQ entries are purpose-built retrieval surfaces; each one does exactly one job.
The practical effect shows up when you test the same store before and after adding schema. Ask an assistant a specific objection-style question ("can I machine-wash the Homestead & Co. oak cutting board?"), and a store without FAQPage schema often gets a generic answer pulled from the description. The same store with schema-wrapped care-instructions FAQ gets a direct, quoted answer — often with attribution back to the store.
How to check if you already have it
Before you install anything, check what's already there. Shopify themes and schema apps sometimes emit FAQPage JSON-LD without the merchant knowing — if it's already wired up, the fix might just be adding more Q&A entries to an existing block. Open any product page with FAQs, view source (Cmd+U), and search for FAQPage. If you find it inside a <script type="application/ld+json"> tag, read the mainEntity array and see whether it contains the FAQs actually rendered on the page.
From the terminal, the same check is one line:
curl -s https://yourstore.com/products/oak-cutting-board \
| grep -o '"@type":"FAQPage"' | head -1
If that returns a match, you've got schema. If it returns nothing, you don't. Run it against a product that clearly has FAQs in the rendered page — if the visible FAQs aren't covered by schema, the fix is to bring them into the JSON-LD.
Two misreads to watch for. First, a theme might emit an empty FAQPage with no mainEntity entries — the type is declared but there's nothing to retrieve. Second, some apps put FAQPage schema on a dedicated /pages/faq page but not on individual product pages. For AI shopping, the Q&A needs to live on the product page itself — that's the URL the assistant lands on when a buyer asks about a specific product.
How to add FAQPage schema
Two paths. The app path is right for most stores. The manual path is fine if you already have a developer touching your theme and you want one fewer moving part.
App path: install a schema app. The two most common on Shopify are Schema Plus (emits Product, Organization, BreadcrumbList, and FAQPage schema; FAQ content pulled from a metafield or per-product block) and JSON-LD for SEO (broader schema coverage, also emits FAQPage; pricing tier depends on catalog size). Both do the same core thing for FAQs: you pick a source for the Q&A content and the app wraps it in valid FAQPage JSON-LD on every product page. Install, point the source at your existing content, save.
Manual path: add the snippet to your product template. If you'd rather not install another app, or your FAQs are already stored in a product metafield, you can inject the JSON-LD directly. The shape looks like this — with three realistic Shopify-shaped questions as a starting point:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Does this ship internationally?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We ship to 32 countries. Standard shipping arrives in 7–12 business days. Expedited shipping is available at checkout."
}
},
{
"@type": "Question",
"name": "How do I care for the oak cutting board?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Hand-wash with warm water and mild soap. Dry immediately and rub in a thin coat of food-safe mineral oil once a month to prevent cracking. Do not put the board in the dishwasher."
}
},
{
"@type": "Question",
"name": "What is your return policy?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Unused items can be returned within 30 days for a full refund. Return shipping is free in the US. Custom-engraved boards are final sale."
}
}
]
}
</script>
In a Shopify theme, this goes in sections/main-product.liquid or a dedicated snippets/faq-schema.liquid. Pull the Q&A text from a metafield (product.metafields.custom.faq storing a JSON array) so content editors can update FAQs without touching code. Loop the metafield into the mainEntity array and let Liquid assemble the JSON-LD at render time.
A few rules the schema needs to follow to be valid:
- The Q&A content in the schema must match the Q&A content visible on the page. Schema-only FAQs are a policy violation that can get the markup ignored or penalized.
- Each answer should be a complete sentence or paragraph — not a fragment or a bullet list with no context.
- HTML in the
textfield is allowed but needs to be escaped or sanitized. Keep it plain text when you can. - Aim for 5–8 Q&A entries per product page as a reasonable range — enough to cover the most common buyer questions without diluting the page. Below five and you're missing easy wins; above eight and entries start to read like filler, which both shoppers and assistants notice.
Full policy content — complete return and shipping policies — should stay on dedicated policy pages, not get duplicated verbatim into every product FAQ. The store policies guide covers that side; product FAQs are meant to be summaries with the details that matter for that specific product.
Which buyer questions to FAQ
Five categories cover most of what shoppers actually ask AI assistants before buying. Pick the ones that matter for your category and skip the rest — a store selling dietary supplements doesn't need a care-instructions FAQ, and a furniture store doesn't need an ingredients FAQ.
Shipping. Where you ship, how long it takes, what it costs. "Do you ship to the UK?" is one of the most common pre-purchase questions and one of the easiest to answer in a single sentence. Include the specific countries or regions, the standard delivery window, and whether expedited shipping is available.
Fit and sizing. For apparel, the size-chart question is basically mandatory — body-measurement guidance, how the garment runs (true to size, runs small, size up if between sizes). For furniture and housewares, swap "fit" for dimensions and compatibility — does the Homestead & Co. Oak Cutting Board fit in a standard drawer, is it reversible.
Ingredients and materials. For food, supplements, and skincare: what's in it, what's not in it, allergens. "Is the NutriPure Whey Isolate gluten-free?" is a direct yes/no that a schema-wrapped FAQ answers cleanly. For apparel and goods: material composition and sourcing.
Returns. Window, condition requirements, who pays for return shipping, any exceptions (final-sale items, personalized products). Shoppers check returns before buying, and an assistant that can quote your specific terms back reduces the objection at exactly the right moment.
Care instructions. Anything non-disposable deserves a care FAQ — cutting boards, cast iron, wool sweaters, leather goods, supplements with specific storage. The question is almost always "how do I keep this from being ruined?" and the answer is usually 2–3 sentences of concrete steps.
One rule against bloat: every FAQ entry should correspond to a question a buyer has already asked through support. If the same question shows up 20 times a quarter in your inbox, that's a FAQ. If you had to invent the question to fill a slot, delete it.
Edge cases: duplicate content, hidden answers, multi-language
Duplicate content across products. If shipping and returns FAQs are identical across every product, most of the FAQ block on every product page will be the same text. Google explicitly allows duplicate Q&A across product pages for FAQPage schema — it doesn't treat repeated Q&A as duplicate-content spam the way it does for duplicated descriptions. (Note: as of 2023, Google reduced FAQPage rich-result display in search to government and health sites, so don't expect rich-snippet stars in the SERP from this — but AI assistants and other crawlers still consume the schema.) AI assistants are the same. Don't burn time trying to write unique shipping FAQs for each SKU.
Hidden answers behind accordions. The schema doesn't care whether the answer is visible by default or hidden behind a click-to-expand. Google's guidance is that the answer text just needs to be on the page — in the HTML, readable without user interaction. That's usually true for accordions (content in the DOM, hidden by CSS). The failure mode is accordions that lazy-load content via JavaScript after a click; there, the answer isn't in the initial HTML and crawlers won't see it. Switch to a DOM-rendered accordion, or render the full answer text in a hidden div alongside the interactive one.
Multi-language stores. If you run Shopify Markets with translated storefronts, the FAQPage schema needs to be translated alongside the page content. A French shopper landing on /fr/products/... should see a French FAQ in both the rendered page and the schema. Schema Plus and JSON-LD for SEO both handle localization if the source content is stored per-locale; the manual path needs you to switch on request.locale in Liquid when building the JSON-LD.
Customer Q&A widgets. Some stores use an app where shoppers post questions and the store (or other shoppers) answer. That content is better marked up as QAPage, not FAQPage — QAPage expects a single primary question with an accepted answer plus optional suggested answers, whereas FAQPage expects an editorially curated list. Don't mix the two.
Verify the fix worked
After the schema is in place, re-run the curl check from earlier — you should see "@type":"FAQPage" in the HTML source of every product page with FAQs. Then run the markup through validator.schema.org and Google's Rich Results Test. Both will flag structural errors, missing required properties, or type mismatches. A valid FAQPage has zero errors and a clean listing of every Q&A pair. If Google can parse the schema, ChatGPT and Claude almost certainly can too.
The AI-side check takes longer. After a couple of weeks, ask ChatGPT or Claude a question that one of your FAQ entries answers — ideally with the exact product name or a close paraphrase. Crawl propagation varies by source, so expect weeks rather than days, and stores with existing crawl coverage tend to come back faster than ones starting cold.
FAQ schema is one of the few fixes where you're not writing new content — you're making content you already have legible to machines. An afternoon of schema work turns every existing FAQ into a retrieval chunk that answers a buyer's question in your words, at the exact moment they're deciding. Run a free audit on your store →