# How to Correctly Implement Product, FAQPage, and HowTo Schema
> Do not blindly copy schema templates. Here is how Product, FAQPage, and HowTo structured data work—and how Google actually treats them today.
Source: https://www.starbox.work/en/insights/geo-guide/geo121/ (Starbox AI Insights, updated 2026-10-07)
Before copying code templates for Product, FAQPage, and HowTo directly into your site, take a step back.
Product, FAQPage, and HowTo are structured data types defined by Schema.org. Structured data uses standardized fields to tell search engines what a page represents—clarifying which text corresponds to a product name, price, Q&A pair, or step-by-step tutorial.
JSON-LD is the standard format for writing structured data. It sits within your webpage source code, but it only annotates information already visible on the page. It cannot replace actual on-page copy.
If your page does not display a price, stock status, customer review, Q&A pair, or process duration, you cannot simply inject those data points into JSON-LD alone. The number of fields in a template does not dictate what you should use. Your actual page content does.
The purpose and current search engine support for these three types also differ significantly:
| Type | Best For | Primary Markup | Current Google Support |
|---|---|---|---|
| Product | Individual product or item detail pages | Product name, image, SKU, price, stock status | Fully supported for product-related search enhancements |
| FAQPage | Pages presenting a fixed list of official Q&As | Full, visible questions and answers | Rich results generally restricted to authoritative government and healthcare sites |
| HowTo | Tutorials with a strict, sequential order | Steps, tools, supplies, and duration | Rich results have been deprecated |
Rich results refer to expanded search listings that display extra details like pricing, inventory status, or expandable FAQ accordions.
The correct implementation sequence is straightforward: verify your page content first, select the appropriate schema type second, and fill in fields before running full validation last.
## 5 Things to Verify Before Writing Code
### 1. Only mark up visible on-page content
Prices, inventory, answers, and instructions must never exist solely inside JSON-LD. Structured data can only describe what human visitors can see on the page.
You can use accordion elements for FAQs, provided the complete question and answer are fully viewable once expanded.
### 2. Delete fields you do not have or cannot verify
Sample prices, placeholder URLs, fake ratings, and dummy dates must be removed before going live.
If your page lacks a specific data point, delete the corresponding field from the JSON-LD script. Never leave placeholder values in place, and never fabricate data just to clear an optional warning in a validation tool.
### 3. Use standard JSON-LD tags
JSON-LD should be placed within standard HTML script tags:
```html
```
Before publishing, replace every field with live page data:
| Field | Meaning |
|---|---|
| `@id` | Unique URI identifier for the product entity |
| `url` | Canonical URL of the product page |
| `name` | Exact product title |
| `image` | Direct image URL of the product |
| `description` | Product overview consistent with visible copy |
| `sku` | Stock Keeping Unit identifier |
| `brand` | Brand entity name |
| `priceCurrency` | Three-letter currency code (e.g., `USD`, `EUR`) |
| `price` | Live transactional price shown on the page |
| `availability` | Current inventory status |
| `itemCondition` | Physical condition, such as `NewCondition` |
Google Product snippets require a `name`, along with at least one of the following: `offers`, `review`, or `aggregateRating`. The template above satisfies this with `offers`.
If your page allows direct online checkout, review Google documentation for Merchant listings to see if additional fields like shipping details or return policies are required.
Only include `review` or `aggregateRating` if real, verifiable user feedback is displayed directly on that page. If you do not collect public reviews, leave those fields out.
### Handling B2B Product Pages Without Public Pricing
Many B2B sites do not list standard pricing.
You can still use Schema.org `Product` markup to define the item, specifications, and brand identity. However, whether it qualifies for Google Product snippets or Merchant listings depends on Google's strict requirements for pricing data.
If your page requires users to "Request a Quote" and shows no fixed price, do not fabricate an arbitrary number just to fill the `offers` object.

## FAQPage: For Curated Editorial Q&As
FAQPage markup applies to pages presenting curated, site-managed questions and answers. Every question and answer marked in JSON-LD must appear in full on the page.
```html
```
`Question.name` must match the exact question text on the page, and `acceptedAnswer.text` must mirror the complete visible answer. If content is housed in accordions, ensure the full text is accessible in the DOM.
If a page features a single question where community members submit different answers, do not use FAQPage. Use `QAPage` markup instead.
Keep in mind that since August 2023, Google has restricted FAQ rich results almost entirely to authoritative government and healthcare websites.
Commercial businesses can still retain clean FAQPage markup if it carries low maintenance overhead and helps machine readability, but you should not treat it as a guaranteed route to SERP real estate.
## HowTo: For Sequential Step-by-Step Instructions
HowTo markup is designed for procedural guides that follow an explicit order. Every step, tool, material, and timeframe in the schema must correspond to the visible text.
The following example covers a 30-minute guide with two materials, one tool, and three sequential steps:
```html
```
`totalTime` uses ISO 8601 duration format, where thirty minutes is expressed as `PT30M`.
Step titles, step copy, and anchor links must align with on-page sections. If your tutorial requires no physical supplies or tools, drop the `supply` and `tool` arrays entirely.
Google has deprecated HowTo rich results, and the Rich Results Test no longer tests for them. The reason to use HowTo today is not to earn SERP badges, but to help AI engines, voice assistants, and semantic parsers interpret step-by-step documentation clearly.
If your team lacks the bandwidth to maintain structured HowTo code, clean HTML semantic tags (like ordered lists and clear subheadings) are entirely sufficient.
## Combining Multiple Schemas on a Single Page
You can place Product, FAQPage, and HowTo on the same URL, provided the page genuinely contains all three content types.
For instance, an e-commerce product detail page might feature the item specs, official product FAQs, and installation instructions. You can connect them inside a single JSON-LD block using `@graph`, or separate them into multiple `