FAQPage Schema and Rich Results, When Google Shows FAQs (2026)

faqpage5 min readJuly 25, 2026

Author: DevStudio.it

TL;DR

FAQPage JSON-LD can power expandable questions in Google results, but since 2023/2024 Google has tightly limited who gets FAQ rich results (often authoritative / government / health contexts in many markets; policies shift). Even without the snippet, on-page FAQs still help UX, featured snippets, and E-E-A-T. This guide focuses only on FAQ (complementing the general JSON-LD article): when schema is worth it, how to avoid content↔markup mismatch, how to ship it in Next.js, and how to test in Rich Results Test / GSC. Organization, BlogPosting, and BreadcrumbList live in the Schema.org overview post.

Who is this for

  • Service firms with FAQ sections on offers, landings, or blogs
  • Next.js developers adding structured data from markdown
  • SEOs who saw competitor FAQ SERP features and need a compliance checklist
  • Teams that lost FAQ rich results (do not panic, the content remains)
  • Authors with FAQ in HTML but no JSON-LD (or the reverse)

Keyword

faqpage json-ld, schema faq rich results 2026, faqpage nextjs, faq structured data google, rich results test faq, faq seo corporate website

What FAQPage is (and is not)

FAQPage is a Schema.org type for a page with questions and answers. In JSON-LD:

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How long does a corporate website launch take?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "A typical scope is 4–8 weeks from brief to production, depending on locales and integrations."
      }
    }
  ]
}
It is It is not
Markup for a visible on-page FAQ A way to stuff invisible keywords
Complementary to QAPage (user Q&A threads) A replacement for Organization / LocalBusiness
A potential rich result A guaranteed #1 ranking

QAPageFAQPage: QA is forum-style threads. Corporate sites almost always want FAQPage.

When Google shows (or withholds) FAQ rich results

Google’s policy evolves. Practical 2026 reality:

  • FAQ rich results are restricted, many ordinary commercial pages do not get the snippet despite valid JSON-LD
  • FAQ + schema is still worth it for UX, long answers under featured snippets, and People Also Ask alignment
  • Markup must mirror visible content
  • Medical / YMYL topics face stricter rules

Business takeaway: write FAQs for users and sales (scope, process, “from” pricing); treat the rich result as a bonus, not KPI #1.

Compliance pitfalls

  1. Every JSON-LD question must appear on the page (HTML), accordion is fine if present after SSR
  2. Schema answer ≈ visible answer (not a teaser vs an essay)
  3. No ads / “buy now” as the only answer content
  4. No FAQ about a different URL
  5. Avoid cloning the same FAQ across 20 landings, thin + spammy
  6. Do not mix Review and FAQ into one confusing block
  7. Language matches the locale (EN copy on /en)
Mistake Outcome
Schema FAQ, no UI section Rejection / quality issues
40 keyword-stuffed questions Markup ignored
Client-only FAQ (empty HTML) Google misses the content
FAQ as images only No text for snippets

Where FAQs pay off on a service site

URL FAQ job
Offer / services “From” pricing, timeline, scope, hosting
Ads landing Claims aligned with the ad
Case study Method, stack, limits
Guide post Summary + CTA
Contact Reply SLA, what to prepare for a brief

3–7 strong questions beat 25 vague ones.

Next.js App Router implementation

1. FAQ in blog markdown

If your pipeline detects a ## FAQ section and emits JSON-LD, keep questions as ### Question plus an answer paragraph. Parser consistency means zero HTML↔schema drift.

2. Manual script on an offer page

// components/FaqJsonLd.tsx
type FaqItem = { question: string; answer: string };

export function FaqJsonLd({ items }: { items: FaqItem[] }) {
  const jsonLd = {
    '@context': 'https://schema.org',
    '@type': 'FAQPage',
    mainEntity: items.map((item) => ({
      '@type': 'Question',
      name: item.question,
      acceptedAnswer: {
        '@type': 'Answer',
        text: item.answer,
      },
    })),
  };

  return (
    <script
      type="application/ld+json"
      dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
    />
  );
}

3. Visible accordion (SSR)

export function FaqSection({ items }: { items: FaqItem[] }) {
  return (
    <section aria-labelledby="faq-heading">
      <h2 id="faq-heading">FAQ</h2>
      <div>
        {items.map((item) => (
          <details key={item.question}>
            <summary>{item.question}</summary>
            <p>{item.answer}</p>
          </details>
        ))}
      </div>
      <FaqJsonLd items={items} />
    </section>
  );
}

details/summary is accessible and indexable without JavaScript. Avoid FAQs loaded only in useEffect from an API unless the same copy is in the RSC HTML.

4. CMS / database-backed FAQ

If offer FAQs live in Branchly, feed the same records into UI and JSON-LD from a Server Component, one source of truth. SSR hosting on DevStudioIT Cloud ensures the first HTML response contains the questions.

Testing

  1. Rich Results Test, URL or code
  2. GSC enhancement / rich-result reports when available
  3. View Source / crawled page, FAQ present in HTML?
  4. After changes: wait for re-crawl; missing snippet ≠ broken schema

Schema.org validation ≠ guaranteed Google display.

FAQ alongside other types on one page

One URL can carry:

  • Organization / WebSite (layout)
  • BreadcrumbList
  • FAQPage
  • Service or BlogPosting

Use @graph or separate JSON-LD scripts. Do not force FAQ into Article alone on a services offer page.

Publish checklist

  1. 3–7 real customer questions (from calls / email)
  2. Concrete answers, no fluff
  3. Section visible in SSR HTML
  4. JSON-LD 1:1 with the UI
  5. Locale matches the URL
  6. Rich Results Test clean of critical errors
  7. CTA after FAQ → #formularz-kontakt
  8. After 30 days: GSC + whether a snippet appeared (bonus)

FAQ

Is FAQ schema useless without a rich result?

No. It structures content, supports classic snippets / PAA, and helps assistants. The rich result is optional.

How long should answers be?

Long enough to close the question (usually 2–5 sentences). Move essays into articles and link out.

Can I put FAQPage on every subpage?

Only with unique, on-topic FAQs. Cloning the same block everywhere looks spammy.

FAQ inside a click-opened modal, OK?

Risky if content is missing from the initial HTML. Prefer an SSR accordion.

CTA

Want FAQ + JSON-LD on your Next.js offer pages and blog, with SSR and rich-result testing?

Related posts

JSON-LD and Schema.org, business website SEO in Next.js (2026 guide)
9 min read
Canonical URLs and Duplicate Content in Next.js, PL/EN/DE, hreflang, Trailing Slash (2026)
5 min read
robots.txt in Next.js App Router, Crawl Budget and Disallow Pitfalls (2026)
5 min read

About the author

We build fast websites, web/mobile apps, AI chatbots and hosting setups — with a focus on SEO and conversion.

Recommended links

From theory to production — Branchly, our hosting stack and shipped work.

Like how we think? Let's build something together.

Start project configuration