Structured Data Generator
Generate Schema.org JSON-LD for Article, FAQ, Breadcrumb and more.
Structured data is standard markup that helps search engines understand your page precisely. This generator builds valid JSON-LD for three Schema.org types — Article, FAQPage, and BreadcrumbList — straight from a form, so you never have to balance braces or escape quotes by hand.
Correct structured data improves your chances of earning rich results in Google, such as star ratings, expandable FAQs, and breadcrumb trails. Everything you type is processed in your browser only and is never sent to any server, so you can safely paste draft content or private URLs.
When to use each type
- Article — for content pages with a body, such as news articles, blog posts, or columns. Captures headline, author, publish date, and a cover image.
- FAQPage — for a page that lists questions and answers. Questions may appear as expandable items in search results.
- BreadcrumbList — describes a page's position in your site (Home > Category > Current), shown above the URL in results.
How to insert it
The generated code is wrapped in a <script type="application/ld+json">tag. It works anywhere in your page's <head> or <body>. You can include several types on one page — a blog post commonly carries both Article and BreadcrumbList, for example.
Validation workflow
- Pick a type below and fill in the values you need. Empty fields are dropped from the output automatically.
- Copy the generated snippet and paste it into your page's HTML.
- Run it through Google's Rich Results Test or the Schema Markup Validator to confirm there are no errors.
After inserting it, use the SEO meta tag checker to confirm the structured data actually made it into your HTML and sits correctly alongside your other meta tags.
Use ISO 8601 dates like 2026-06-09 (YYYY-MM-DD), and provide absolute (full) URLs for images and items.
Required vs. recommended properties
To qualify for a Google rich result, the properties below must be present. Empty fields are dropped automatically by this tool, but if a property marked Required is missing, the page falls out of the rich-result running.
| Type | Property | Need | Example value |
|---|---|---|---|
| Article | headline | Required | Keep under 110 chars |
| Article | image | Recommended | https://example.com/cover.jpg |
| Article | datePublished / author | Recommended | 2026-06-09 / name |
| FAQPage | mainEntity[].name / acceptedAnswer.text | Required (pair) | 1 question + 1 answer |
| BreadcrumbList | itemListElement[].name / position | Required | Increment from 1 with no gaps |
Worked example
For a BreadcrumbList of "Home / SEO Tools / Schema Generator" with the last item's URL left blank, this tool produces the JSON-LD below. position is numbered 1, 2, 3 automatically, and the final URL-less step keeps only its name (a valid way to represent the current page).
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home",
"item": "https://example.com/" },
{ "@type": "ListItem", "position": 2, "name": "SEO Tools",
"item": "https://example.com/seo-tools" },
{ "@type": "ListItem", "position": 3, "name": "Schema Generator" }
]
}Common pitfall
- Marking up FAQs or ratings that are not actually visible on the page triggers a "content mismatch" manual action. Only mark up what a visitor can see.
- Starting
positionat 0 instead of 1, or skipping a number, makes Google ignore the BreadcrumbList. This tool fills positions from 1 in input order, so you only need to get the order right.