Blueprint mode is on — see the design decisions behind this site

What is structured data (Schema.org and JSON-LD), and why it matters

Text is written for people, and a search engine has to guess its meaning. Structured data tells a machine outright what a page is about, who wrote it and which questions it answers.

When you read a page, you understand "this is an article, so-and-so wrote it, and it came out yesterday". A machine doesn't see that directly. It has to guess. Structured data removes the guess.

A plain definition

Structured data is a set of standard labels placed in a page that state the meaning of the content explicitly. The vocabulary is defined by Schema.org and the most common format for writing it is JSON-LD: a script block that the user doesn't see but a crawler reads.

An example

For an article, something like this is placed in the page:

{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "Article title",
  "inLanguage": "en",
  "datePublished": "2026-10-09",
  "author": { "@type": "Person", "name": "Author name" }
}

Those few lines say: the content type is an article, its language is English, it has a publication date and its author is a specific person.

What it gives you

  • More accurate understanding. Search engines and AI assistants make fewer mistakes.
  • A consistent identity. A person's or organisation's name and details are seen as one thing across all pages.
  • A better appearance in results. Some types can lead to richer display, though there is no guarantee.
  • Suited to GEO. Answer engines trust structure more. I've written about that in GEO.

The most common types

TypeUsed for
Person / OrganizationDescribing a person or an organisation
WebSiteDescribing the whole site
BlogPosting / ArticleAn article
BreadcrumbListThe page's path in the site
FAQPageQuestions and answers
ServiceA service
SoftwareApplicationA piece of software

Rules that matter

  1. Only write what's true. Whatever is in the structured data must also be visible on the page. If you mark up a rating or review that doesn't exist, that is a violation and can be penalised.
  2. Give stable identifiers. Each entity has an @id so that it can be referred to: an article's author links to the site's own Person.
  3. Declare the language. inLanguage is essential for a bilingual site.
  4. Validate with tools. Google's Rich Results Test and the Schema.org validator show errors.
  5. Keep it in step with the content. When the page changes, the data must be updated too.

On this site

This site's identity map is written as one connected graph: the website, the person, the profile page, the articles and the breadcrumbs, all with stable identifiers. A fuller technical list is in technical SEO for Next.js.

The takeaway

Structured data is how you tell a machine what your page is without it guessing. Write it honestly, give stable identifiers and confirm it with a tool. It guarantees nothing about ranking, but being understood without ambiguity is the base for everything else.

Written by

Mohammad Ali Eslamipour

Mohammad Ali Eslamipour is a digital product architect who defines, architects and — with his own engineering team — ships AI products, SaaS platforms and web apps.