# FAQ and HowTo schema after Google's 2023 changes: still worth it?

> Google stopped showing FAQ rich results for most sites in August 2023 and removed HowTo a month later. What that means for your markup, when FAQPage still makes sense and what earns rich results now.

Updated 2026-09-25 · Structured data · HTML version: https://getreport.app/guides/faq-and-howto-schema-after-googles-changes

For four years an FAQ block at the bottom of a page was the cheapest rich result on the web: two questions in JSON-LD and the listing doubled in height. In August 2023 Google took it away from almost everyone, and a month later removed HowTo rich results altogether. Plugins still generate both, agencies still recommend them, and the markup still validates, so the question comes up weekly: keep it, remove it, or add it? This guide gives the short history, the honest answer for each case, a valid FAQPage sample for the pages that deserve one, and the list of what still earns a rich result in 2026.

## Quick answer

- **FAQ rich results**: shown only for well-known, authoritative government and health sites since 8 August 2023. For everyone else the markup is valid, harmless and invisible in Google's results.
- **HowTo rich results**: removed completely in September 2023. The markup is valid schema.org and does nothing in Google Search.
- **Keep** `FAQPage` where the page genuinely has questions and answers that are visible on it and it costs you nothing (a plugin generates it).
- **Do not add** either type to get a rich result, and remove HowTo blocks or plugins you installed only for that.
- **Never** mark up questions that are not on the page, or promotional copy dressed as Q&A.
- The [schema validator](https://getreport.app/tools/schema-validator) lists the types on the page, checks FAQPage's properties, and shows which types can still earn a rich result.

## What changed, and what did not

On 8 August 2023 Google announced two changes to reduce clutter in results. FAQ rich results (the expandable questions under a listing) would only be shown for "well-known, authoritative government and health websites"; for all other sites they would no longer appear regularly. HowTo rich results (the numbered steps with images) would only be shown on desktop. On 13 September 2023 the desktop exception ended: HowTo rich results were removed entirely, the Rich Results Test stopped reporting HowTo, and the Search Console HowTo report was retired.

Google was explicit about the rest: the changes are about display, not about penalties. Pages with the markup are not demoted, the markup is not "spam", and there is nothing to remove for safety. `FAQPage` remains a documented Google type with the same required properties as before; `HowTo` is no longer documented as a rich result type at all.

What did not change is that both are ordinary schema.org vocabulary. Other search engines and the answer and assistant products that read structured data can still parse a question-and-answer list, and a well-formed one helps them match a question to your answer. Nobody publishes a guarantee for that, which is why the advice below turns on cost: keep it when it is free and true, never build for it.

## How getReport checks it

> **Free tool:** [Schema markup validator](https://getreport.app/tools/schema-validator): Find and validate JSON-LD and microdata on any page: parse errors, missing required properties, rich-result eligibility and duplicate entities, with the fix for each.

The validator reads each JSON-LD block, lists the types it declares, checks known types against their required properties and reports which of them are eligible for a rich result. Three lines in the panel do the work:

![The schema panel: the detected types line listing every root entity on the page, the required properties finding naming the type and the property it lacks, and the eligibility line saying which types are not yet eligible](https://getreport.app/guides/img/faq-and-howto-schema-after-googles-changes/schema-panel.webp "Types the report has no rich-result table for, such as HowTo, appear in the detected types line and nowhere else.")

> **Check: Structured data types.** These are the entities the page declares. Google can only show rich results for the types it documents, so the list tells you what you can earn from this page.
>
> 1. Compare the list with the rich-result types Google supports (Product, Article, Event, BreadcrumbList, LocalBusiness…) and add the one that fits this page.

This is the inventory. Everything the page declares is listed, including `HowTo`, `Question` roots and anything a plugin added that you did not know about. Two `FAQPage` roots on one page is a common surprise: a theme block and an SEO plugin block, each with its own questions.

> **Check: Rich result eligibility.** Rich results (price, stars, breadcrumbs or event dates under your listing) make it bigger and earn more clicks than a plain blue link. An entity with missing required properties does not qualify.
>
> 1. Fix the properties listed under "required properties missing" first; eligibility follows automatically.
> 2. Test the page with Google's Rich Results Test after the change.

The report keeps `FAQPage` in its table of rich-result types because Google still documents it, so a complete FAQPage is reported as eligible. Read that as "complete against Google's documented properties", not as "Google will show the questions"; for a site that is not a government or health authority, it will not. `HowTo` is not in the table: a page with only HowTo markup gets an informational result saying no supported types were found, with the list of the types that are.

> **Check: JSON-LD syntax.** A JSON-LD block with a syntax error is ignored completely, so Google reads no structured data from it. One stray comma or missing quote costs the whole block.
>
> 1. Open the technical detail to see the parser message and the block number.
> 2. Paste the block into a JSON validator, fix the character it points at, and run this check again.

FAQ blocks are the JSON-LD most likely to be broken, because the answer text is written by an editor and injected into JSON by a template that forgets to escape quotes and line breaks. One straight quote inside an answer and the whole block fails to parse, which the finding reports with the block number and the parser's message. This matters more than eligibility: a broken block is ignored for every consumer, not only Google.

## Step by step

### 1. Find out what you have

Run the validator on a page you suspect (a service page with an FAQ section, a tutorial with steps). The detected types line tells you which of the following you are dealing with:

| On the page | Do this |
| --- | --- |
| `FAQPage`, questions visible on the page, generated by a plugin or block | Keep it; check it is complete and parses |
| `FAQPage` with questions that are not on the page, or one block repeated on every page | Remove it |
| `HowTo` from a block or plugin added for the rich result | Remove the block or plugin if it costs weight; keep the visible steps |
| `HowTo` from a recipe or tutorial plugin that also renders the steps | Leave it; it is harmless |
| Nothing | Add nothing for rich results; add `FAQPage` only if the page is an FAQ and a plugin makes it free |

### 2. Keep FAQPage where it is true and free

Google's own guidelines for `FAQPage` have not changed and are the test for keeping it: the page is written by the site (not user-submitted answers), the same questions and answers are visible on the page, they are not advertising, and the questions are not repeated across the site. A support page with eight real questions passes. A product page with three marketing questions ("Why is X the best?") pasted on every product does not, and never did.

When it passes, a complete block is short. Two questions, in a `<script type="application/ld+json">` in the page:

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Do you ship outside Croatia?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, to every EU country. Delivery takes 2–4 working days and costs €6.90; orders over €80 ship free."
      }
    },
    {
      "@type": "Question",
      "name": "Can I return an opened item?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Within 14 days, yes, as long as the packaging is intact. Start a return from the order page in your account."
      }
    }
  ]
}
```

The report requires `mainEntity`, a `name` on each Question and `acceptedAnswer.text` on each, which matches Google's required properties. `text` may contain simple HTML (`<p>`, `<a>`, lists) but every double quote inside it must be escaped as `\"` and line breaks written as `\n`; that is where hand-written blocks and naive templates fail.

### 3. Remove HowTo you added for the rich result

If the only reason a HowTo block exists is the steps carousel, it is now dead weight: a script tag on every tutorial, sometimes a plugin with its own CSS and JavaScript on every page. Delete the block, keep the visible numbered steps (they are the content), and remove the plugin if HowTo was its only job. Recipe plugins are a different case: `Recipe` still earns a rich result, and its `recipeInstructions` are `HowToStep` items by design; leave those.

There is nothing to "clean up" for Google when you leave HowTo in place. It is simply not read for any result feature.

### 4. Do not fake Q&A

The temptation after 2023 is to keep marking up questions for the answer engines. The same guidelines apply, and they are the ones Google enforces manually: questions must be on the page, answers must be the site's own, and the markup must describe the page rather than decorate it. A page whose visible text has no questions but whose JSON-LD has ten is structured data spam in Google's terms, and a manual action for it removes every rich result on the site, not only the FAQ.

### 5. Put the effort where rich results still are

In 2026 Google documents rich results for, among others: Product (price, availability, ratings, and the merchant listing formats), Article (headline, image, date, Top Stories), Breadcrumb, Organization (logo and brand details), LocalBusiness (hours, address, the knowledge panel), Event, Recipe, JobPosting, Video, Course list, Dataset and Review snippet on the types that allow it. The report's own table mirrors the common ones: Article and its subtypes, Product, BreadcrumbList, FAQPage, LocalBusiness, Recipe, Event, VideoObject, Review and AggregateRating.

Some others have gone the way of HowTo. Sitelinks search box markup stopped being used in late 2024, and in June 2025 Google removed support for a further set that included Course Info, Claim Review, Estimated Salary, Special Announcement and Vehicle Listing. The pattern is consistent: features few sites used well are retired; the core commercial and content types stay. Spending the FAQ hour on a complete Product or Article block, or on a BreadcrumbList that every inner page can carry, pays back on every listing. The [Article and BlogPosting guide](https://getreport.app/guides/article-and-blogposting-schema) and the [JSON-LD basics](https://getreport.app/guides/json-ld-basics) cover the two most sites need first.

### 6. Validate

Re-run the schema validator: the JSON-LD parses finding passes, the required properties finding passes for FAQPage, and the detected types line lists what you meant to keep and nothing else. Then check the page in Google's Rich Results Test, which still validates `FAQPage` and will tell you if the block is malformed even though it will not preview the result for your site.

## Platform notes

### WordPress

**Yoast SEO** ships an FAQ block for the block editor, and older installs still have its How-to block. The FAQ block writes the questions into the page's schema graph as `FAQPage` with the visible questions, so it passes the "on the page" test by construction. The How-to block renders the steps and emits `HowTo` markup; the markup is harmless, and the block is still a reasonable way to lay out steps if you like its formatting. Converting it to a plain list removes a few kilobytes of markup per page and nothing else.

**Rank Math** has FAQ and HowTo blocks with the same behaviour, plus a Schema Generator where FAQ or HowTo can be attached to a post without being visible in the content. That second path is the one to check: schema attached in the generator but not rendered on the page fails Google's visibility guideline. Rank Math → Titles & Meta → Posts also lets you set a default schema; make sure it is not FAQPage or HowTo site-wide.

**Page builders**: Elementor Pro and several accordion plugins have an "FAQ schema" toggle on accordion and toggle widgets. Keep it on only for accordions that really are FAQs. Two accordions with the toggle on the same page produce two `FAQPage` roots, which the detected types line shows as `FAQPage ×2`.

**Dedicated FAQ or HowTo schema plugins** installed in 2020–2023 for the rich result can go; check the plugin does not also provide the visible accordion before deactivating it.

### Shopify

FAQ apps typically inject `FAQPage` JSON-LD from their own settings. Keep the app if you use its FAQ page; if it exists only for the rich result, uninstall it and check the theme's `theme.liquid` and section files for a leftover script.

### Static sites and custom builds

An FAQ partial that renders both the HTML and the JSON-LD from the same list of questions is the right shape: the two cannot drift apart. Serialise the JSON with the language's encoder (`JSON.stringify`, `json_encode`, `jsonify`) rather than string templates, and the escaping problem in step 2 disappears.

## Verify

- The schema validator shows the JSON-LD parsing finding as passed on every page that has FAQ markup.
- The detected types line lists `FAQPage` once on FAQ pages and not at all on pages without visible questions; `HowTo` is gone wherever you removed it.
- The required properties finding passes for FAQPage, and Google's Rich Results Test reports no errors.
- Page weight dropped where a HowTo plugin was removed: compare the report's speed module before and after.

## Common mistakes

- **Adding FAQPage in 2026 for the rich result.** It will not appear unless you are a government or health authority. Add it for the reader and the answer engines if it is free; otherwise skip it.
- **Questions in the markup that are not on the page.** Violates Google's guidelines and can cost every rich result on the site. Render the questions.
- **Unescaped quotes in answers.** The block fails to parse and the finding says so with the block number. Encode the JSON with a library.
- **The same FAQ on every page.** Google ignores repeated FAQ content, and the duplicate entities finding on each page shows the same questions. Put it on the one page it belongs to.
- **Removing the visible steps along with the HowTo block.** The steps are the content people came for. Remove the markup, keep the list.
- **Reading "eligible" as "will be shown".** The report's eligibility finding checks completeness against Google's documented properties; for FAQPage on most sites, display is off regardless.
