What schema markup do you need for AI search?
For a home service business, four schema types carry most of the weight: LocalBusiness (who and where you are), Service (what you sell), FAQPage (the questions you answer), and Person (who stands behind the work). Together they give an answer engine a machine-readable version of every fact it needs in order to name you.
Why schema matters more than it used to
Schema has always been the part of a page that states facts rather than describing them. When results were ten blue links, that mostly bought you rich snippets. Now that answers are generated, it is the difference between supplying facts and hoping they get inferred.
LocalBusiness: identity
This is the anchor. Name, address, phone, hours, service area, and the categories you operate in. Every other type attaches to it.
Service: what you actually sell
Each service gets its own entry, emergency repair, installation, maintenance plans, panel upgrades, EV charger installs. One blurred "services" entry gives the engine one fact; five entries give it five ways to match a query.
FAQPage: direct answer surface
FAQ markup feeds People Also Ask and gets lifted into generated answers. It is also the cheapest content on the site to produce, because the questions already exist in your phone log.
Person: the E-E-A-T attachment
Person schema attaches a named, credentialed human to the business. For trades where licensing matters, this is a meaningful trust signal to both search engines and the homeowner deciding whether to let someone into their house.
What this looks like across the three trades
HVAC: separate Service entries for repair, install, and maintenance, with seasonal availability reflected honestly in hours. Maintenance plans deserve their own entry because they are a different purchase entirely.
Built in, not bolted on
Plugin-generated schema tends to drift from the page it describes, because the plugin does not know when your content changed. Schema written into the templates is generated from the same content the visitor sees, so the two cannot disagree.
How to check it
Validate every template type, not one page. Errors cluster by template, so one broken service template can silently take out forty pages.