A local business needs a short list of schema types, not the whole catalog: LocalBusiness (or its most specific subtype) to establish who and where you are, Service for what you actually sell, FAQPage for the questions you answer on the page, and Person for the humans behind the work. Get those four right, keep them honest, and you have told machines nearly everything they need to recommend you.
Schema.org lists roughly eight hundred types, which is why most advice on the subject reads like a parts catalog. The catalog is not for you. It exists so that everyone from airlines to zoos can describe themselves in a shared vocabulary; a plumber needs maybe five entries from it. Here are the five, and what each one actually does.
Why does schema matter more than it used to?
Schema markup is structured data: labels in your page's code that tell machines, without ambiguity, what the content means. A human reads "Open Tue–Sat" and gets it. A machine does far better when you declare opening hours explicitly, because parsing prose is guesswork and parsing labeled data is not.
Search engines have used structured data for years to power rich results. What changed is who else is reading it. AI answer engines — ChatGPT, Perplexity, Google's AI Overviews — assemble answers from sources they can interpret with confidence, and clean structured data lowers the cost of being understood. That is the working core of answer engine optimization: a machine that is unsure about your hours, your service area, or whether you are the same business mentioned on three directories will quietly cite somebody it is sure about.
Which type does the heavy lifting?
LocalBusiness — ideally the most specific subtype that honestly fits: Dentist, Attorney, Electrician, Plumber, Restaurant, RoofingContractor, VeterinaryCare, and many more. Subtypes carry meaning a generic Organization does not, so pick the narrowest one that is true.
The properties worth filling in carefully:
- name — exactly as it appears on your Google Business Profile, not a keyword-stuffed variant.
- address, telephone, geo — matching your site footer, your profile, and your directory listings. That consistency is the same discipline good local SEO has always demanded; schema just makes it machine-checkable.
- openingHoursSpecification — and update it when your hours change, holidays included.
- areaServed — the cities or regions you genuinely cover.
- sameAs — links to your Google profile and social accounts, which helps machines merge your scattered mentions into one entity.
What do Service, FAQPage, and Person add?
Service
One Service block per real service page: the service name, a plain description, the area served, and a provider property pointing back at your LocalBusiness. Resist inventing Service markup for things you mention in passing — if the service does not have a page, it does not need markup.
FAQPage
Use it only on pages that visibly show questions and answers, and make the markup match the visible text word for word. Google has tightened who gets FAQ rich results, but the markup still gives answer engines a cleanly parsed question-and-answer pair to lift.
Person
Mark up the owner and the practitioners: name, job title, credentials, and a sameAs link to a LinkedIn profile or a licensing listing. This is how the experience-and-expertise story your site tells becomes legible to machines, and it costs you one honest paragraph per person.
Reviews, carefully
Review and AggregateRating markup are only for reviews you collected and display on your own site. Republishing your Google star rating inside your own markup is against Google's guidelines and a reliable way to lose rich-result eligibility. When in doubt, leave rating markup off.
Where should the JSON-LD go?
Use JSON-LD — a small script block — rather than microdata woven into your HTML. It can sit in the head or the body; search engines do not care. Several blocks are fine, and you can connect them by giving each entity an @id and referencing it, so your Service points to your LocalBusiness instead of describing the business twice. Validate with Google's Rich Results Test and the Schema.org validator before shipping, and again after any theme change.
What are the common mistakes?
- Markup that contradicts the page. Machines cross-check. Mismatched hours or addresses erode exactly the trust you were trying to build.
- Template leftovers. Agency-built sites sometimes ship with another client's name or city still in the JSON-LD. Read your own markup once.
- Generic Organization when a specific LocalBusiness subtype exists and fits.
- FAQPage markup on pages with no visible FAQs — a classic honesty failure.
- Set-and-forget. Hours, staff, and services change; markup that fossilizes becomes misinformation with your name on it.
None of this is a ranking trick. Schema is simply the difference between making machines infer your facts and handing those facts over labeled. If you are curious what engines currently believe about your business — and where the markup gaps are — an audit through a visibility platform like Speak Local will surface them. The fix list usually starts with the four types above.