Key takeaways
- FAQ schema is JSON-LD of type FAQPage — questions and answers that also appear as visible text on the page.
- Google may show FAQ rich results. Markup is eligibility, not a guarantee.
- If the FAQ is not on the page, do not mark it up.
- Write answers a staff member would send: fabric, fit, returns window. Not 'we care about quality'.
- Paste the live URL into the ChatGPT SEO check after you publish. Rankly can add FAQ schema from the admin.
FAQ schema is a machine-readable list of questions and answers. On Shopify it is almost always JSON-LD of type FAQPage. Google may turn that list into extra lines under your result — FAQ rich results. ChatGPT and other answer engines may quote those answers instead of inventing a returns policy.
“May” is the honest word. Markup makes you eligible. It does not force a rich result and it does not buy a citation. Write FAQs because a shopper asked the question twice this week. Then mark up the same text so a crawler does not have to guess.
This guide is what to put in the JSON-LD, what to keep visible on the page, and how to check a live Shopify URL.
FAQ schema vs Product schema vs an accordion
Three different objects:
| Thing | Job | Typical @type |
|---|---|---|
| Product JSON-LD | Name, image, price, availability | Product + Offer |
| FAQ JSON-LD | A list of Q&As | FAQPage |
| Accordion / details block | The UI shoppers open | (HTML, not schema) |
You can have a beautiful accordion and zero schema. You can have schema and a hidden FAQ the shopper never sees. Only the third combination is useful: visible Q&As + matching JSON-LD.
Google’s own guidance is blunt on this: mark up content that is on the page. If Rankly (or any app) emits FAQ JSON-LD, the same questions should render in the theme — an accordion, a “Common questions” block, the product description, a page. Pick one surface and keep the text in sync.
For Product markup itself, see Shopify product schema for AI. This post is the FAQ layer on top.
What Google will and will not do
FAQ rich results have been tightened over the last few years. Many merchants still write as if every FAQPage draws a ten-line dropdown under the blue link. That is not how Search looks today.
Treat rich results as a bonus. Treat the FAQ as:
- Copy that cuts tickets (“When does this ship?”, “Is it machine washable?”)
- Structured answers a model can quote without inventing a 30-day window you do not offer
- Extra on-page text that is actually specific, unlike “We care about quality”
If Google shows the dropdown, good. If it does not, you still published the answers. That is the right incentive.
Do not:
- Mark up FAQs that are ads (
Who is the best linen brand? Us.) - Mark up FAQs that are not visible
- Duplicate the same 12 questions on 400 product URLs
- Stuff keywords into the question (
What is the best cheap linen overshirt sage colour buy online?)
What to ask (and how to answer)
Pull questions from real tickets, chat logs, and the search box on the store. If nobody asked it, skip it.
Good product-page FAQs:
- What is it made of, in grams or a standard name, not “premium cloth”
- How does it fit vs a known size chart
- What is in the box
- How do I wash / care for it
- Which variant ships from where, if that differs
Good policy / page FAQs:
- Returns window and who pays postage
- Cutoff time for same-day fulfilment
- Which countries you do not ship to
- How long an order can be edited (that is a Reviso conversation on the operations side, not schema)
Example answers (labelled example, not a live store). Product: Harbour Linen Overshirt.
Q: What fabric is the Harbour linen overshirt? A: A mid-weight OEKO-TEX linen, about 185 GSM, with corozo buttons. It is not lined.
Q: How does it fit? A: Relaxed. The size chart is on the product page. If you are between sizes and want it closer to the body, size down.
Q: Is it machine washable? A: Cold wash, hang dry. Heat will shrink it. We do not recommend tumble drying.
Those answers can be checked. “It’s luxurious and perfect for any occasion” cannot.
Keep answers short enough to quote. A FAQ is not a blog post. If you need a 400-word care essay, link it from a one-sentence FAQ answer.
A labelled JSON-LD example
This is a labelled example. Do not paste it with Harbour facts onto a store that does not sell this shirt.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What fabric is the Harbour linen overshirt?",
"acceptedAnswer": {
"@type": "Answer",
"text": "A mid-weight OEKO-TEX linen, about 185 GSM, with corozo buttons. It is not lined."
}
},
{
"@type": "Question",
"name": "How does the Harbour linen overshirt fit?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Relaxed. Use the size chart on the product page. Between sizes and want a closer fit? Size down."
}
},
{
"@type": "Question",
"name": "Is the Harbour linen overshirt machine washable?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Cold wash, hang dry. Heat will shrink it. Do not tumble dry."
}
}
]
}
The name is the question shoppers see. The text is the answer shoppers see. If you change the accordion and forget the JSON-LD, you created a mismatch — the same class of bug as a JSON-LD price that does not match the buy box. The CRO Audit for Shopify stores fails C6 when Offer markup disagrees with the catalogue. FAQ markup that disagrees with the accordion is the FAQ version of that bug. Fix both in one sitting.
You can keep Product and FAQ in one @graph or as two <script type="application/ld+json"> tags. One Product graph plus one FAQPage is easier to debug than a 2,000-line blob from three apps.
How to add FAQ schema on Shopify without a developer
Three honest paths:
- Theme block. A FAQ accordion section that also prints JSON-LD. Best when a developer already built it. You edit questions in the theme editor.
- A page.
/pages/shipping-faqwith visible Q&As and a JSON-LD snippet in a custom liquid block. Good for policy FAQs. Weak for per-product fabric questions. - An SEO app. Rankly adds FAQ schema and AI readiness from the admin, with a Google-style preview of how a listing can expand. Free includes FAQ schema inside the credit cap. You still need those questions visible on the storefront.
Do not install two FAQ apps. Two FAQPage objects on one URL is how validators complain and how Google picks neither.
If your theme already emits FAQ JSON-LD from a section, use that section and leave the app’s FAQ off. One source of truth.
How to check it on a live URL
- Publish the page. Preview in the theme editor is not enough; crawlers read the live HTML.
- View source. Search for
FAQPage. Confirm the questions in JSON match the accordion. - Run Google’s Rich Results Test on the URL. Eligible ≠ currently showing in Search.
- Paste the same URL into the ChatGPT SEO check for Shopify stores. That check reads public JSON-LD, indexability, robots.txt and
llms.txt. It is not a citation rank. Fails name Rankly as the fix-with app. - Use the built-in “ask ChatGPT” button. If the model invents a 90-day return and your FAQ says 14, the FAQ is not being used — or the model is quoting another page. Fix the visible policy, then the markup.
Password-protected stores: use the storefront password when the check asks, not staff login.
Product pages vs collections vs policies
Product. FAQs that change with the SKU: fabric, fit, pack contents, voltage, scent notes. Three to six is plenty.
Collection. FAQs about the group: “Are these all OEKO-TEX?”, “Which shirts are relaxed fit?”. Do not dump every product’s care notes here.
Policy / shipping page. The canonical place for returns, cutoff times, and countries you skip. Link to it from product FAQs instead of pasting the legal text 400 times.
Homepage. Shop identity belongs in Organization / WebSite schema. A homepage FAQ is optional and often noisy. If you add one, make it about the shop (Do you ship to the EU?), not a random product.
For homepage identity see Shopify homepage schema for AI. For the broader JSON-LD punch list see Shopify JSON-LD checklist.
Common failure modes
Invisible FAQ. App writes JSON-LD, theme never renders the questions. Validators may still pass. Shoppers see nothing. Models might read the JSON, Google may treat it as hidden. Show the text.
Stuffed questions. Best cheap linen shirt sage? is not a question a person asked.
Outdated answers. You changed returns from 30 to 14 days in the policy page and left FAQ schema on products at 30. That is how you get charged-back customers and a confused model.
Duplicate FAQPage. Theme + app + a custom liquid block. Keep one.
FAQ as a substitute for Product Offer. A FAQ that says “It costs $120” while JSON-LD Offer says $98 is a C6-class mismatch. Price belongs in Offer markup and the buy box, not only in a FAQ.
AI-generated FAQs with invented specs. If the generator adds “100% organic” and the mill certificate says OEKO-TEX Standard 100 but not organic, delete it. Rankly can draft FAQs; you still own the facts.
FAQ schema is a list of true answers in a shape machines already know. Write the answers for the ticket queue. Mark up the same words. Check the live HTML. That is the whole job — rich results, when they appear, are a side effect.
Frequently asked questions
What is FAQ schema on Shopify?
Structured data (usually JSON-LD) that lists questions and answers as a FAQPage. Search engines and AI systems can read the list without guessing from paragraphs.
Do FAQ rich results still show in Google?
Sometimes, on eligible pages. Google has limited where FAQ rich results appear. Publish FAQs because they help shoppers and models, not because a dropdown under the blue link is promised.
Should FAQ schema go on every Shopify product?
Only when that product page actually shows FAQs. A shared shipping FAQ belongs on the policy page. A fabric FAQ belongs on the products that use that fabric. Do not clone 40 dummy questions onto every SKU.
Is FAQ schema the same as Product JSON-LD?
No. Product markup names the item, image, price and availability. FAQ markup is a list of Q&As. You usually want both on a product page, as separate types in the same graph or as two script tags.
Can I add Shopify FAQ schema without a developer?
Yes. An SEO app can emit FAQ JSON-LD, or a theme block can print visible FAQs plus a JSON-LD script. Rankly adds FAQ schema from the admin. You still need the questions visible on the page.
Will FAQ schema get my store cited in ChatGPT?
It makes the answers machine-readable. It does not buy a citation. The SEO check on this site scores whether the page is readable, not whether a model already quotes you.



