Schema: structured data JSON-LD
Structured data tells Google and AI systems what is on the page: a product, a recipe, a job posting. TagSpion reads it and checks the required fields.
1What is it?
TagSpion finds all JSON-LD blocks and microdata, groups them by type and checks required and recommended fields per type, for example Product, Article, LocalBusiness, FAQPage, JobPosting, Event, Recipe and BreadcrumbList. Invalid JSON is flagged.
2Why it matters
Only valid required fields earn rich results: stars, prices, FAQ dropdowns, jobs. AI systems use the same data to attribute facts unambiguously.
3What TagSpion checks
| Check | Rating |
|---|---|
| JSON valid | red on syntax error, with line number |
| Required fields per type | red if one is missing, for example Product without offers |
| Recommended fields | yellow if missing, for example Article without dateModified |
| Several blocks of the same type | yellow, usually a mistake |
4How to fix it
- "Fix" gives you the missing field or a complete skeleton for the type. Fill in values, add it to the page as <script type="application/ld+json">.
- Test the block live in the Schema Lab before it goes on the page.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Tagliatelle al ragù",
"image": "https://www.example.com/img/tagliatelle.jpg",
"description": "Fresh egg pasta with slow-cooked beef ragù.",
"offers": {
"@type": "Offer",
"price": "14.50",
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock"
}
}
</script>5Frequently asked questions
JSON-LD or microdata?
JSON-LD. Google recommends it, it is easier to maintain and lives separately from the HTML.
Why does Google show no stars despite valid schema?
Rich results are not guaranteed. Google decides per page. Required fields are the prerequisite, not a promise.