TLDR
Schema markup is a label maker for your website. It tells machines which text is your business name, which is your service area, and which is an answer to a question.
Three types do most of the work for local companies: LocalBusiness, Service, and FAQPage. Google lists name and address as the required LocalBusiness properties.
Use the most specific business type available, keep every fact matching your Google profile, and never mark up anything that is not visibly true on the page.
What is schema markup?
Schema markup is a small block of code, usually JSON-LD, that restates your page's facts in a format machines read directly. The vocabulary lives at schema.org, a shared standard the major search engines maintain together. Instead of hoping a crawler guesses that "Summit Air" is a business name and "Austin" is its city, you label both explicitly.
Humans never see it. Machines rely on it. That trade is the whole point.
Why does it matter for local visibility?
Two reasons. First, search engines use structured data to power rich results, like the business panels and detail displays customers see before clicking anything. Google's LocalBusiness documentation covers exactly what that takes.
Second, and growing fast: AI assistants answering local questions need verified facts. Structured data is the cleanest fact source a website can offer, because there is no prose to misread. A business with complete markup gives machines confident answers about its hours, services, and coverage. A business without it makes them guess.
Which schema types does a service business need?
- LocalBusiness. The core identity block: who you are, where you are, and how to reach you. The full property list lives at schema.org/LocalBusiness. Google's docs list name and address as the required properties.
- Service. Describes each thing you sell, like furnace repair or drain cleaning, and the area you serve it in.
- FAQPage. Marks up real question and answer pairs from the page, which feeds the answer layer that assistants quote from.
- Organization. Useful on the homepage or about page for the wider brand, per Google's organization markup guide.
Which business type should you pick?
The most specific one that fits. Google explicitly recommends subtypes over the generic LocalBusiness. A plumbing company should be Plumber, and an electrical contractor should be Electrician. Schema also supports an array of types for companies that genuinely span trades. Google's own example shows a business typed as Electrician, Plumber, and Locksmith at once.
Specific types matter because they carry meaning. A machine that knows you are a Plumber can match you to plumbing questions without inference.
What does a real example look like?
Here is a clean LocalBusiness block for a fictional HVAC company. Swap in your real details, and only your real details.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "HVACBusiness",
"name": "Your Business Name",
"url": "https://www.yourdomain.com",
"telephone": "+1-512-555-0100",
"email": "office@yourdomain.com",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "Austin",
"addressRegion": "TX",
"postalCode": "78701",
"addressCountry": "US"
},
"areaServed": [
{ "@type": "City", "name": "Austin" },
{ "@type": "City", "name": "Round Rock" }
],
"openingHours": "Mo-Fr 08:00-18:00",
"sameAs": [
"https://www.facebook.com/yourbusiness"
]
}
</script>
Paste the block into the head of the page about your business, most naturally the homepage or contact page. One identity block per business is plenty. Service and FAQ markup then live on the pages they describe.
What are the rules that keep you safe?
- Mark up only what is visibly true on the page. Invisible or inflated claims violate the guidelines.
- Match your profile exactly. The name and details in your markup should mirror your Google Business Profile character for character.
- Skip self-serving review markup. Google treats review markup on your own business as intended for sites reviewing other businesses.
- Keep it current. Stale hours or old phone numbers in markup feed wrong answers to assistants, which burns trust twice.
How do you test that it works?
Validate before and after publishing. Google's Rich Results Test shows how Google reads the page and flags eligibility problems. The Schema Markup Validator checks the raw syntax against the schema.org vocabulary. Run both after any edit, because one missing comma silently breaks the entire block.
Then confirm in the wild. After a few weeks, check your pages in Search Console for structured data reports, and keep asking the AI assistants about your trade in your area. Clean markup is one of the quietest wins in local visibility: invisible to customers, obvious to machines.
Frequently asked questions
Do I need a developer to add schema markup?
Not necessarily. JSON-LD is a copy-paste block, and most site platforms let you insert code into a page head. A developer helps on complex sites, but a careful owner can ship the basics with a validator open in the next tab.
Will schema markup improve my rankings directly?
Treat it as an understanding signal rather than a ranking shortcut. It makes your facts unambiguous, powers rich displays, and feeds AI answers. Those effects compound into visibility even when position numbers do not jump overnight.
Is FAQ markup still worth it now that Google retired FAQ rich results?
Yes. Google removed the dropdown display in May 2026, but FAQPage remains a valid schema.org type. The markup still tells machines exactly which questions your page answers, and that is the material AI assistants quote.
Where should LocalBusiness markup live?
On the page that best represents the business, usually the homepage or contact page. Google notes it can go on any page, but one authoritative identity block beats scattering copies everywhere.
What is the fastest way to break schema markup?
Editing it by hand and missing a bracket or comma. Always revalidate after changes. The second fastest is letting the markup drift out of sync with reality, like old hours after a schedule change.
Xavier writes about structured data and the technical work of being read by machines. FoundLocal is where the full playbook lives.