---
title: "No JSON-LD structured data (lint/jsonld-missing)"
description: "lint/jsonld-missing: Structured data (Organization, WebSite, Article, Product, BreadcrumbList) makes pages eligible for rich results and gives search and AI…"
canonical: https://void-design.vercel.app/rules/lint/jsonld-missing
lastModified: 2026-09-16
---

# No JSON-LD structured data

`lint/jsonld-missing` · severity **info** · category Lint · detected by `void lint` and `void audit`

## Why it matters

Structured data (Organization, WebSite, Article, Product, BreadcrumbList) makes pages eligible for rich results and gives search and AI systems unambiguous facts about the entity behind the site.

## How to fix it

Render one JSON-LD `@graph` with Organization + WebSite on the home page and type-specific data on articles/products, via an escaped `<JsonLd>` component.

## Example

```tsx
<JsonLd data={{ '@context': 'https://schema.org', '@graph': [{ '@type': 'Organization', '@id': 'https://example.com/#org', name: 'Acme' }] }} />
```

## References

- https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data
- https://nextjs.org/docs/app/guides/json-ld

## More lint rules

`void lint` reports 67 rules in this category. Static source checks with no browser: Tailwind v4 silent failures, Next.js 16 API traps, React render-body bugs, accessibility markup, SEO files and motion hygiene.

- `missing-icon` No favicon / app icon — [lint/missing-icon](https://void-design.vercel.app/rules/lint/missing-icon)
- `missing-llms-txt` No `/llms.txt` — [lint/missing-llms-txt](https://void-design.vercel.app/rules/lint/missing-llms-txt)
- `dynamic-metadata-streaming` Request-time `generateMetadata` without `htmlLimitedBots` — [lint/dynamic-metadata-streaming](https://void-design.vercel.app/rules/lint/dynamic-metadata-streaming)
- `missing-lang` Root `<html>` without `lang` — [lint/missing-lang](https://void-design.vercel.app/rules/lint/missing-lang)
- `sitemap-lastmod-now` Sitemap uses `new Date()` for `lastModified` — [lint/sitemap-lastmod-now](https://void-design.vercel.app/rules/lint/sitemap-lastmod-now)
- `multiple-h1` More than one `<h1>` in a route's page + layouts — [lint/multiple-h1](https://void-design.vercel.app/rules/lint/multiple-h1)
- `jsonld-deprecated-type` JSON-LD type that no longer produces rich results — [lint/jsonld-deprecated-type](https://void-design.vercel.app/rules/lint/jsonld-deprecated-type)
- `route-js-budget` Route first-load JS over budget (from `.next` build output) — [lint/route-js-budget](https://void-design.vercel.app/rules/lint/route-js-budget)

Detected by `void lint` and `void audit`. Explain it in a terminal: `void rules lint/jsonld-missing`
