Industry-Specific Schema Templates That Work
Generic Organization markup tells machines that you exist. Industry-specific markup tells them what you are — and when an AI engine assembles an answer to "best emergency plumber near me" or "does semaglutide interact with metformin," classification is the first filter your site must pass. This guide maps the schema.org types and properties that matter for fourteen industries, with the honesty caveats each vertical needs.
Why the subtype matters
Schema.org defines more than 800 types, and the LocalBusiness branch alone contains dozens of subtypes — from Plumber and Electrician to Dentist and AutoRepair. According to Google's local business structured data documentation, choosing the most specific applicable type helps Google understand and present the business correctly. The same logic applies with more force in AI retrieval: a language model composing an answer about dental implants is scoring candidate sources for topical fit, and an unambiguous Dentist entity with services, credentials and geography attached is easier to select — and to attribute — than a bare Organization named "Smith & Associates."
There is a second, less obvious reason. Industry data suggests the majority of AI-citation weight comes from off-site entity signals — directories, professional registries, third-party mentions. Your on-site markup is the hub those spokes resolve to. If your site says Organization while fifty directories say "dental clinic," the entity graph is weaker than it should be. Consistent typing across your site and your external footprint is what makes the graph cohere.
The subtype is not decoration. It is the join key between your website and everything the rest of the web says about you.— ClickRadius Institute analysis
The fourteen templates
1. Legal — Attorney / LegalService
Use Attorney for individual lawyers and LegalService for firms. High-value properties: areaServed, practice areas via knowsAbout or a Service catalog (hasOfferCatalog), bar admissions as hasCredential, and founder/employee nodes typed as Person with their own sameAs to state bar profiles. Legal queries are high-stakes for AI engines, which makes verifiable credentials disproportionately valuable. Never mark up outcome claims ("98% win rate") you cannot substantiate — bar advertising rules and machine trust point the same direction.
2. Medical practices — MedicalClinic / Physician
Schema.org's health extension is unusually deep: MedicalClinic, Physician, availableService typed as MedicalProcedure or MedicalTherapy, and medicalSpecialty from a controlled enumeration. In the U.S., add the practice's NPI number via identifier — a registry-backed disambiguator. AI engines treat health as a high-scrutiny category (Google's "Your Money or Your Life" framing), so accuracy and credential markup matter more here than anywhere else.
3. Dental — Dentist
A dedicated subtype with the full LocalBusiness property set: openingHoursSpecification, geo, priceRange, availableService. Dental is dominated by "near me" and comparison queries — exactly the queries where AI assistants now produce shortlists, so complete hours, insurance acceptance (in visible content plus paymentAccepted) and service granularity earn their keep.
4. Home services — Plumber, Electrician, HVACBusiness, RoofingContractor, HousePainter, Locksmith
Schema.org's HomeAndConstructionBusiness branch is the most granular in the vocabulary. Use the exact trade subtype, plus areaServed as a list of City or PostalCode nodes (AI answers to emergency-service queries are aggressively geographic), license numbers in identifier or visible content, and 24/7 availability expressed truthfully in openingHoursSpecification. Multi-trade companies should multi-type: "@type":["Plumber","HVACBusiness"].
5. Restaurants — Restaurant + Menu
servesCuisine, acceptsReservations, hasMenu pointing to a full Menu → MenuSection → MenuItem tree with prices and dietary suitableForDiet flags. Food queries to AI assistants are intent-dense ("gluten-free ramen open now"), and a structured menu is the only way a machine can answer them from your site instead of from a delivery platform that takes a commission.
6. Real estate — RealEstateAgent + Residence/Offer
Type the brokerage or agent as RealEstateAgent; individual listings work best as Offer nodes referencing a SingleFamilyResidence or Apartment with numberOfRooms, floorSize and address. Listings churn constantly, so generate markup from the same feed that renders the page — hand-maintained listing schema is stale schema.
7. E-commerce — Product + Offer + Review
The highest-stakes template. Required in practice: name, image, description, sku, brand, and an Offer with price, priceCurrency and availability. GTIN/MPN identifiers connect your product to the same product everywhere else — the e-commerce version of entity disambiguation. Include aggregateRating only from genuine collected reviews; fabricated ratings violate Google's policies and are exactly the kind of inconsistency cross-checking AI systems can surface.
8. SaaS — SoftwareApplication + Offer
applicationCategory, operatingSystem ("Web" is valid), offers with real pricing, and featureList. SaaS buyers increasingly start with "best X software for Y" prompts; third-party comparison sites dominate those answers partly because vendors leave their own attributes unstructured. Pair SoftwareApplication with an Organization node carrying funding, founding date and sameAs to review platforms.
9. Financial services — FinancialService / AccountingService
Use the specific subtype where one exists (AccountingService, InsuranceAgency, BankOrCreditUnion). Regulatory identifiers — CRD numbers, state license numbers — belong in identifier and visible content. Like health, finance is a high-scrutiny answer category; engines lean harder on verifiable authority, and thin affiliate-style pages are being displaced accordingly.
10. Fitness — ExerciseGym / HealthClub
Hours, membership Offer nodes, amenityFeature for equipment and classes, and Event markup for scheduled classes. Class-schedule queries are a natural AI-assistant use case that most gyms leave entirely to aggregators.
11. Education — EducationalOrganization + Course
Google documents a dedicated Course structured-data feature: each course gets Course with hasCourseInstance (schedule, mode), offers (tuition) and provider. For AI answers to "certification in X near me," structured course catalogs are extraction-ready in a way PDF catalogs never will be.
12. Automotive — AutoRepair / AutoDealer
Trade subtype plus makesOffer for services, brand affiliations, and for dealers, Vehicle nodes (vehicleModelDate, mileageFromOdometer, vehicleTransmission) generated from inventory feeds.
13. Hospitality — Hotel / LodgingBusiness
checkinTime, checkoutTime, amenityFeature, numberOfRooms, and petsAllowed — the exact attributes travel prompts ask about. OTAs mark this up exhaustively, which is precisely why direct-booking properties that skip it disappear from machine-composed shortlists.
14. Professional services — ProfessionalService
The catch-all for consultancies, agencies and studios. Compensate for the generic type with specific properties: knowsAbout for expertise areas, hasOfferCatalog for services, award, foundingDate, and person-level Person nodes for principals. When the type is vague, the properties must carry the classification load.
Five rules that apply to every template
- One canonical entity, referenced everywhere. Declare the business once with an
@idand reference it from every page's markup. Ten slightly different copies of your business node is self-inflicted ambiguity. - Most specific true type wins. Specific beats generic, but true beats specific. A marketing agency typed as
Attorneyfor a legal-clients page is misclassification, not optimization. - Markup mirrors the visible page. Google's structured data policies are explicit that markup must reflect page content. AI engines cross-read both; contradictions cost trust twice.
- Generate from data, not by hand. Hours, prices, menus and inventory change. Markup wired to the same source of truth as the page never drifts.
- Validate on every template change. The Schema.org validator takes seconds; silent schema rot after a redesign is one of the most common defects our scans find.
- Keep external listings in the same key. The type and details you declare on-site should agree with what your Google Business Profile category, directory listings and professional registries say. When your site claims
HVACBusiness, your GBP says "Plumber" and a directory says "General Contractor," a machine reconciling the three has no reason to prefer your version — the entity resolves to a blur. Pick the classification once, then propagate it everywhere the business is described.
Building the template: a worked example
To make the pattern concrete, here is the skeleton of a home-services implementation — the same structure adapts to any of the fourteen verticals by swapping the type and the industry-specific properties:
{
"@context": "https://schema.org",
"@type": ["Plumber", "LocalBusiness"],
"@id": "https://acmeplumbing.example/#business",
"name": "Acme Plumbing Co.",
"url": "https://acmeplumbing.example/",
"telephone": "+1-303-555-0142",
"address": { "@type": "PostalAddress", "streetAddress": "412 Mill St",
"addressLocality": "Denver", "addressRegion": "CO", "postalCode": "80202" },
"geo": { "@type": "GeoCoordinates", "latitude": 39.7508, "longitude": -104.9966 },
"areaServed": [ { "@type": "City", "name": "Denver" },
{ "@type": "City", "name": "Aurora" } ],
"openingHoursSpecification": [{ "@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "07:00", "closes": "18:00" }],
"hasOfferCatalog": { "@type": "OfferCatalog", "name": "Plumbing services",
"itemListElement": [ { "@type": "Offer", "itemOffered":
{ "@type": "Service", "name": "Water heater replacement" } } ] },
"sameAs": [ "https://www.linkedin.com/company/acme-plumbing",
"https://www.bbb.org/us/co/denver/profile/acme-plumbing" ]
}
Three things to notice. The @id makes this node referenceable from every other page's markup. The areaServed list is explicit cities rather than a vague radius, because geographic questions get geographic answers. And every value shown is the kind that lives in a database somewhere — which is the point: this block should be rendered by your CMS from the same fields that render the visible page, so the two can never disagree.
Where this fits in the bigger picture
Structured data is foundation work, and it compounds with the content signals research says drive citations. The Princeton-led GEO study (Aggarwal et al., KDD 2024) found that adding quotations, statistics and source citations raised a source's visibility in generative answers by up to roughly 40% in its benchmarks — and with a large majority of brands still showing zero AI-search mentions according to industry estimates, the early-mover math favors doing both layers now, while categories are uncrowded.
In most local categories the machine-readable playing field is nearly empty. The first business in a market to describe itself completely is, for a while, the only business the machines can describe completely.— ClickRadius Institute analysis
For the fundamentals of JSON-LD, entity disambiguation and sameAs strategy, start with Schema Markup for AI Citation; for the Q&A layer nearly every industry should add, see FAQPage Schema and AI Answers.
Frequently asked questions
What if my industry has no specific schema.org type?
Fall back to the most specific parent that is true. ProfessionalService or LocalBusiness covers most service businesses, and Organization covers everything. A correct general type with rich, honest properties beats a wrong specific type — misclassification confuses entity resolution rather than helping it.
Can I combine multiple types on one entity?
Yes. JSON-LD supports multi-typing — "@type":["Dentist","LocalBusiness"] — and different pages can attach different types that all reference one canonical @id. Keep combinations truthful and minimal: two accurate types beat five speculative ones.
Do AI engines really read industry-specific subtypes?
Retrieval systems ingest whatever machine-readable signals reduce ambiguity, and a subtype like Electrician or MedicalClinic is a strong classification hint that plain text sometimes fails to convey. No engine publishes per-type weightings, so treat subtypes as a disambiguation aid backed by Google's documented use of structured data — not as a guaranteed ranking lever.
ClickRadius detects your industry, generates the right schema automatically, and scores your whole site's AI-citation readiness across six categories. Start with your free AI Readiness Score, or see plans on the pricing page.