Network disclosure
All ten sites in this network are published by Bay Area AEO. They cover answer engine optimization in the Bay Area from ten angles and link to one another so readers can move between related topics.
One page, one main block
The rule for everything in this chapter is the same as for LocalBusiness: the markup states what the
page already states, no more and no less. A service page carries Service markup describing that service.
An FAQ section carries FAQPage markup for the questions visible on the page. A menu page carries Menu
markup for the items listed. Each block refers back to the business by the @id set in
chapter 25.
Service markup
The Service type describes a single service: its name, the kind of service, who provides it, where it is offered and, optionally, its price. Bay Area AEO's one-line definition of the structured data signal names three things markup should tell AI: the services, the service area and the hours. Service markup covers the first two at the level of each page.
{
"@context": "https://schema.org",
"@type": "Service",
"name": "Tankless water heater installation",
"serviceType": "Water heater installation",
"provider": {"@id": "https://www.example-plumbing.com/#business"},
"areaServed": ["Hayward", "San Leandro", "Castro Valley"],
"description": "Removal of the old tank and installation of a gas or electric tankless unit, with the permit and inspection."
}
Use the service name from the page heading, the areaServed list from the page's service
area section, and a short description taken from the page's opening answer. If the page states a price
or a range, add it with an offers block using priceSpecification, with the
minimum and maximum price and the currency. Leave price out of the markup if the page does not state
one.
Offers and prices
The Offer type can describe a specific package or product: a tasting experience, a membership tier, a catering package, a fixed-price service. Each offer can carry a price and currency, its availability, and a description. This is useful for the budget conditions in customer questions, covered in chapter 19. Keep offers in markup only while they are current; an expired offer in markup is a stale fact in its most machine-readable form.
FAQPage markup
FAQPage markup lists the questions and answers on a page. Each question has a name (the question text) and an accepted answer (the answer text). The text must be identical to what the page shows.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "Do you come out on Sundays?",
"acceptedAnswer": {"@type": "Answer",
"text": "Yes. We take emergency calls on Sundays in Hayward, San Leandro and Castro Valley."}
}]
}
Google limited the FAQ rich results it shows in search to a small group of authoritative sites, so most businesses will not see their FAQs expanded in Google's results. That does not make the markup pointless. It is still a clean, unambiguous statement of the questions and answers on the page, which any crawler can parse. Use it on pages with real FAQs, and never mark up questions that are not visible on the page.
Menu markup
Any food or drink business with a menu can mark it up with the Menu type, divided into
MenuSection blocks, each holding MenuItem entries with names and descriptions,
prices, and dietary information through suitableForDiet (vegan, vegetarian, gluten-free,
halal, kosher and more). Bay Area AEO's restaurant page names Menu and Restaurant schema as part of the
work of turning PDF and image menus into crawlable pages. The Restaurant markup links to the menu page
with hasMenu.
Event markup
For recurring and one-off events (trivia nights, live music, tastings, classes, workshops, open houses), Event markup states the name and start time, the location and the organizer, and can mark an event as recurring. It suits the schedule pages in chapter 22. A brewery that publishes its live music schedule in text and marks each date up as an event has given an assistant everything it needs to answer “brewery in Livermore with live music” for a particular night.
Person markup for bios
Practitioner bios can carry Person markup: the name, job title, the business they work for (by
@id), the languages they speak with knowsLanguage, their education with
alumniOf, and credentials with hasCredential. Professional profiles they
control can go in sameAs. The values should match the bio and the directory profiles in
chapter 23 exactly.
A note on review markup
Businesses are often tempted to mark up their own testimonials as reviews with a star rating. Google's guidelines treat reviews a business publishes about itself on its own site as ineligible for review rich results for LocalBusiness and Organization types, and markup that misrepresents reviews can be treated as spam. Quote reviews on the page as text, with permission, and leave review markup for the platforms where customers actually wrote them.
Markup for processes and products
Two more types are useful in particular trades. Product markup suits businesses that sell distinct items with prices, such as a bakery's custom cakes, a winery's bottles or a roaster's beans, and can carry the price and availability of each. For services that follow a clear sequence, the page itself should describe the steps in an ordered list; that list is often what an assistant summarizes when a customer asks how a process works, such as what happens at a first physical therapy visit or how a solar installation proceeds from site visit to permission to operate.
Use these where they describe something real on the page. A small business does not need every type Schema.org offers, and markup added for its own sake tends to drift out of date.
Services offered at several locations
A business with several locations should say on each service page where the service is offered, and the Service markup should list the right providers. A dental group that offers implants only at its Fremont office should not mark up implants as available in Union City. Getting this right lets an assistant answer “implants near Union City” with the correct office and the right travel note, and avoids the frustrated phone call that follows a wrong answer.
Breadcrumbs and page context
BreadcrumbList markup describes where a page sits in the site: Home, then Services, then Water heaters, then Tankless installation. It helps any crawler understand that a page is part of a larger set of services offered by one business. Most website platforms can generate it automatically from the navigation.
What to add first
LocalBusiness on the home and contact pages
The foundation, from chapter 25.
Service markup on the main service pages
Start with the services that matter most, the same order as the page plan in chapter 16.
FAQPage on pages with real FAQs
Only where the questions are visible on the page.
Menu, Event or Offer where the trade needs it
Restaurants and bars first; studios and venues next, then seasonal sellers.
Person markup on practitioner bios
Most useful for health and legal practices, financial firms and other credentialed trades.
Testing and maintenance
Test each new block with Google's Rich Results Test and the Schema.org validator, as in chapter 25. Then add the markup to the change routine: when a service, price, question, menu item or staff member changes, the markup on that page changes in the same edit. Markup that drifts away from the page is worse than none, because it gives an assistant two different statements of the same fact.
Who maintains it
Markup belongs to whoever maintains the pages it describes. If a web developer writes it once and leaves, it will drift. The safest arrangement is a short note in the master business record listing which pages carry which blocks, so that the person who changes a price or a service also knows which markup to change. Agencies that manage a site's content should include markup in that same routine and show it in their reports.
Why the extra markup is worth the time
None of these blocks replaces good writing. A service page with perfect markup and a vague opening paragraph will still be passed over. What markup does is remove doubt. When the page says “Tankless water heater installation in Hayward, San Leandro and Castro Valley” and the markup says the same thing in a form no machine can misread, the assistant reading the page has two matching statements from one source and a precise one to fall back on. Bay Area AEO counts structured data among its five signals because it makes everything else on the page easier to trust.
Mark up one page this week
Pick your most important service page. Write a Service block using the page's own heading, service area and opening answer, add FAQPage markup for its visible FAQs, test both, and publish. Then compare next month's answers for that service's questions.
Related chapters25. LocalBusiness markup · 18. FAQs that get quoted · 22. Menus, event schedules and offer lists · 17. Service pages an assistant can quote