A plumber in Leeds wants her phone to ring. A small importer in Dubai wants his product pages to show up in AI answers. Neither needs twenty schema types. Both need five. Schema markup is a shared vocabulary that tells search engines and AI answer engines what a page is about. The five types that earn their place on most small sites are Organization, LocalBusiness, WebSite, BreadcrumbList and Article. Everything else is optional until you have a specific reason to add it.
What is schema markup, and why do five types cover most small sites?
Schema markup is a set of shared labels, published at schema.org, that you attach to your HTML so machines can read facts about your business without guessing. Search and AI systems use those labels to decide what a page is, who published it and whether it deserves a rich result or a citation.
Five types cover most small sites because they map to the five things machines ask about any page: who runs the site (Organization), where the business physically operates (LocalBusiness), what the site itself is (WebSite), where the page sits in the site tree (BreadcrumbList), and what the page contains (Article). Add more only when a specific page has a specific job that these five cannot describe.
Here is the rule I would apply: if a new schema type does not change how a machine classifies, ranks or cites a page, it is decoration. Decoration costs maintenance time and creates one more thing that can break silently.
How does schema actually travel from your page to an AI answer?
Schema does not act on its own. It travels through the same pipeline as the rest of your page. First, a crawler fetches the HTML. Then the parsed facts land in an index. When someone searches, a retrieval system picks candidate pages. Finally, an answer engine or search result surface decides what to show or cite.
Schema helps at two of those four stages. At indexing, it converts ambiguous HTML into labelled facts. At retrieval and citation, those facts help the system decide whether the page matches the question and whether the source is trustworthy enough to name.
This is why schema alone will not rank a weak page. It removes ambiguity. It does not create relevance, authority or demand. A page that answers nothing useful will still answer nothing useful, whatever labels sit on it.
Why is 'more schema is better' the wrong starting point?
The common misconception is that schema is a checklist and more boxes ticked means more visibility. In practice, every extra type adds a failure surface. A broken property can make a whole block invalid, and invalid blocks are usually ignored rather than half-read.
Google's own structured data documentation is explicit that markup must match visible page content. If your JSON-LD claims a price the page does not show, the markup is a mismatch, not an enhancement. That is a real risk for small sites where one template serves many pages.
The better mental model is a contract. Each schema block is a promise about what the page contains. Five accurate promises beat twenty vague ones, because machines can trust the five.
Which five types should you actually deploy?
Use the table below as your working list. It assumes a small site with a homepage, a handful of service or product pages, and some editorial content. If your site is a single-page brochure, you can skip Article until you publish something article-shaped.
| Schema type | One-line purpose | Where it goes | Deploy first? |
|---|---|---|---|
| Organization | Names the company behind the site and its official links. | Homepage, ideally site-wide. | Yes |
| LocalBusiness | States the physical location, hours and service area. | Homepage and contact page. | Yes, if you serve customers in person. |
| WebSite | Identifies the site itself and its internal search behaviour. | Homepage only. | Yes |
| BreadcrumbList | Shows the page's position in the site hierarchy. | Every page below the homepage. | Yes |
| Article | Marks a page as editorial content with an author and date. | Blog posts, guides, news. | Yes, if you publish content. |
If you sell products, add Product. If you publish recipes, add Recipe. If you run events, add Event. Those are situational, not baseline. The five above are baseline.
What does each type look like in JSON-LD?
JSON-LD is a way to write schema as a block of JavaScript-style data inside a <script> tag, separate from your visible HTML. It is the format Google's documentation recommends, because you can add or change it without touching layout.
Organization — put this on your homepage. Replace the placeholders with your real details.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Your Company Name",
"url": "https://example.com",
"logo": "https://example.com/logo.png",
"sameAs": [
"https://www.linkedin.com/company/your-company",
"https://www.crunchbase.com/organization/your-company"
]
}
</script>
LocalBusiness — use this when customers visit you or you visit them. The address and openingHours fields are the ones machines read most.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Your Business Name",
"image": "https://example.com/storefront.jpg",
"telephone": "+44 20 0000 0000",
"address": {
"@type": "PostalAddress",
"streetAddress": "1 Example Street",
"addressLocality": "Leeds",
"postalCode": "LS1 1AA",
"addressCountry": "GB"
},
"openingHours": "Mo-Fr 09:00-17:00",
"url": "https://example.com"
}
</script>
WebSite — one block, homepage only. The potentialAction part tells machines your site has its own search.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Your Site Name",
"url": "https://example.com",
"potentialAction": {
"@type": "SearchAction",
"target": "https://example.com/search?q={search_term_string}",
"query-input": "required name=search_term_string"
}
}
</script>
BreadcrumbList — one block per page, matching the visible breadcrumb trail. Do not invent levels the user cannot see.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://example.com"},
{"@type": "ListItem", "position": 2, "name": "Services", "item": "https://example.com/services"},
{"@type": "ListItem", "position": 3, "name": "Boiler Repair"}
]
}
</script>
Article — for blog posts and guides. The datePublished and author fields matter more than most people think, because answer engines use them to judge freshness and accountability.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Your Article Title",
"datePublished": "2026-09-29",
"dateModified": "2026-09-29",
"author": {
"@type": "Person",
"name": "Author Name",
"url": "https://example.com/about"
},
"publisher": {
"@type": "Organization",
"name": "Your Company Name",
"logo": {"@type": "ImageObject", "url": "https://example.com/logo.png"}
},
"mainEntityOfPage": "https://example.com/blog/your-article"
}
</script>
How do you roll this out without breaking the site?
Start with the homepage and one article page. Add Organization, WebSite and LocalBusiness to the homepage template. Add BreadcrumbList and Article to the article template. Then validate before you ship.
Google's Rich Results Test checks whether a page is eligible for specific rich result types. The Schema.org validator checks whether your JSON-LD is structurally valid against the vocabulary. Run both. They catch different problems.
After launch, watch Search Console's enhancement reports for a few weeks. If a block goes invalid, the report names the property. Fix the property, not the whole block. Keep a short changelog so the next person knows why a field exists.
One practical note: if your CMS injects schema automatically, check what it injects before adding your own. Duplicate Organization blocks on the same page are a common cause of confusion, and machines may pick the wrong one.
What mistakes should you avoid?
The most common mistake is marking up content that is not on the page. If your JSON-LD says a service costs £99 and the page shows nothing, that is a mismatch. Google's structured data policies treat mismatch as a reason to ignore or penalise the markup.
The second mistake is using the wrong type. A blog post marked as a Product will not earn product rich results and may confuse retrieval. Match the type to the page's actual job.
The third is over-nesting. A LocalBusiness inside an Organization inside a WebSite looks tidy in a diagram, but it adds complexity for no gain on a small site. Keep blocks flat unless you have a clear reason to nest.
Finally, do not treat schema as a ranking lever. It is a clarity tool. The ranking work happens in the content, the links and the technical health of the site.
Do you need an SEO consultant, or can you do this yourself?
For five types on a small site, the work is a few hours of template editing. If you can edit a theme file or paste a snippet into a header, you can do this. The validation step is free and takes minutes per page.
Bring in help when you have Product, Event, Recipe, JobPosting or multi-location LocalBusiness at scale. Those have more properties, more edge cases, and more ways to go invalid. That is where a specialist earns their fee.
There is no public figure for the average ROI of schema on small sites, and I would not trust one that claimed to be precise. Treat it as a hygiene task, not a growth channel.
Key Facts at a Glance
- Five types cover most small sites: Organization, LocalBusiness, WebSite, BreadcrumbList, Article.
- Schema helps at indexing and retrieval, not by itself as a ranking signal.
- Every block must match visible page content, or it can be ignored.
- Use JSON-LD, validate with the Rich Results Test and the Schema.org validator, then monitor Search Console.
- Add Product, Event or Recipe only when a page has that specific job.
What is schema markup and why does it matter?
Schema markup is a shared vocabulary from schema.org that labels facts on your page for machines. It matters because it removes ambiguity at indexing and retrieval, which helps search engines and AI answer engines understand and cite your page correctly.
Which schema types are good for a small business?
Organization, LocalBusiness, WebSite, BreadcrumbList and Article. Add Product, Event or Recipe only when a specific page needs them.
How do I add schema markup to my site?
Write JSON-LD blocks in your page templates. Put Organization, WebSite and LocalBusiness on the homepage, BreadcrumbList on every subpage, and Article on editorial pages. Validate before publishing.
Can schema markup improve my SEO rankings?
It can improve how machines understand and display your page, but it is not a direct ranking signal. Treat it as clarity, not as a growth lever.
How do I test if schema markup is working?
Run the page through Google's Rich Results Test and the Schema.org validator. Then watch Search Console enhancement reports for a few weeks after launch.
