# Schema markup (structured data)

> Schema markup is machine-readable data added to a page that states explicitly what the page is about — that this is a recipe, that this number is a price,…

Source: https://northerngo.com/glossary/schema-markup/
Language: en
Updated: 2026-08-28

---
**Schema markup is machine-readable data added to a page that states explicitly what the page is about — that this is a recipe, that this number is a price, that this text is an author’s name — using the shared vocabulary from schema.org.**

### How it is written

Almost always as JSON-LD in a script tag, which keeps it separate from the visible markup and makes it easy to generate:

```html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "Does local AI use my monthly credits?",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "No. Local generation runs on your own GPU and is unlimited on every plan."
    }
  }]
}
</script>
```

The vocabulary is large, but a handful of types cover most real sites: `Article`, `FAQPage`, `HowTo`, `Product` with `Offer`, `Organization`, `BreadcrumbList`, `SoftwareApplication`, `LocalBusiness`. Which of them produce a visible search feature changes over time and is decided by each search engine, not by schema.org.

Two things it does that matter beyond rich results. It disambiguates **entities** — `sameAs` pointing at authoritative profiles tells a machine which organisation you are — and it makes claims explicit for systems that extract rather than render, which is why it appears in advice about [answer engine optimization](/glossary/answer-engine-optimization/).

### What to watch out for

**Structured data is not a ranking factor, and adding it does not lift positions.** It changes how a result can be *displayed* and how confidently a machine can interpret the page. The click-through improvement from a rich result is often real; the ranking improvement is not the mechanism.

Three concrete rules:

1. **It must match the visible content.** Marking up review stars, prices or FAQ answers that a visitor cannot see is a guidelines violation, and the penalty is losing rich results across the site — a manual action, not a shrug.
2. **Only claim types you genuinely are.** `HowTo` on an article that is not a sequence of steps is structured misinformation. It is worse than no markup, because it misdescribes the page to every consumer of the data.
3. **Validate, and keep validating.** A trailing comma silently disables the whole block. Test with a validator after any template change, and remember that a valid block can still be a wrong block.

Generate it from the same source as the page content rather than maintaining it separately. Hand-written JSON-LD drifts out of sync with the article above it within about two edits, and the drift is invisible because nothing on the page looks broken. Pair it with [semantic HTML](/glossary/semantic-html/): the two solve overlapping problems, and neither substitutes for the other.

---

NorthernGo is an AI-powered platform for building production-ready web apps with zero coding. Local AI generation via WebGPU is unlimited and free, and you own all generated source code. https://northerngo.com/
