If you have spent any time reading about SEO, you have probably come across the terms "structured data" and "schema markup." They sound technical and look intimidating in blocks of code, and most guides about them are written for developers rather than business owners.
But here is the thing: structured data is one of the most underused tools in small business SEO. It does not require a computer science degree to implement, and when done correctly, it can make your business stand out in search results in ways that your competitors are probably not doing.
This guide covers what structured data is, why it matters specifically for small businesses, which types you should prioritise, and exactly how to implement it using JSON-LD. I will include real code examples you can adapt for your own website.
Key takeaways
- Structured data helps search engines understand your content, not just read it. It translates your pages into a language Google can parse with precision.
- JSON-LD is the format Google recommends. It sits in a script block in your page's HTML and does not interfere with your visible content.
- The most valuable schema types for small businesses are LocalBusiness, Service, Product, AggregateRating, BreadcrumbList, and Article.
- Structured data is not a ranking factor on its own, but it makes your pages eligible for rich results that can increase click-through rates and visibility.
- Testing is straightforward using Google's free Rich Results Test and Schema Markup Validator.
- Most small business websites have zero structured data, which means implementing it gives you a genuine competitive edge.
What is structured data?
Structured data is code you add to your website that tells search engines exactly what your content means. Without it, Google reads your pages like any human would, scanning paragraphs and making educated guesses about what the page is about. With structured data, you are labelling things explicitly: this is a business name, this is an address, this is a service we offer, this is a customer review.
Think of it like the difference between handing someone a pile of documents and handing them the same documents in labelled folders. The information is identical, but the organised version is far more useful.
The vocabulary used for this labelling comes from Schema.org, a collaborative project founded by Google, Microsoft, Yahoo, and Yandex. It defines hundreds of "types" (like LocalBusiness, Product, Article) and "properties" (like name, address, telephone) that you can use to describe your content.
How is structured data different from schema markup?
You will often see these terms used interchangeably, and in practice, they refer to the same outcome. Technically, structured data is the broader concept of organising information in a way machines can understand. Schema markup is the specific vocabulary from Schema.org that you use to do it. When someone says "add schema to your site," they mean "add structured data using the Schema.org vocabulary."
There are three formats you can use to implement schema markup: JSON-LD, Microdata, and RDFa. Google explicitly recommends JSON-LD, and it is the format used by the vast majority of websites today. It is also the easiest to work with because it lives in a standalone script block rather than being woven throughout your HTML. Every example in this guide uses JSON-LD.
Why structured data matters for small business SEO
Structured data is not a ranking factor. Google has said this repeatedly. Adding schema markup will not, on its own, move you up the search results.
So why bother?
Because structured data makes your pages eligible for rich results, and rich results change how your listing appears in search. Instead of the standard blue link with a description, your listing might show star ratings, business hours, price ranges, breadcrumb navigation, or service lists. These enhanced listings take up more visual space, catch the eye, and consistently achieve higher click-through rates than plain results.
For small businesses competing against larger brands with bigger budgets, rich results level the playing field. You might not outrank a national chain, but if your listing shows 4.8 stars and their listing is plain text, you are more likely to get the click.
There are several specific reasons structured data matters for small businesses:
Rich results increase click-through rates. Search listings with review stars, pricing, and other enhanced features draw more attention. Studies from major SEO platforms have consistently found that rich results achieve higher click-through rates than standard listings.
It supports local search visibility. LocalBusiness schema reinforces your business name, address, phone number, and service area, all of which support your local SEO efforts and help search engines connect your website to your Google Business Profile.
It feeds AI-powered search. Google's AI Overviews, voice assistants, and other answer engine features rely heavily on structured data to provide accurate, direct answers. If your site is properly marked up, you are more likely to be surfaced as a source in these results.
It builds trust signals. When your search listing shows star ratings from genuine reviews, it establishes credibility before someone even visits your site.
Your competitors probably are not doing it. In my experience working with small businesses in Ireland and the US, most small business websites have no structured data at all. Implementing it is a straightforward way to gain an edge.
The six schema types every small business should consider
Schema.org lists hundreds of types, but most small businesses only need a handful. Here are the six I recommend starting with, roughly in order of priority for a typical small business website.
1. LocalBusiness schema
If you operate a business that serves customers in a specific area, whether you have a physical premises or you provide services across a region, LocalBusiness schema is your starting point. It tells search engines your business name, address, phone number, opening hours, and the area you serve.
This schema type directly supports local search. It reinforces the same information that should be on your Google Business Profile, and consistency between the two strengthens your local SEO signals.
There are also more specific subtypes you can use instead of the generic LocalBusiness. If you run a restaurant, use Restaurant. If you are a dentist, use Dentist. If you are a plumber, use Plumber. The more specific you can be, the better.
Here is a real-world example of LocalBusiness JSON-LD for a plumbing company:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Plumber",
"name": "Dublin Plumbing Services",
"image": "https://www.example.com/images/logo.png",
"url": "https://www.example.com",
"telephone": "+353-1-234-5678",
"email": "[email protected]",
"address": {
"@type": "PostalAddress",
"streetAddress": "45 Main Street",
"addressLocality": "Dublin",
"addressRegion": "County Dublin",
"postalCode": "D02 XY12",
"addressCountry": "IE"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 53.3498,
"longitude": -6.2603
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "08:00",
"closes": "18:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "09:00",
"closes": "14:00"
}
],
"areaServed": {
"@type": "City",
"name": "Dublin"
},
"priceRange": "$$",
"sameAs": [
"https://www.facebook.com/dublinplumbing",
"https://www.instagram.com/dublinplumbing"
]
}
</script>
Place this on your homepage. If you have multiple locations, create a separate LocalBusiness block for each location page.
2. Service schema
Service schema lets you explicitly define what services your business offers. This is particularly useful for service-based businesses because it helps Google match your pages to specific queries like "boiler repair Dublin" or "emergency plumber near me."
You can nest Service schema within your LocalBusiness markup, or you can add it to individual service pages. I generally recommend both approaches: a summary in your LocalBusiness block on the homepage, and detailed Service schema on each service page.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"serviceType": "Boiler Repair",
"provider": {
"@type": "Plumber",
"name": "Dublin Plumbing Services",
"url": "https://www.example.com"
},
"areaServed": {
"@type": "City",
"name": "Dublin"
},
"description": "Professional boiler repair and servicing for all makes and models. Same-day emergency callouts available across Dublin.",
"offers": {
"@type": "Offer",
"price": "80.00",
"priceCurrency": "EUR",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": "80.00",
"priceCurrency": "EUR",
"unitText": "per callout"
}
}
}
</script>
If you do not want to display specific pricing, you can omit the offers section entirely. The serviceType, provider, areaServed, and description fields are the most important.
3. Product schema
If you sell products online, Product schema is essential. It enables rich results that show pricing, availability, and review ratings directly in search results. For e-commerce businesses, this can have a meaningful impact on click-through rates.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Irish Wildflower Honey - 340g Jar",
"image": "https://www.example.com/images/wildflower-honey.jpg",
"description": "Raw, unfiltered wildflower honey sourced from apiaries in County Wicklow.",
"brand": {
"@type": "Brand",
"name": "Wicklow Honey Co."
},
"offers": {
"@type": "Offer",
"url": "https://www.example.com/products/wildflower-honey",
"priceCurrency": "EUR",
"price": "8.50",
"availability": "https://schema.org/InStock",
"seller": {
"@type": "Organization",
"name": "Wicklow Honey Co."
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "89"
}
}
</script>
Product schema is especially powerful for Shopify and WooCommerce stores. Many e-commerce platforms will generate basic Product schema automatically, but the default output is often incomplete. It is worth checking what your platform generates and supplementing it if needed.
4. AggregateRating schema
This is the schema type responsible for those star ratings you see in search results. AggregateRating represents a summary of multiple customer reviews, showing the average rating and the total number of reviews.
You can embed AggregateRating within a LocalBusiness, Product, or Service schema block. Here it is nested inside a LocalBusiness example:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Dublin Plumbing Services",
"url": "https://www.example.com",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"bestRating": "5",
"worstRating": "1",
"ratingCount": "147"
}
}
</script>
Important note: Google requires that AggregateRating data be based on genuine, visible reviews on your page. You cannot add a rating schema and then not display the actual reviews. The rating values in your structured data must match what is visible on the page. Fabricating or inflating ratings violates Google's structured data guidelines and can result in manual penalties.
5. BreadcrumbList schema
Breadcrumb schema tells Google the hierarchy of your pages. Instead of showing a plain URL in search results, Google can display a clean breadcrumb trail like: Home > Services > Boiler Repair.
This might seem minor, but it does two things. First, it makes your search listing look more professional and easier to understand. Second, it helps Google understand the structure of your site, which supports crawling and indexing.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://www.example.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "Services",
"item": "https://www.example.com/services"
},
{
"@type": "ListItem",
"position": 3,
"name": "Boiler Repair",
"item": "https://www.example.com/services/boiler-repair"
}
]
}
</script>
Add BreadcrumbList schema to every page on your site, updating the hierarchy to match the actual page. Many CMS platforms and SEO plugins can generate this automatically.
6. Article schema
If you publish blog posts, guides, or any editorial content (and if you are reading this, you probably should be), Article schema helps Google understand the piece. It tells Google who wrote it, when it was published, and when it was last updated.
Article schema supports features like top stories carousels and can contribute to your overall E-E-A-T signals (Experience, Expertise, Authoritativeness, Trustworthiness) by associating content with a named author.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "How to Choose the Right Boiler for Your Home",
"image": "https://www.example.com/images/choosing-boiler.jpg",
"author": {
"@type": "Person",
"name": "John Murphy",
"url": "https://www.example.com/about"
},
"publisher": {
"@type": "Organization",
"name": "Dublin Plumbing Services",
"logo": {
"@type": "ImageObject",
"url": "https://www.example.com/images/logo.png"
}
},
"datePublished": "2025-06-15",
"dateModified": "2025-07-01",
"description": "A practical guide to selecting the right boiler type, size, and efficiency rating for Irish homes."
}
</script>
How to add structured data to your website
The implementation method depends on your platform, but the principle is the same everywhere: you are adding a <script type="application/ld+json"> block to the HTML of your pages.
WordPress
If you use WordPress, the easiest approach is a plugin. Yoast SEO and Rank Math both generate structured data automatically for Article, Breadcrumb, and basic Organization schema. For LocalBusiness and Service schema, you may need to add custom code or use a dedicated schema plugin like Schema Pro.
If you prefer manual control, you can add JSON-LD blocks to specific pages using the header/footer injection feature in your theme settings. Alternatively, a plugin like Insert Headers and Footers can place the script in the <head> section.
Shopify
Shopify generates basic Product and Organization schema out of the box, but it is often incomplete. You can enhance it by editing your theme's theme.liquid file and adding JSON-LD blocks directly, or by using apps like JSON-LD for SEO or Schema Plus.
Custom or static sites
If your site is built with a framework like Astro, Next.js, or plain HTML, you add the JSON-LD script directly to your page templates. For a custom-built site, this gives you the most control and produces the cleanest output.
Where to place the code
Google processes JSON-LD identically whether it is in the <head> or <body> of your page. Google's John Mueller has confirmed this directly. I generally recommend placing it in the <head> for cleanliness, but it works in either location.
Testing and validating your structured data
After adding structured data, you need to verify that it is valid and free of errors. Google provides two free tools for this.
Rich Results Test
Go to search.google.com/test/rich-results and enter your page URL. This tool shows you which rich result types your page is eligible for, and flags any errors or warnings in your markup. It is the most practical tool because it tells you what Google will actually do with your data.
Schema Markup Validator
The Schema Markup Validator at validator.schema.org checks your structured data against the full Schema.org specification. It is more thorough than the Rich Results Test and will catch issues that Google's tool might not flag. Use both.
Google Search Console
Once your structured data is live, Google Search Console's Enhancements section will show you the status of your structured data over time. It reports errors, warnings, and valid items across your entire site. Check this periodically, especially after making changes to your site templates.
Common errors to watch for
The most frequent structured data errors I see on small business websites are:
- Missing required fields. Each schema type has required and recommended properties. LocalBusiness, for instance, needs at minimum a name, address, and URL.
- Mismatched data. Your structured data says you close at 6pm, but your website says 5pm. Google notices these inconsistencies.
- Invalid JSON syntax. A missing comma or bracket will break the entire block. Use a JSON validator if you are hand-coding.
- Schema on the wrong page. Product schema on a blog post, or Article schema on a contact page. The schema type must match the page content.
- Self-serving reviews. Adding AggregateRating without displaying actual reviews on the page, or using fabricated review data.
Structured data and AI search: why this matters more now
With Google's AI Overviews, ChatGPT search integrations, and voice assistants becoming more prevalent, structured data has taken on a new dimension. These AI systems do not just crawl and index pages the way traditional search does. They look for clearly defined, machine-readable information they can use to generate answers.
When a voice assistant responds to "What time does the nearest plumber open?" or when an AI Overview summarises local service options, it is pulling from structured data. If your site has clean, accurate schema markup, you are more likely to be the source these systems draw from.
This is sometimes called Answer Engine Optimisation (AEO), and structured data is one of its foundational pillars. For small businesses, this is particularly relevant because AI-powered search tends to favour clear, authoritative local information, exactly the kind of data that LocalBusiness and Service schema provides.
A practical implementation checklist
If you are starting from scratch, here is the order I would recommend for a typical small business website:
- Homepage: Add LocalBusiness schema with your NAP (name, address, phone), opening hours, service area, and social media links.
- Service pages: Add Service schema to each individual service page with a description and, if applicable, pricing.
- Product pages: If you sell products, add Product schema with pricing, availability, and review data.
- Blog posts: Add Article schema with author, publication date, and modified date.
- All pages: Add BreadcrumbList schema that reflects your site hierarchy.
- Reviews: If you display customer reviews on your site, add AggregateRating schema to the relevant pages.
- Test everything: Run every page through both the Rich Results Test and Schema Markup Validator.
- Monitor: Check Google Search Console's Enhancements section monthly.
You do not need to do all of this in one sitting. Start with your homepage and work outward. Even adding LocalBusiness schema alone puts you ahead of most small business competitors.
What not to do
Structured data is powerful, but there are a few things to avoid:
- Do not mark up content that is not visible on the page. If your structured data describes services that are not actually mentioned on the page, Google considers this misleading. The structured data must reflect what users can see.
- Do not use schema types that do not match your page. Adding Product schema to a page that does not sell a product, or LocalBusiness schema to a blog post, will not help and may trigger warnings.
- Do not fabricate review data. AggregateRating must reflect genuine, visible reviews. Google actively penalises fake review markup.
- Do not add every schema type you can find. More is not better. Use the types that are relevant to your business and your pages. Quality and accuracy matter far more than quantity.
Getting help with structured data
If this still feels overwhelming, that is completely normal. Structured data sits at the intersection of SEO strategy and technical implementation, and getting it right requires attention to detail.
At Everblue Digital, we implement structured data as part of every website build and SEO engagement. If you want to see how your site currently stacks up, book a free website audit. We will look over your site before a free 20-minute call, then walk you through what is missing and what we would fix first.
You can also browse our case studies to see what we have built for small businesses in Ireland and the US.