Tutorial7 min readMay 17, 2026

How to add FAQ schema to Shopify without editing your theme

Shopify has no built-in FAQ schema. Adding it manually means editing Liquid files that break on theme updates. This guide shows a safer approach using theme app extensions.

A product page with ten FAQ items gives Google ten Q&A pairs to display as an expandable accordion in search results. The same ten items give AI agents ten ready-made answers to pull into product recommendation responses. When someone asks ChatGPT or Google Gemini whether your rug ships rolled or flat, or whether your supplement is third-party tested, the answer can come directly from your FAQ schema — attributed to your store.

Shopify does not add FAQ schema automatically. Basic Product schema ships with most themes, but FAQPage schema is not part of Shopify's default output. You have to add it yourself, and the standard way to do that carries a persistent maintenance problem.

This guide covers what FAQ schema does, how to add it the manual way (and why that approach breaks), and a more durable method using Shopify theme app extensions.

What FAQ schema does

FAQ schema uses the FAQPage type from schema.org. The markup is a JSON-LD block that lives in your page source and contains one or more Question objects, each paired with an Answer. Crawlers read these directly — no visible page content required.

In Google Search, valid FAQPage schema on a product or collection page can trigger the rich result accordion: your listing expands in the SERP to show individual Q&A pairs that visitors can open without clicking through. That accordion takes up more vertical space and draws attention away from competitors above and below you.

For AI agents, FAQ schema is particularly useful because the answers are already formatted as natural language responses. When an AI model is deciding what to say about your product, a structured list of questions and answers is easier to incorporate than a block of prose it has to parse from your description field. The model can match a user's question against your FAQ items and quote or paraphrase your answer with confidence.

The markup itself is straightforward:

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Does this ship internationally?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, we ship to 40+ countries."
      }
    }
  ]
}

You can include as many Question objects as you have meaningful Q&A pairs. Google does not publish a hard cap, but the guidance is to include only questions and answers that appear on the visible page — do not use the schema as a hidden content injection channel.

The manual method

The direct approach: open your Shopify admin, go to Online Store, then Themes, then Edit code. In Dawn and other Online Store 2.0 themes, the file you want is sections/main-product.liquid. In older themes, it may be templates/product.liquid. Add a <script type="application/ld+json"> block with your FAQPage JSON inside it.

The Q&A content itself is the harder part. You can hardcode it — write the JSON directly into the Liquid file with fixed question and answer strings. That works until your FAQ changes, at which point you have to go back into the code editor. The more maintainable approach is to store FAQ content in Shopify metafields and write Liquid to pull the values into the JSON-LD block at render time. That requires understanding Liquid syntax and Shopify's metafield access patterns — not trivial if you are not a Shopify developer.

The core problem with theme file edits: Shopify theme updates overwrite your changes. The next time you update Dawn, or switch to a different theme, your schema code is gone. You start over.

This is not a theoretical risk. Theme updates happen regularly, and merchants apply them without thinking about what custom code lives in the Liquid files. A store that added FAQ schema in January may have lost it in February after a Dawn update, with no visible indication anything changed.

The manual method works. It is also the right approach if you have a developer maintaining the theme and treating it as version-controlled software. For most merchants, that is not the situation.

Theme app extensions: the safer approach

Shopify's theme app extension system gives apps a way to inject blocks into a theme without touching the theme's own files. The extension code lives inside the app, not inside your theme. When you update your theme, the extension stays intact because it was never part of the theme to begin with.

App blocks added through the theme editor appear as dedicated sections you can position anywhere on a page. The app that provides the block handles its own rendering — it can read from Shopify metafields, the Admin API, or its own database. The theme update problem disappears because the two systems are separate.

For FAQ schema specifically, a theme app extension can read Q&A pairs stored in product metafields or in the app's own storage, then render the FAQPage JSON-LD block at page load. The schema output is present for crawlers and AI agents without any Liquid changes in your theme.

This is the architecture that Shopify app developers use when they need to inject structured data reliably across theme updates. It requires the app to be installed and the extension block to be enabled in your theme editor, but after that setup, it runs without maintenance.

Adding FAQ schema with the AgentReadyHQ app

AgentReadyHQ uses a theme app extension to inject FAQ schema. Here is the setup process:

  1. Install the app from apps.shopify.com/agentready. The app uses a Shopify theme app extension to inject schema blocks — nothing is written to your theme files during install.
  2. In the app, go to the FAQ Schema tab. This is where you create and manage Q&A pairs at the product level.
  3. Select a product from your catalog. Products are pulled from your store via the Admin API — you do not need to export or import anything.
  4. Add question and answer pairs using the form fields. Write the question as a customer would phrase it, and write the answer as a complete sentence or short paragraph. These strings become the name and text values in the rendered JSON-LD.
  5. Enable the FAQ Schema app block in your theme editor. Go to Online Store, then Themes, then Customize. Find the product page template and add the FAQ Schema block from the App blocks section in the left panel. Save the customization. The block renders the JSON-LD in your page source from this point on.
  6. Verify the output with Google's Rich Results Test. Paste your product page URL into the tool and run the test. You should see a FAQ rich result detected with your Q&A pairs listed. If the rich result does not appear, check that the app block is saved and that the FAQ items are not empty.

After this setup, you can update FAQ content inside the app without touching your theme. If you update your theme later, the schema block remains active because the extension is independent of the theme files.

The app also handles Organization and breadcrumb schema through the same extension system. If you want complete structured data coverage across your Shopify store without a code editor, the full structured data guide covers all the schema types in one pass.

Add schema to every Shopify page without touching your theme

The AgentReadyHQ app injects FAQ, Organization, and breadcrumb schema via Shopify theme extension — no Liquid, no code editor.

Related Articles