# Schema Test-Case Generator — 16 valid JSON-LD templates, required fields enforced

Most broken schema is broken because someone copy-pasted an example missing required fields. This tool emits 16 valid JSON-LD templates — Article, Product, FAQPage, HowTo, LocalBusiness, Recipe, Event, Organization, BreadcrumbList, VideoObject, Review, JobPosting, Course, SoftwareApplication, Book — with every required property filled in.

Author: J.A. Watte
Published: April 22, 2026
Source: https://jwatte.com/blog/blog-tool-schema-test-case-generator/

---

_Part of the [AEO / GEO / AI-search audit tool stack](/blog/blog-new-aeo-audit-tools-2026/).  See the pillar post for the full catalog of sibling audits and where this one fits in the lineup._

Every schema type Google supports has a required-fields list. Miss a required field and you don't just fail rich results — you fail validation entirely, and Google ignores the schema.

The default copy-paste behavior when adding schema is:
1. Search for "product schema example"
2. Grab the first result
3. Edit the values
4. Ship

This fails constantly because most examples online are *partial* — a minimal `name`, `description`, `image`, and nothing else. They demonstrate the shape, not the completeness.

[The Schema Test-Case Generator](/tools/schema-test-case-generator/) emits 16 complete templates where every required and most recommended fields are present, validated, and annotated.

## The 16 types

1. **Article** — NewsArticle / BlogPosting / Article variants with author, publisher, datePublished, dateModified
2. **Product** — name, sku, gtin, brand, offers (price, currency, availability, priceValidUntil), aggregateRating, review, shippingDetails, hasMerchantReturnPolicy
3. **FAQPage** — mainEntity array of Question objects with acceptedAnswer
4. **HowTo** — step array with images, total time, supply, tool
5. **LocalBusiness** — address, geo, openingHoursSpecification, telephone, priceRange
6. **Recipe** — cookTime, prepTime, totalTime, recipeYield, recipeIngredient, recipeInstructions, nutrition
7. **Event** — startDate, endDate, eventStatus, eventAttendanceMode, location, offers, organizer
8. **Organization** — legalName, url, logo, sameAs, contactPoint, founder, foundingDate
9. **BreadcrumbList** — itemListElement with position, name, item
10. **VideoObject** — thumbnailUrl, uploadDate, duration, contentUrl, embedUrl, interactionStatistic
11. **Review** — itemReviewed, author, reviewRating, datePublished, reviewBody
12. **JobPosting** — datePosted, validThrough, title, hiringOrganization, jobLocation, employmentType, baseSalary
13. **Course** — name, description, provider, hasCourseInstance, offers
14. **SoftwareApplication** — applicationCategory, operatingSystem, offers, aggregateRating
15. **Book** — author, bookEdition, bookFormat, isbn, numberOfPages
16. **Person** — name, jobTitle, worksFor, sameAs, image, alumniOf

For each, the tool emits:
- The full valid JSON-LD
- A checklist of which fields are required vs. recommended vs. optional
- A notes block flagging common mistakes (e.g., `datePublished` must be ISO-8601 with timezone)
- A test URL that runs the generated schema through Google's Rich Results Test

## Why "complete" matters

Google's Rich Results eligibility is often all-or-nothing per feature. A Product without `shippingDetails` + `hasMerchantReturnPolicy` became ineligible for the Product rich result in March 2024. A FAQPage without `acceptedAnswer.text` is silently invalid. A HowTo without at least 2 `HowToStep` objects won't render.

Most schema audits flag "missing field" — few hand you the corrected template. This tool starts from valid and asks what you want to fill in.

## How to use it

1. Go to [/tools/schema-test-case-generator/](/tools/schema-test-case-generator/)
2. Select the schema type
3. Fill in the fields (tool shows required in red, recommended in yellow)
4. Copy the generated JSON-LD
5. Paste into your page's `<head>` inside `<script type="application/ld+json">`
6. Click "Validate on Google" to open Rich Results Test with your URL

## What the tool doesn't do

- **It doesn't write schema for your actual data.** You still paste in your product names, prices, etc.
- **It doesn't audit existing schema on a live page.** Use [Schema Validator](/tools/schema-validator/) or [Rich Results Eligibility Audit](/tools/rich-results-eligibility-audit/) for that.
- **It doesn't verify eligibility.** Rich result eligibility depends on page content + quality signals, not just schema presence.

## Related reading

- [Schema Validator](/tools/schema-validator/)
- [Rich Results Eligibility Audit](/tools/rich-results-eligibility-audit/)
- [Schema Graph Visualizer](/tools/schema-graph-visualizer/)

## Fact-check notes and sources

- **Schema.org spec:** [schema.org/docs/full.html](https://schema.org/docs/full.html).
- **Google structured data gallery:** [Search Central — Structured data gallery](https://developers.google.com/search/docs/appearance/structured-data/search-gallery).
- **Google Rich Results Test:** [search.google.com/test/rich-results](https://search.google.com/test/rich-results).
- **Product shipping + return policy requirement:** [Search Central — Product structured data](https://developers.google.com/search/docs/appearance/structured-data/product).

_This post is informational, not SEO-consulting advice. Mentions of Google, schema.org, and similar products are nominative fair use. No affiliation is implied._


---

Canonical HTML: https://jwatte.com/blog/blog-tool-schema-test-case-generator/
RSS: https://jwatte.com/feed.xml
JSON Feed: https://jwatte.com/feed.json
Hero image: https://jwatte.com/images/blog-tool-schema-test-case-generator.webp
