Schema markup for small business is structured data, usually written in JSON-LD, that tells search engines exactly what your business is, where it operates and what each page offers. Most small sites need LocalBusiness or Organization markup on one key page, BreadcrumbList on inner pages, and Article or Product markup where those pages exist.
Two changes reshaped the advice. Google stopped showing FAQ rich results on May 7, 2026, so FAQ markup no longer wins extra space in results. And Google’s guidance on generative AI search says no special schema is needed for AI Overviews or AI Mode. Schema still qualifies pages for product, breadcrumb and other rich results, and it removes guesswork about your business details.
This guide covers which types to add, copy-ready examples for a fictional business, service areas and branches, setup in WordPress and Shopify, testing, and the mistakes that cost sites their rich results. Schema markup for small business is one building block of our practical 90-day SEO plan.
Key takeaways
- Start with LocalBusiness or Organization on your home or contact page, BreadcrumbList on inner pages, and Article or Product where relevant.
- Choose the most specific LocalBusiness subtype, such as Dentist, Restaurant or LegalService, and write the markup in JSON-LD.
- Google stopped showing FAQ rich results on May 7, 2026; FAQPage markup no longer earns extra space in results.
- Mark up only what visitors can see, and never add star ratings for reviews of your own business.
- Test with the Rich Results Test and the Schema Markup Validator, then watch Search Console’s rich result reports for errors.
What is schema markup, and how does it help SEO?
Schema markup is a shared vocabulary from schema.org that labels facts on a page, such as a business name, opening hours or a product price, so search engines don’t have to guess. Google uses it to understand pages and to power rich results: listings enhanced with prices, breadcrumbs, images or business details.
Google supports JSON-LD, Microdata and RDFa, and says JSON-LD is usually the easiest to implement and maintain. JSON-LD sits in one script block, separate from the visible text, so you can add or edit it without touching the page design.
Keep expectations realistic. Google says correct markup doesn’t guarantee a rich result, and a page must include every required property just to be eligible. Schema markup for SEO removes ambiguity and qualifies pages for features; it is not a ranking shortcut, and it doesn’t replace the basics in our on-page SEO checklist.
Which schema markup does a small business website need?
For most sites, schema markup for small business comes down to four or five types. Add others, such as Event, JobPosting or VideoObject, only when you actually publish that content.
| Schema type | Where it goes | What it does in Google Search |
|---|---|---|
| LocalBusiness subtype (Dentist, Restaurant, Plumber, LegalService) | Home or contact page; each branch’s page for multi-location businesses | Supplies address, hours, phone and coordinates for business details in results |
| Organization, or OnlineStore for online-only shops | Home or About page, once | Helps Google choose your logo and understand your official name, contact details and profiles |
| BreadcrumbList | Inner pages that show breadcrumbs | Breadcrumb trail in results, shown on desktop only since January 2025 |
| Article or BlogPosting | Blog posts and news | Helps Google show the right title, image and dates |
| Product or ProductGroup with Offer | Product pages | Price, availability and ratings in product snippets and merchant listings |
| Service | Service pages | No Google rich result; describes what you offer and where |
| FAQPage | FAQ sections | No rich result since May 7, 2026 |
Pick the most specific business type
Google asks for the most specific LocalBusiness subtype available, so a dental clinic should use Dentist and a law firm LegalService rather than plain LocalBusiness. Avoid the generic ProfessionalService type: schema.org notes it was deprecated because it was confused with Service. If nothing specific fits, use LocalBusiness; an online-only business with no local customers is better described as Organization or OnlineStore.
Watch out
Google added a deprecation notice to its FAQ rich result documentation in May 2026, and FAQ results no longer appear in Google Search from May 7, 2026. Keep visible FAQ sections that help visitors, but don’t add FAQPage markup expecting extra space. HowTo rich results went the same way in September 2023.
What does local business schema look like?
Here is a complete LocalBusiness example for a fictional clinic. Replace every value with your own details, exactly as they appear on the page and on your Google Business Profile, and place the block in the page’s HTML.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Dentist",
"@id": "https://www.example.com/#clinic",
"name": "Example Dental Clinic",
"url": "https://www.example.com/",
"logo": "https://www.example.com/images/logo.png",
"image": "https://www.example.com/images/clinic-reception.jpg",
"telephone": "+92-51-0000000",
"address": {
"@type": "PostalAddress",
"streetAddress": "Office 4, Example Plaza, Blue Area",
"addressLocality": "Islamabad",
"addressRegion": "Islamabad Capital Territory",
"postalCode": "44000",
"addressCountry": "PK"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 33.71234,
"longitude": 73.06543
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "09:00",
"closes": "18:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "10:00",
"closes": "14:00"
}
]
}
</script>What each part does:
@type: the most specific subtype, hereDentist.@id: a stable identifier (your URL plus a fragment) that other markup, such as a Service block, can reference.nameandaddress: the only properties Google requires. Fill in as many address fields as you show publicly.geo: latitude and longitude with at least five decimal places, as Google specifies.openingHoursSpecification: for 24-hour opening, use 00:00 to 23:59; to mark a day closed, set both times to 00:00; addvalidFromandvalidThroughfor seasonal hours.telephoneandurl: the main customer number and the page for this specific location.
Add Service markup to service pages
Service markup earns no rich result in Google, but it describes each offering and ties it to your business through the @id above. A minimal block for a service page:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"name": "Dental implants",
"serviceType": "Dental implant treatment",
"url": "https://www.example.com/dental-implants/",
"provider": { "@id": "https://www.example.com/#clinic" },
"areaServed": { "@type": "City", "name": "Islamabad" }
}
</script>Here provider points to the clinic’s @id, connecting the service to the business without repeating its address, and areaServed says where the service is offered.
How do you mark up service areas and multiple locations?
Service-area businesses describe where they work with areaServed and publish only the address details they show publicly. Businesses with several branches give each branch its own page and its own LocalBusiness block.
Service-area businesses
If you visit customers and hide your street address on your Google Business Profile, keep it out of your markup too: Google’s guidelines say not to mark up content that isn’t visible on the page. Include the city, region and country you do show, then list the places you cover with areaServed, which schema.org defines as the area where a service is provided.
For example: "areaServed": [{"@type": "City", "name": "Rawalpindi"}, {"@type": "City", "name": "Islamabad"}]. Keep the list consistent with the service areas on your Business Profile and the areas named on the page.
Multiple locations and countries
- One page per branch, each with its own LocalBusiness markup: that branch’s address, phone, hours and coordinates.
- One Organization block for the brand on the home page, with a stable
@id. - Connect each branch to the brand with
parentOrganizationpointing to that@id; schema.org lists it as the replacement for the olderbranchOf. - For departments inside one location, such as a pharmacy within a store, Google suggests nesting them with
departmentand naming them “{store name} {department name}”. - Remote clients abroad, such as a Pakistan-based agency serving the UK and UAE, belong in
areaServedon your Organization or Service markup. Don’t create LocalBusiness entries for countries where you have no address.
Location markup supports, but never replaces, a complete Google Business Profile; our local SEO checklist covers the profile, reviews and citations.
How do you add schema markup in WordPress and Shopify?
On WordPress, an SEO plugin generates most of it once you complete its settings; on Shopify, your theme already outputs product, article and basic organization markup. Either way, check what exists before adding more, because a theme, a plugin and an app can each describe the same page differently.
WordPress with Yoast SEO
Go to Yoast SEO → Settings → Site representation, choose Organization, and add your name, logo and social profiles. Yoast then outputs WebSite, WebPage, Organization and BreadcrumbList markup and describes posts as Articles; the Schema tab in the Yoast sidebar changes the type for a single page. Address, opening hours and multiple locations come from the paid Yoast Local SEO add-on.
WordPress with Rank Math
Go to Rank Math SEO → Titles & Meta → Local SEO, choose Person or Organization, pick your business type, and fill in the address, opening hours, phone, price range and coordinates. For a single page, open the Schema tab in the Rank Math sidebar and use the Schema Generator. Multiple locations and schema templates need Rank Math PRO.
Shopify
Shopify’s free Dawn and Horizon themes output Product markup (ProductGroup when a product has variants) and Article markup through the structured_data Liquid filter, plus basic Organization markup with your store name and logo. They don’t add LocalBusiness, so a store with a physical shop needs a custom snippet or an app.
Before installing a schema app, view the page source and search for application/ld+json; if the app adds a second Product block for the same item, remove one. Keep product markup in the theme’s HTML rather than injecting it through Google Tag Manager, since Google warns that JavaScript-generated product markup can make Shopping crawls less frequent and less reliable. On heavily customized themes, have a developer or an SEO specialist recheck the output after each update.
How do you test schema markup before and after launch?
Test each page template with Google’s Rich Results Test and the Schema Markup Validator before launch, then monitor Search Console afterwards. Each tool answers a different question.
| Tool | What it checks | Use it |
|---|---|---|
| Rich Results Test | Whether markup qualifies for Google rich results; tests a URL or pasted code, with a smartphone crawler by default | Before and after publishing any template |
| Schema Markup Validator (validator.schema.org) | Syntax and schema.org compliance for any type, including types with no Google rich result, such as Service | For types the Rich Results Test ignores |
| URL Inspection in Search Console | Whether Google found the markup on the live page | After launch and after theme or plugin changes |
| Rich result reports in Search Console | Valid and invalid items site-wide, under Enhancements (product snippets and merchant listings sit under Shopping) | Monthly, and after every update |
Fix critical issues first, because an invalid item can’t appear as a rich result, then work through missing recommended properties. Google advises that fewer complete, accurate properties beat many sloppy ones. Schema testing belongs in the wider launch routine covered in our technical SEO checklist for new websites.
Does schema markup help with AI search?
Not directly, according to Google. Its guide to optimizing for generative AI search says structured data isn’t required and there’s no special schema.org markup to add, because AI Overviews and AI Mode are rooted in the same core ranking and quality systems as regular results.
Schema markup for AI search is still sensible groundwork: Google’s AI features guidance lists structured data that matches the visible text, along with current Merchant Center and Business Profile information, among the fundamentals that remain worthwhile. Be wary of anyone selling special “AI schema”; the bigger levers are content and reputation, covered in our guide to ranking in Google AI Overviews.
Which schema mistakes can cost you rich results?
When schema markup for small business sites goes wrong, it’s usually because the markup doesn’t match the page or overstates it. Google can issue a manual action for structured data problems, which removes a page’s rich result eligibility, though Google says it doesn’t affect how the page ranks in web search.
- Marking up content visitors can’t see, such as hours, prices or reviews that exist only in the code.
- Self-serving review stars. Pages with LocalBusiness or Organization markup aren’t eligible for star ratings when the business controls the reviews about itself, including reviews shown through an embedded Google or Facebook reviews widget.
- Aggregating ratings from other sites into your own
aggregateRating; Google’s review guidelines rule it out. - Duplicate or conflicting blocks from a theme, an SEO plugin and a schema app describing the same page.
- Stale details: hours, phone numbers or prices in markup that no longer match the page or your Business Profile.
- The wrong type, such as marking a service page as a Product to chase star ratings; Google’s guidelines prohibit misleading markup.
How TechZone can help
TechZone’s SEO team can audit the markup your site outputs today, remove duplicates and self-serving ratings, and add LocalBusiness, Organization, Service, Product and Article markup that matches each page, on WordPress, Shopify or a custom build. For multi-location and international businesses, we map branches and service areas to your Google Business Profiles. If you want a prioritized fix list first, start with an SEO audit. See our SEO services, or book a free 30-minute consultation to review your structured data together.
Frequently asked questions
Is schema markup a ranking factor?
Google presents schema markup as a way to understand pages and qualify them for rich results, not as a ranking boost. A rich result can make a listing more prominent, but correct markup guarantees neither a rich result nor a higher position. Google also says a structured data manual action removes rich result eligibility without affecting how the page ranks in web search.
Can I add schema markup without a plugin?
Schema markup can be added without a plugin by placing a JSON-LD script block in the page’s HTML, for example in a theme template or a custom HTML block. Google Tag Manager can also inject JSON-LD, but Google warns that values duplicated into a tag can drift from the page, so pull values from the page itself. Test every block with the Rich Results Test before publishing.
Should I remove FAQ schema now that FAQ rich results are gone?
Removing FAQPage schema is optional. When Google first limited FAQ rich results in 2023, it said structured data that isn’t used causes no problems for Search but has no visible effect either. FAQ rich results stopped appearing on May 7, 2026, so keep FAQPage markup only if another tool you rely on uses it, and keep the visible FAQ section if it helps visitors.
How long does it take for rich results to appear after adding schema?
Rich results can appear only after Google recrawls and reprocesses the page, and the timing varies from page to page. Requesting indexing through the URL Inspection tool in Google Search Console can prompt a recrawl. Even valid markup may never produce a rich result if Google decides it doesn’t suit the search, so track the rich result reports rather than expecting a fixed date.
What is the difference between schema markup and a Google Business Profile?
Schema markup lives on your website and describes your business to any search engine that reads it, while a Google Business Profile is a listing you manage inside Google that feeds Google Maps and local results. Both should state the same name, address, phone number and hours. Google’s advice on local ranking centers on the Business Profile, and schema reinforces those details on your site.
Sources and further reading
- Latest Google Search Documentation Updates – Google Search Central
- General Structured Data Guidelines – Google Search Central
- Local Business (LocalBusiness) Structured Data – Google Search Central
- Review Snippet (Review, AggregateRating) Structured Data – Google Search Central
- Google's Guide to Optimizing for Generative AI Features on Google Search – Google Search Central
- Liquid filters: structured_data – Shopify Dev Docs



