Skip to main content
← πŸ“„ HTML & the platformΒ·Module A6 Β· Lesson 8
TaskBuild a FAQ section. Visible: <section><h2>FAQ</h2> + two <details><summary>question</summary><p>answer</p></details>. Hidden: <script type='application/ld+json'> matching FAQPage with the same two Q&A pairs.

JSON-LD FAQPage: SERP accordion

100 XP7 min
Theory

When FAQ markup wins

Pages with an FAQ section + valid FAQPage structured data sometimes get an expandable accordion right in the Google SERP β€” questions visible without ever clicking your link. Sounds bad ("they get the answer without visiting") but in practice these results dominate the page real-estate and grab attention.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Do I need to install Python?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No. Python runs in your browser via Skulpt."
      }
    },
    {
      "@type": "Question",
      "name": "Is it really free?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "First 15 lessons free, no card. Then a 7-day trial."
      }
    }
  ]
}
</script>

When the rich result actually shows

  • The visible page must contain THE SAME questions + answers (Google compares).
  • Each question must be a real user question, not marketing copy.
  • No promotional content in the answers β€” Google demotes it.
  • Site must have organic search traffic to be considered.

Pair with visible FAQ

Don't ship JSON-LD without the matching HTML. Best pattern:

<section>
  <h2>FAQ</h2>
  <details>
    <summary>Do I need to install Python?</summary>
    <p>No. Python runs in your browser via Skulpt.</p>
  </details>
  <details>
    <summary>Is it really free?</summary>
    <p>First 15 lessons free, no card.</p>
  </details>
</section>
<script type="application/ld+json">{ ... matching FAQPage ... }</script>
πŸ”’

Sign up to start coding

Theory is open to everyone. The interactive editor, live preview, and check are unlocked with a 7-day free trial β€” card required, cancel anytime.

Sign up β€” free trial β†’

First 10 lessons in each track are free. No card needed for those.

← PreviousNext lesson β†’

Get one Python or web tip a day β€” by email

Short, hand-written, no spam. Unsubscribe in one click.