Structured data validity
When a page includes machine-readable data describing its content for search engines, that data has to be valid to be of any use. Silktide checks that the markup parses correctly, declares what kind of thing it describes, and includes the properties that kind requires.
is usually written as , using the schema.org vocabulary:
<!-- Valid: parses, has a @type, and includes the required headline -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "How to store wine"
}
</script>
Why this matters
Search engines discard broken structured data silently. Invalid JSON, a block that never says what it describes, or a type missing its essential properties all mean the markup is ignored - you lose the rich results (star ratings, article cards, product details) the markup was meant to earn, and nothing on the page tells you it happened.
Invalid structured data is arguably worse than none: the effort was spent, and the page looks covered while delivering nothing.
How to fix it
- Invalid JSON - fix the syntax. Trailing commas, unescaped quotes inside text, and template placeholders that never got replaced are the usual causes.
- No
@type- add one to every entity, using a recognized schema.org type such asArticle,Product, orEvent. - Missing required properties - add what the type needs: for example an
Articleneeds aheadline, aProductneeds aname, anEventneeds anameandstartDate. - Validate the result with Google's Rich Results Test or the schema.org validator before publishing.
How Silktide tests this
- Test only pages that are eligible for search indexing.
- Collect every JSON-LD block on the page. Pages with none are skipped - whether structured data should exist is tested separately by Structured data.
- Report at most one finding per page, the most severe first:
- A block that is not valid JSON.
- A block containing no
@type. - A recognized type missing a property it requires. Silktide tests the essentials for common types, including
Article(headline),Product,Organization,Person,LocalBusiness(name),Recipe(name and ingredients),Event(name and start date),FAQPage(questions), andBreadcrumbList(items).
Troubleshooting
My markup passes Google's test but Silktide flags it
Silktide validates the required essentials for common types rather than the full schema.org vocabulary, and nested entities are validated individually - for example a Person nested as an author must still have a name. Check the specific entity named in the finding.
I use microdata or RDFa instead of JSON-LD
This check only reads JSON-LD, which is the format Google recommends. Structured data in other formats is not validated here.
Learn more
- Structured data markup - the full technique, including how to validate and keep markup honest
- Local SEO and Google Business Profile - LocalBusiness fields that must match the visible location page
- Intro to structured data (Google Search Central)
- Schema.org
- Structured data