---
title: "FAQ · Unhead"
canonical_url: "https://unhead.unjs.io/docs/angular/schema-org/guides/recipes/faq"
last_updated: "2026-08-09T17:04:20.628Z"
meta:
  description: "Add FAQPage structured data with defineQuestion() and connect each Question to the page mainEntity graph."
  "og:description": "Add FAQPage structured data with defineQuestion() and connect each Question to the page mainEntity graph."
  "og:title": "FAQ · Unhead"
---

Home

`
Unhead on GitHub

Switch to AngularSwitch to TypeScriptSwitch to VueSwitch to ReactSwitch to SvelteSwitch to Solid.jsSwitch to Nuxt

**Recipes**

# **FAQ**

[Copy for LLMs](https://raw.githubusercontent.com/unjs/unhead/refs/heads/main/docs/schema-org/2.guides/4.recipes/faq.md)

Use `**defineQuestion()**` with `**defineWebPage({ '@type': 'FAQPage' })**` to mark up FAQ content and connect each Question to the page's `**mainEntity**` property.

[**~~Google stopped showing FAQ rich results on May 7, 2026~~**](https://developers.google.com/search/updates#removing-faq-rich-result). FAQPage markup remains valid Schema.org structured data, but it no longer creates a Google Search rich result.

## Useful Links

- [**~~defineQuestion~~**](https://unhead.unjs.io/docs/schema-org/api/schema/question)
- [**~~FAQPage - Schema.org~~**](https://schema.org/FAQPage)
- [**~~Question - Schema.org~~**](https://schema.org/Question)
- [**~~FAQ rich result removal | Google Search Central~~**](https://developers.google.com/search/updates#removing-faq-rich-result)

## How do I mark up FAQs?

[**~~defineQuestion~~**](https://unhead.unjs.io/docs/schema-org/api/schema/question) creates a Question node and resolves a string answer to an Answer object.

When the configured page path ends in `**/faq**`, `**defineWebPage()**` infers the `**FAQPage**` subtype.

Tips:

- The answer may contain HTML content such as links and lists.

```
import { defineQuestion, defineWebPage, useSchemaOrg } from '@unhead/schema-org/angular'

useSchemaOrg([
  defineWebPage({
    '@type': 'FAQPage',
  }),
  defineQuestion({
    name: 'How long does delivery take?',
    acceptedAnswer: 'Most orders arrive within three to five business days.',
  }),
  defineQuestion({
    name: 'Can I return an item?',
    acceptedAnswer: 'You can return an unused item within 30 days of delivery.',
  }),
])
```

## How should I structure FAQ content in HTML?

Keep the visible questions and answers consistent with the schema markup:

```
<div>
  <h1>Frequently Asked Questions</h1>

  <div>
    <h2>How long does delivery take?</h2>
    <div>Most orders arrive within three to five business days.</div>
  </div>

  <div>
    <h2>Can I return an item?</h2>
    <div>You can return an unused item within 30 days of delivery.</div>
  </div>
</div>
```

## Can I use HTML in FAQ answers?

Answer strings may contain HTML, including paragraphs, links, and lists:

```
import { defineQuestion, defineWebPage, useSchemaOrg } from '@unhead/schema-org/angular'

useSchemaOrg([
  defineWebPage({
    '@type': 'FAQPage',
  }),
  defineQuestion({
    name: 'How do I start a return?',
    acceptedAnswer: `
      <p>Open the order in your account and select “Start a return.”</p>
      <p><a href="/returns">Read the return policy</a> before sending the item.</p>
    `,
  }),
])
```

## Abridged JSON-LD Output

With a host of `**https://example.com**`, a path of `**/faq**`, and a page title of `**FAQ**`, the output for the first question looks like this:

```
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": ["WebPage", "FAQPage"],
      "@id": "https://example.com/faq#webpage",
      "name": "FAQ",
      "url": "https://example.com/faq",
      "mainEntity": [
        { "@id": "https://example.com/faq#/schema/question/1" }
      ]
    },
    {
      "@id": "https://example.com/faq#/schema/question/1",
      "@type": "Question",
      "name": "How long does delivery take?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Most orders arrive within three to five business days."
      }
    }
  ]
}
```

## Common Issues

### FAQ not showing as a rich result

Google no longer shows FAQ rich results. This is expected even when the markup is valid.

### Questions not appearing

Include both `**defineWebPage({ '@type': 'FAQPage' })**` and `**defineQuestion()**` to have Unhead add Question references to the page's `**mainEntity**` property.

### Is HTML in answers stripped?

Unhead preserves the answer string and escapes it safely inside the JSON-LD script. It does not sanitize HTML supplied in the answer.

## Related Recipes

- [**~~Setting Up Your Identity~~**](https://unhead.unjs.io/docs/schema-org/guides/recipes/identity): Define your organization/person
- [**~~How-To Guide~~**](https://unhead.unjs.io/docs/schema-org/guides/recipes/how-to): Step-by-step instructions

[Edit this page](https://github.com/unjs/unhead/edit/main/docs/schema-org/2.guides/4.recipes/faq.md)

[Markdown For LLMs](https://raw.githubusercontent.com/unjs/unhead/refs/heads/main/docs/schema-org/2.guides/4.recipes/faq.md)

**Did this page help you? **

[**E-commerce** Add Product structured data with defineProduct() so product pages can become eligible for search features showing prices, ratings, availability, and reviews.](https://unhead.unjs.io/docs/schema-org/guides/recipes/e-commerce) [**How To** Add HowTo structured data with defineHowTo(), including steps, images, supplies, tools, and time estimates.](https://unhead.unjs.io/docs/schema-org/guides/recipes/how-to)

**On this page **

- [Useful Links](#useful-links)
- [How do I mark up FAQs?](#how-do-i-mark-up-faqs)
- [How should I structure FAQ content in HTML?](#how-should-i-structure-faq-content-in-html)
- [Can I use HTML in FAQ answers?](#can-i-use-html-in-faq-answers)
- [Abridged JSON-LD Output](#abridged-json-ld-output)
- [Common Issues](#common-issues)
- [Related Recipes](#related-recipes)