FAQ schema in 2026: valid, readable by assistants, no rich result

You will not get FAQ rich results unless you are a well known government or health site. You should still add valid FAQPage schema. Assistants and Google read it, and it takes ten minutes to do right.

By , founder of Porteur · Updated 14 September 2026 · Markdown

What changed in August 2023

Google limited FAQ rich results to well known, authoritative government and health sites. Your product site can add valid FAQPage markup, but Search will not show the FAQ expansion under your result.

Nothing else broke. The schema is still valid. Google and other crawlers still parse it to understand your questions and answers.

Why use FAQ schema in 2026

  • Assistants and answer engines read FAQPage to ground answers. They often quote clean Q and A pairs.
  • Google still reads it for understanding, even if no rich result shows.
  • It takes little time. You can add it to a single page, or a few key pages like /pricing and /guides/getting-started.
  • It reduces ambiguity. A short answer in acceptedAnswer is easier for a model to cite than a long paragraph.

Do it once per page where an FAQ block helps users. Treat it as ten minutes that improves machine readability with almost no maintenance cost.

The exact shape of valid FAQPage markup

Use JSON LD. Put one FAQPage object with mainEntity as a list of Question. Each Question has acceptedAnswer of type Answer with text. Keep answers short and specific.

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Do I still get FAQ rich results in 2026?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No. Google shows FAQ rich results only for well known government and health sites as of 2026. The markup remains valid."
      }
    },
    {
      "@type": "Question",
      "name": "Where should I add FAQ schema on my site?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Add it on pages that already show visible FAQs, for example /pricing and /guides/getting-started. Match each visible question and answer."
      }
    },
    {
      "@type": "Question",
      "name": "Can I inject FAQ JSON-LD with JavaScript?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Google can render and read JSON-LD injected by scripts. Many answering AI crawlers do not run scripts, so server render it when you can."
      }
    }
  ]
}

That is enough. Do not add properties that are not in the spec for FAQPage. If you need an author or a date, you are likely marking up an Article, not an FAQ block.

The rule: your FAQs must be visible on the page

Google’s policy requires that any structured data matches content visible to users. If your page does not show the questions and answers, do not mark them up.

  • Use an accordion for each question on /pricing. The text in each panel must match the Answer text.
  • Do not add hidden FAQs only for bots. That is a policy violation and will be flagged in tests.
  • Keep the wording the same. If the visible question is “How do refunds work?”, the Question name must read exactly that.

A fixed page looks like this: a visible FAQ section with three to six questions, each one clickable, and one JSON LD block with the same Q and A pairs.

Where to place JSON LD and how to ship it

  • Preferred: server render a <script type="application/ld+json"> block in the head or the body.
  • Allowed: inject JSON LD with JavaScript. Google renders pages and can read it.
  • Caveat: many answering AI crawlers do not run scripts. If assistants matter to you, render it server side.
  1. Decide which pages get FAQs

    Pick pages that already answer short recurring questions. For example, /pricing, /terms, /guides/getting-started.

  2. Write the visible block

    Add a clean FAQ section to the HTML. One question per toggle with a short answer.

  3. Create the JSON-LD

    Copy the exact questions into Question.name and the exact answers into Answer.text. Use straight text, not HTML.

  4. Add to the page template

    Insert one JSON-LD script per page that carries FAQs. Avoid reusing the same FAQ block across unrelated pages.

  5. Ship and test

    Load the page in a browser. View source to confirm the JSON is present without running scripts if assistants matter to you.

Test your markup: what each tool tells you

ToolURLWhat it checksUse it when
Rich Results Testsearch.google.com/test/rich-resultsEligibility for Google rich results and missing required fields by type. Reads the rendered page.You want to confirm Google can see your JSON LD and that the page is not eligible for FAQ rich results. It will still show the parsed FAQPage.
Schema Markup Validatorvalidator.schema.orgSyntax and conformance to schema.org, without Google’s rules.You want to catch typos and type errors in FAQPage, Question and Answer.
Search Consolesearch.google.com/search-consoleEnhancement reports per rich result type Google finds on your site.You want site level error and warning counts. FAQ may not show as an enhancement if no rich result is supported.

Both the Rich Results Test and the Schema Markup Validator read the rendered page. Markup added by a script after load still appears in the tests because Google renders pages. That does not mean an assistant crawler will run your script.

Pick useful questions, avoid marketing fluff

Assistants prefer short, factual answers. Marketing claims do not help them cite you. Write questions in the user’s words. Answer in one or two sentences.

  • Good: “How long does the free trial last?” with “14 days” and the terms in one line.
  • Good: “Do you offer refunds?” with the rule in one sentence and a link to /refunds.
  • Weak: “Why choose YourProduct?” with a sales paragraph. Do not mark this up as FAQ.

Draft three to six real support questions for /pricing. Keep them stable. Update the JSON LD when the policy changes, for example a new refund window.

Avoid these mistakes

  • One FAQ block copied to every page. It dilutes relevance and can conflict with the visible content.
  • Questions not visible on the page. The Rich Results Test can flag this as a policy issue.
  • Answer text that differs from the visible answer. Keep them identical, including numbers and dates.
  • HTML inside Answer.text. Use plain text. If you need links, put them in the visible answer and keep the JSON as text.
  • Using QAPage instead of FAQPage. QAPage is for multi user Q and A forums, not your product page.
  • Assuming FAQ schema will improve rankings. It will not, and FAQ rich results will not appear for most sites as of 2026.

Example placements on a small site

  • /pricing: billing cycles, refunds, taxes, invoice access.
  • /guides/getting-started: account setup, limits, first data sync.
  • /product/shipping-labels: label sizes, printers, supported carriers.
  • /legal/terms: plain answers to the most asked clauses, with links to anchors on the page.

Do not add it site wide. Add it where the user expects short answers and where assistants might quote you. Keep it specific to the page’s topic.

When not to use FAQPage, and what to use instead

  • You have a single question that deserves a full article. Use Article, not FAQPage, and answer in depth.
  • You run a community Q and A page with many answers and votes. Use QAPage, not FAQPage.
  • You wrote a step by step guide. HowTo markup is harmless but no longer earns rich results since September 2023.
  • You want reviews to show. Use Review or aggregateRating on a supported item type, not on Organization or LocalBusiness for self serving reviews.

Keep it maintainable

Put the FAQ content in one source of truth, then generate both the visible HTML and the JSON LD from it. This avoids drift when policies change.

  1. Store FAQs as data

    Use a YAML or JSON file in your codebase, or a headless CMS field with question and answer keys.

  2. Render both views

    Map the same fields to the visible accordion and to the JSON LD script at build time or on the server.

  3. Review quarterly

    Skim /pricing and /guides/getting-started every 28 days if they change often, otherwise quarterly. Update both views together.

Questions

Sources

Check my site, free

Want to see where assistants could cite your pages, and which rivals already write clear FAQs? Paste your URL for a free check that runs in about thirty seconds and shows three findings; connect data later in Porteur if you like.

  • Free check, no card
  • Read-only, your own accounts
  • Readable by your agent

Read next