{"slug": "structured-data-json-ld", "title": "Structured data (JSON-LD)", "summary": "JSON-LD structured data using schema.org vocabulary is the standard for machine-readable page annotations, enabling search engines to display rich results and AI agents to extract factual ground truth. Implementation requires mirroring visible content, using absolute URLs, and validating with tools like Schema.org and Google's Rich Results Test.", "body_md": "# Structured data (JSON-LD)\n\nMachine-readable annotations that describe the content of a page using the schema.org vocabulary. JSON-LD is the format search engines and AI agents expect.\n\n## What it is\n\nStructured data is a set of machine-readable statements that describe what a page is about, using the shared vocabulary at [schema.org](https://schema.org/). The recommended serialisation is JSON-LD: a `<script type=\"application/ld+json\">`\n\nblock inside `<head>`\n\n(or, less commonly, `<body>`\n\n).\n\n```\n<script type=\"application/ld+json\">\n{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"Article\",\n  \"headline\": \"What is HSTS?\",\n  \"datePublished\": \"2026-05-29\",\n  \"author\": {\n    \"@type\": \"Person\",\n    \"name\": \"Jane Doe\"\n  },\n  \"publisher\": {\n    \"@type\": \"Organization\",\n    \"name\": \"Example\",\n    \"url\": \"https://example.com\"\n  }\n}\n</script>\n```\n\nMicrodata and RDFa are also accepted, but JSON-LD is the de facto standard because it sits separate from the visible markup.\n\n## Why it matters\n\nTwo audiences read it heavily:\n\n**Search engines** use structured data to power rich results (article cards, breadcrumbs, product carousels, knowledge-panel facts). Without it, you get a plain blue link.**AI agents and answer engines** rely on it as the ground truth for facts they may quote. A`Person`\n\nschema with a`sameAs`\n\nlinking to your verified profiles is the cleanest way to assert identity.\n\nIt is also the most stable contract between a publisher and the rest of the web. The HTML can change; the JSON-LD describes meaning.\n\n## How to implement\n\nStick to a small set of well-supported types:\n\n— site-wide, on the home page. Include`WebSite`\n\n`url`\n\nand`name`\n\n, and`potentialAction`\n\nfor sitelinks search if appropriate.or`Organization`\n\n— for the publisher and authors. Include`Person`\n\n`sameAs`\n\narrays pointing at verified profiles.— on every page that has a breadcrumb trail.`BreadcrumbList`\n\nor`Article`\n\n— for articles, with`BlogPosting`\n\n`headline`\n\n,`datePublished`\n\n,`dateModified`\n\n,`author`\n\n,`image`\n\n.,`Product`\n\n,`Offer`\n\n— for e-commerce, where eligibility is strict.`AggregateRating`\n\n— only when the page genuinely has a Q-and-A list visible to users. Note that Google`FAQPage`\n\n[retired the FAQ rich result in 2026](https://developers.google.com/search/docs/appearance/structured-data/faqpage):`FAQPage`\n\nis still valid schema.org vocabulary, but it no longer produces a Google search feature, and no answer engine has confirmed it favours the markup over rendered HTML — so add it for genuine visible content, not for SERP or “GEO” gain. Never stuff fake FAQs. ([Further reading](https://joost.blog/faq-schema-cycle/)on why the format was abused into deprecation, and the proposed`FAQSection`\n\ntype for Q-and-A that is a*section*of a page rather than its main entity.)\n\nRules:\n\n**Mirror what is visible on the page.** Do not declare facts in JSON-LD that the page does not state. Google calls this “out of sync” data and ignores or penalises it.**One graph per page is cleaner than many fragments.** Use`@graph`\n\nto nest related entities and`@id`\n\nURIs to cross-reference them.**Use absolute URLs** in`@id`\n\n,`url`\n\n,`image`\n\n, and`sameAs`\n\n.**Keep dates in ISO 8601.****Validate.** Schema.org evolves; what is valid one year may be deprecated the next.\n\n## Common mistakes\n\n- Fabricating\n`aggregateRating`\n\nor`Review`\n\nto win stars. Google detects this and removes the rich result, sometimes the whole site’s eligibility. - Marking up navigation, footers, or sidebars as if they were the main content.\n- Forgetting to update structured data when the page content changes.\n- Multiple disagreeing\n`@type`\n\ndeclarations across plugins or templates on the same page.\n\n## Verification\n\n- Use the\n[Schema.org validator](https://validator.schema.org/)for spec conformance. - Use Google’s\n[Rich Results Test](https://search.google.com/test/rich-results)for eligibility. - Check Search Console’s “Enhancements” reports after deployment.\n\n## Related topics\n\n## Sources & further reading\n\n-\n[Schema.org](https://schema.org/)— schema.org -\n[FAQPage (FAQ) structured data](https://developers.google.com/search/docs/appearance/structured-data/faqpage)— Google Search Central -\n[Introduction to structured data markup in Google Search](https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data)— Google Search Central -\n[JSON-LD 1.1 Specification](https://www.w3.org/TR/json-ld11/)— W3C", "url": "https://wpnews.pro/news/structured-data-json-ld", "canonical_source": "https://specification.website/spec/seo/structured-data/", "published_at": "2026-06-10 00:00:00+00:00", "updated_at": "2026-06-17 13:28:51.242439+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools"], "entities": ["schema.org", "Google", "JSON-LD", "Search Console", "Rich Results Test"], "alternates": {"html": "https://wpnews.pro/news/structured-data-json-ld", "markdown": "https://wpnews.pro/news/structured-data-json-ld.md", "text": "https://wpnews.pro/news/structured-data-json-ld.txt", "jsonld": "https://wpnews.pro/news/structured-data-json-ld.jsonld"}}