# Structured data (JSON-LD) explained

> Structured data describes what a page is about in a format Google reads directly. It unlocks rich results and must parse cleanly.

Structured data · HTML version: https://getreport.app/learn/structured-data-explained

## JSON-LD syntax

Passing looks like: JSON-LD syntax passes.

**Why it matters.** A JSON-LD block with a syntax error is ignored completely, so Google reads no structured data from it. One stray comma or missing quote costs the whole block.

**How to fix it.**

1. Open the technical detail to see the parser message and the block number.
2. Paste the block into a JSON validator, fix the character it points at, and run this check again.

## Structured data

Passing looks like: Structured data found.

**Why it matters.** Structured data lets Google show rich results such as prices, review stars, breadcrumbs and event dates. Without it, your listing is plain text.

**How to fix it.**

1. Add a JSON-LD script describing the page's main entity (Organization, Product, Article…).
2. Most CMS SEO plugins generate this for you; check their schema settings.

## Required schema properties

Passing looks like: Required schema properties passes.

**Why it matters.** Google shows a rich result (price, stars, breadcrumb, event date) only when the entity carries the properties it requires. Without them the block is valid but earns nothing in search.

**How to fix it.**

1. Open the technical detail for the full list, one line per entity type and property.
2. Add each property to the JSON-LD block. In WooCommerce, Yoast or Rank Math this usually means filling in the price, image or author field on the item itself.

## Duplicate schema entities

Passing looks like: Structured data entities are unique.

**Why it matters.** Two blocks describing the same Organization, WebSite or Product make Google pick one at random, and their properties may disagree. Usually a theme and an SEO plugin both emit the block.

**How to fix it.**

1. Keep one block per entity; turn off the schema output of either the theme or the SEO plugin.
2. If both are needed, merge them into one @graph with a single entity per @id.

## Microdata usage

Passing looks like: No microdata in use.

**Why it matters.** Microdata (itemscope and itemprop attributes in the HTML) still works, but Google recommends JSON-LD and most tools only read JSON-LD. Nothing is broken; this is for your information.

**How to fix it.**

1. Keep it for now. When you next touch the template, move the same data into one JSON-LD block and remove the attributes.

## Structured data types

Passing looks like: Structured data types passes.

**Why it matters.** These are the entities the page declares. Google can only show rich results for the types it documents, so the list tells you what you can earn from this page.

**How to fix it.**

1. Compare the list with the rich-result types Google supports (Product, Article, Event, BreadcrumbList, LocalBusiness…) and add the one that fits this page.

Check your own page: https://getreport.app/
