What is structured data?
Structured data expresses entities and relationships in a machine-readable format. Schema.org supplies a vocabulary; JSON-LD is one way to include it in HTML. Google supports a subset of types and properties for particular search features, not every Schema.org definition.
Accuracy comes before eligibility
Markup can help systems interpret content and make a page eligible for supported enhanced results. It is not a guarantee of a rich result or a general ranking boost. Not every page needs the same schema, so an inventory of detected types is an observation, not a task to add more.
Choose a type that fits visible content
Start with the page's main entity: an editorial article, a product offered for sale, or a breadcrumb trail. Check the current Google documentation for the feature you actually want before defining required fields. Do not invent review scores, authors, prices or availability to satisfy a validator.
1. Make the JSON-LD parse correctly
Inspect every application/ld+json block. Fix invalid JSON such as trailing commas, unescaped quotes or JavaScript comments. Use the Schema.org context and the correct property names. An @graph is a container for related nodes, not an excuse to add unrelated types.
2. Match facts and URLs to the page
Keep identifiers stable and URLs consistent with their intended entities. For a product offer, confirm that the shown price, currency and availability match the live offer. For an article, use the actual author and publication/modification dates; do not reset dates merely to appear fresh.
4. Only mark up questions readers can see
FAQ markup should describe genuine, visible questions and answers, including answers in expandable sections. Google stopped showing FAQ rich results in May 2026. Do not add FAQ schema expecting that retired search feature, or generate hidden questions solely for markup. Existing FAQ-content audit signals remain a reason to check factual consistency, not a promise of enhanced results.
5. Validate syntax, feature rules and the live page
Use Schema Markup Validator for vocabulary checks and Google's Rich Results Test for supported features. Then inspect the rendered page and review Search Console after deployment. A validator cannot establish that a claimed rating or offer is truthful; that remains your editorial responsibility.
Example: a real editorial article
This illustrates the structure, not a complete recipe for every Google feature. Substitute the real author, canonical URL and dates. Add other properties only when relevant and supported by the page.
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "How to adjust bicycle brakes",
"author": { "@type": "Person", "name": "Example Author" },
"datePublished": "2026-09-15",
"dateModified": "2026-09-15",
"mainEntityOfPage": "https://example.com/brake-adjustment"
}Next.js: render data safely
Render JSON-LD in a server page using a native script element with type application/ld+json. Serialize data instead of building JSON with string concatenation. Escape < as its Unicode sequence before inserting the serialized value into HTML so text cannot close the script element.
Related SEOTera checks
These checks cover signals within this topic. An observation or warning needs context; it does not always mean a change is required.
- JSON-LD structured data
jsonld-presence - Schema.org types
jsonld-types - JSON-LD syntax
jsonld-syntax - JSON-LD context
jsonld-context - Required JSON-LD fields
jsonld-required-fields - Product offer data
jsonld-product-offers - Article author data
jsonld-article-author - Article dates
jsonld-article-dates - Breadcrumb positions
jsonld-breadcrumb-positions - FAQ structured-data content
jsonld-faq-content - Structured-data URL consistency
jsonld-url-consistency
Sources and further reading
Related guides
Check your page with SEOTera
Run a single-page audit, then use the findings and these guides to decide what to address.
Check your page with SEOTera