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, 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:
<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.
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:
- 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.
- Only claim types you genuinely are.
HowToon 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. - 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: the two solve overlapping problems, and neither substitutes for the other.
Frequently asked questions
Does schema markup improve my rankings?
Not directly. Search engines have consistently said it is not a ranking signal. What it can do is make your result eligible for a richer presentation — review stars, FAQ expansions, breadcrumbs — which raises click-through, and make the page easier for machines to interpret correctly. Both are worth having; neither is a rank boost.
Build it yourself
NorthernGo turns a plain-text description into a working web app with a database, login and a live URL. Local AI generation runs on your own GPU, is unlimited, and is free on every plan.