I built FAQ and Article markup on 24 Sep 2026 in the free schema generator and passed rich-result validation in one paste. No rich display appeared until visible copy matched exactly. This guide is that build plus validate plus monitor loop.
Short answer: JSON-LD schema translates your visible content into typed entities that search engines can feature as rich results. Pick the type that matches the page, generate valid markup, keep every statement visible on the page, and validate before and after deploy. Build yours with our free schema generator, grade the host page with the page grader, and pair markup with clean snippets from the meta tags guide.
How Schema Markup Earns Rich Results
Search engines parse pages twice: once as text for relevance and once as entities for features. Schema supplies the entity layer with explicit types, properties and relationships drawn from a shared vocabulary. When the parser trusts both layers, the page becomes eligible for Stars, FAQ dropdowns, how-to steps, product details, event dates, job postings and other enhanced displays that lift click-through without changing position. Markup is therefore a translation investment with measurable display upside.
Trust is the gating factor. Parsers cross-check markup claims against visible content, site reputation and historical accuracy. Pages with thin content, mismatched prices or fabricated reviews get ignored or flagged regardless of syntactic validity. Treat schema as a promise layer: only promise what the page delivers, keep promises current with automation where values change, and remove markup promptly when the underlying content disappears. Sites with a history of accurate markup earn faster enhancement pickup on new pages.
Scope decisions prevent bloat. Global templates carry Organization, WebSite and breadcrumb markup on every page. Content templates add Article or BlogPosting with author, dates and images. Special templates add FAQ, HowTo, Product, Event or JobPosting only where qualification is real. Resist decorating every page with every type: focused truthful markup outperforms ambitious markup that validators technically accept but policies reject.
Choosing the Right Type Per Page
Match the type to the dominant user intent of the URL. Informational guides take Article with headline, image, author and dates. Genuine question-and-answer sections take FAQPage with each pair reproduced visibly. Step-by-step procedures with tools, supplies and time take HowTo with ordered steps. Sellable items take Product with offers, availability, price and review summaries. Company information takes Organization with logo, contact and same-as links. Mixed pages can combine types in a graph, but the primary type must reflect the primary purpose.
| Page intent | Primary type | Required spirit | Rich feature |
|---|---|---|---|
| Guide or news | Article or BlogPosting | Real author, dates and images | Top stories and article enhancements |
| Questions answered | FAQPage | Visible questions with full answers | FAQ dropdown |
| Procedure taught | HowTo | Completable ordered steps | How-to steps display |
| Item sold | Product with Offer | Current price and availability | Product details with price |
| Company described | Organization | Verifiable identity and contacts | Knowledge panel support |
When qualification is borderline, choose restraint. A buying guide mentioning products is an Article, not a Product page. A story that quotes two questions is not an FAQ page. Mis-typed markup is the fastest route to ignored enhancements, because classifiers detect the mismatch between claimed type and actual content shape. Review type choices quarterly as templates evolve and content strategies shift.
Writing Valid JSON-LD by Hand and by Generator
Schema markup is typed translation of visible content that makes pages eligible for rich displays when claims match the page exactly. A JSON-LD block opens with script type application-ld-json, declares its context and type, then nests properties. Validate types at schema.org and eligibility at Google structured data intro. Hand writing teaches the model but invites syntax slips: missing commas, unbalanced braces, wrong date formats and relative URLs where absolute ones are required. Generators eliminate these by emitting tested shapes from form inputs, which is why template work should start from generated canonical blocks rather than pasted examples.
Fields that most often break
Dates must use full ISO formats with timezones where required. Images need absolute URLs meeting size minimums. Authors should be typed Person or Organization objects, not bare strings, for article markup. Prices require currency codes and numeric values separated from display text. Identifiers and same-as links must resolve. After generation, change only the values, never the structure, and re-validate every edit since one stray character invalidates the whole block.
For developers wiring templates, map CMS fields directly to schema properties: post title to headline, featured image to image, publish and modified timestamps to date fields, author profile to author object, and category to about or genre. Fallbacks matter: omit optional properties when data is missing rather than emitting empty strings or placeholder text that reads as deception.
Validate FAQ and HowTo Markup Safely
FAQ markup is beloved and abused. Policy allows it for genuine frequently asked questions with complete visible answers, and restricts it on pages where questions are decorative or answers live elsewhere. Implementation is straightforward: one mainEntity entry per visible pair, question names matching headings, and acceptedAnswer text matching the displayed answer. Keep answers concise yet complete, since truncated dropdown text that hides the substance earns collapse rather than clicks.
HowTo markup suits procedures readers can actually complete: recipes, repairs, setups and craft projects with ordered steps, tools, materials and total time. Each step needs its text and position, with images or video where the official guidance recommends them. Do not mark up opinion pieces or strategy essays as how-tos; the mismatch between procedural markup and discursive content suppresses the feature and can draw scrutiny to the rest of your markup.
Product, Review and Offer Markup for Commerce
Commerce markup carries money claims, so parsers verify aggressively. Product blocks need names, images, descriptions and identifiers, while nested offers carry price, currency, availability and condition. Aggregate ratings require genuine collected reviews with rating counts, never invented scores. Prices must match the visible buy box including currency and any sale strikethrough logic, and availability must flip with inventory rather than optimism.
Variant handling separates professionals from spammers. Each purchasable variant with a distinct URL deserves accurate offer data, while variant selectors on one URL need careful item-group modeling. Shipping, return and tax details belong where policies expect them rather than crammed into descriptions. Monitor merchant and enhancement reports for price-mismatch warnings, which commonly follow theme updates that restyle price display without updating data feeds.
Validation Workflow and Enhancement Reports
Validate in three stages. First, lint the JSON syntax so parsing succeeds. Second, run rich-result testing to confirm eligible types, required properties and preview rendering. Third, inspect live URLs after deploy since staging behavior, caching and tag managers alter what parsers receive. Keep screenshots and dated reports per template so regressions trace to specific releases rather than vague suspicions.
| Stage | Tool | Pass signal | Act on failure |
|---|---|---|---|
| Syntax | JSON validator | Parses with zero errors | Fix punctuation and structure |
| Eligibility | Rich result test | Type detected with required fields | Add missing properties |
| Live page | URL inspection | Markup present in rendered HTML | Fix tag manager or caching |
| Ongoing | Enhancement reports | Rising valid items, zero errors | Patch template and re-crawl |
Search Console enhancement reports are the long memory: valid items trending up confirms rollout health, warnings reveal optional fields worth adding, and errors pinpoint templates to patch. Re-validate the full type inventory after CMS upgrades, theme swaps and plugin changes, since all three routinely relocate or duplicate script blocks.
Policy Traps and Spam Avoidance
The fastest way to lose enhancements is marking up invisible content: hidden FAQs, off-screen reviews, prices users never see, or events that never happen. Next come deceptive practices such as self-serving reviews, inflated ratings and misleading availability. Then technical spam like marking up navigation links as articles or stuffing every page with every type. Each pattern is detectable at scale and punished by suppression or manual action that affects the whole site.
Stay safe with three rules. Visible parity means every marked statement appears on the page for ordinary users. Single purpose means each page claims the types it genuinely fulfills. Freshness means prices, dates, stock and answers update with reality rather than aspiration. Document these rules in contributor guidelines so freelance writers and merchandisers cannot accidentally poison the markup layer. For crawl-side foundations that support all of this, review the robots and sitemap guide and the pillar developer SEO complete guide.
Qualify for Rich Displays With Truthful Markup
Structured data works when markup mirrors visible content exactly. Search parsers compare claims against page text, prices, dates, and reviews. Accurate pages gain eligibility for enhanced displays. Inaccurate pages get ignored, even when syntax passes.
Choose one primary type per URL based on intent. Use Article for guides, FAQPage for real questions, HowTo for completable steps, and Product with Offer for purchasable items. Add Organization and breadcrumb markup at template level. Remove types that lack visible evidence.
- Map headline, image, author, and dates to schema fields.
- Keep FAQ answers visible and matched word for word.
- Use absolute URLs and full ISO dates with timezone.
- Lint JSON, test eligibility, then inspect live URL.
- Monitor enhancement reports for warnings and errors.
Small code discipline avoids breakage. Example skeleton: {"@context":"https://schema.org","@type":"FAQPage"} with a mainEntity array of questions. Change values only, never structure, and re-validate after each edit since one comma invalidates the block.
Maintain markup like inventory. Omit empty fields instead of placeholders, update prices and dates with reality, and drop markup when content disappears. Re-check after CMS upgrades and theme changes. Stable, honest markup earns faster pickup on new pages.
Pair schema with readable pages for best effect. Confirm headings, images, and links pass basic quality checks, then monitor valid items across 2 crawl cycles.