Most Next.js sites ship with good metadata and no structured data. Title tags, Open Graph, canonical URLs — all correct. And then nothing that tells a search engine what kind of thing the page is or who made it.
That gap matters more than it used to. Structured data is how a search engine moves from "this page contains the string Hugo Naili" to "this page is authored by an entity named Hugo Naili who also has these profiles and works here." The second is a fact about the world. The first is a substring match.
This is a practical walkthrough: what to add, where it goes in the App Router, and the mistakes that make it silently useless.
What JSON-LD actually is
A block of JSON in a <script type="application/ld+json"> tag describing the page in Schema.org vocabulary. It is not rendered, does not affect layout, and adds a negligible amount to your bundle.






