Blog › AI search
Structured data for small sites: the schema that matters
Structured data tells search engines and AI systems what your pages are about. The four schema types a small site needs, with examples to copy and how to test.
· 4 min read
Structured data is a small block of code that tells machines what a page contains: this is an organisation, this is an article, this is a question and its answer. A small site needs four types to cover almost everything: Organization, Article, FAQPage and BreadcrumbList. They are written in a format called JSON-LD, pasted into the page's HTML, and take an afternoon to add.
What it is for
A person reading your page understands that "Acme Books" is a company and "₹999 a month" is a price. A machine sees text. Structured data labels the text so there is no guessing.
That helps in three ways:
- Search results can show richer listings, such as a breadcrumb trail or article details, where the search engine chooses to.
- Your identity is unambiguous. Name, logo, address and profiles are stated as facts.
- AI systems reading your page get a clean, labelled summary of what it is.
It does not make a weak page rank. It makes a good page easier to understand.
The format: JSON-LD
JSON-LD sits inside a script tag, usually in the page's <head>. It does not change how the page looks.
<script type="application/ld+json">
{ "@context": "https://schema.org", "@type": "Organization", "name": "Acme Books" }
</script>
The vocabulary comes from schema.org, a shared standard used by the major search engines.
1. Organization: who you are
Put this on your home page. It is the single most useful block for a small business.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Acme Books",
"url": "https://www.acmebooks.example/",
"logo": "https://www.acmebooks.example/logo.png",
"description": "Accounting software for agencies with fewer than fifty people.",
"sameAs": [
"https://www.linkedin.com/company/acme-books",
"https://x.com/acmebooks"
]
}
</script>
- description: one plain sentence, the same one you use elsewhere.
- sameAs: your official profiles. It ties them to you.
A shop or office that customers visit should use LocalBusiness instead, with an address, opening hours and a phone number.
2. Article: for every post
Add to each blog post and guide.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "How to run a meeting that ends on time",
"description": "Send a three-line agenda and give one person the clock.",
"datePublished": "2026-11-14",
"dateModified": "2026-11-14",
"author": { "@type": "Person", "name": "Asha Rao" },
"publisher": { "@type": "Organization", "name": "Acme Books" }
}
</script>
Keep dateModified honest. Change it when the content changes, not to look fresh.
3. FAQPage: for real questions
Use where a page has a genuine question-and-answer section that is visible to readers.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "How long should a meeting agenda be?",
"acceptedAnswer": { "@type": "Answer", "text": "Three lines: the decision needed, the options, and who decides." }
}]
}
</script>
The questions and answers in the code must match what is on the page. Search engines show FAQ results for fewer sites than they once did, so do not add it expecting a visual change. Add it because it labels your answers clearly.
4. BreadcrumbList: where a page sits
Shows the path to the page, such as Home › Blog › This article.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.acmebooks.example/" },
{ "@type": "ListItem", "position": 2, "name": "Blog", "item": "https://www.acmebooks.example/blog" }
]
}
</script>
Others worth knowing
| Type | Use it for |
|---|---|
Product |
Things you sell, with price and availability |
LocalBusiness |
A physical location customers visit |
SoftwareApplication |
An app or software product |
Event |
Something with a date and place |
Person |
An author or a personal site |
Add only what describes your page truthfully.
The rules
- Mark up what is visible. Never describe content that is not on the page.
- Be accurate. Wrong prices or dates are worse than none.
- Do not invent reviews or ratings. It is against search engines' rules and it is dishonest.
- One description of yourself, repeated consistently.
- Keep it updated when the page changes.
How to add it
- Site builders and blog platforms often add Article and Breadcrumb markup automatically, or through a setting or add-on. Check what yours already does before adding more.
- Custom sites: put the block in your page template so every page of that type gets it.
- A single page: paste the block into the page's HTML.
How to test
- Use a rich results or schema testing tool from a search engine. Paste the address or the code and it reports errors.
- View the page source and confirm the block is in the HTML the server sends, not added later by a script.
- Re-test after changes to your theme or template. Redesigns remove markup silently.
FinalPost AI's share readiness check includes this: it looks for a structured data block on any public address, alongside title, description, preview tags and a site icon, and lists what is missing. For the content side, the GEO agent drafts schema markup together with structured question-and-answer pairs for your review. Check that every answer is true of you before you publish it.
Where it fits
Structured data is one part of being readable by machines. Pair it with answer-first writing, Open Graph tags for sharing, and the wider practice described in what is GEO?.
Frequently asked questions
Does structured data improve rankings?
Not directly. It helps search engines understand a page and can make a listing more informative, which may improve how often it is clicked.
Do I need a developer to add schema?
Often not. Many site builders and blog platforms add common types for you. For anything custom, pasting a JSON-LD block into a template is a small job.
Which schema type should I add first?
Organization on your home page, or LocalBusiness if customers visit you. Then Article markup on your posts.