AEO
What an AEO-ready service page looks like
Hugo Pegley 3 min read
When an AI tool answers “who fixes water heaters in Novato”, it reads pages and decides which ones it can quote. A page it can quote says plainly what the business does, where, and how to get in touch. A page it cannot quote makes the reader, human or otherwise, guess.
There is nothing exotic about a page built to be quoted. It is a good service page, done carefully. Here is what I look for, in the order I would check it.
1. The service and the city in the title and the H1
The title and the main heading should both say what the page is about and where. “Water heater repair in Novato” tells everyone at once. “Our services” tells no one anything.
One page per service, and where it makes sense one per area. A single page listing every service and every town cannot be about any of them.
2. A plain opening paragraph
The first paragraph should answer the question the page exists for: what you do, who for, where, and what happens next. Write it as though it will be quoted on its own, because it may be.
“We repair and replace tank and tankless water heaters across Novato, San Rafael and southern Marin. Most repairs are done the same day.”
Only write that if it is true. A claim that cannot be checked is worse than no claim.
3. Real questions with real answers
A short FAQ block is the most quotable part of any page, because it is already shaped as question and answer. Use the questions customers actually ask on the phone: how much does it cost, how long does it take, do you work weekends, what areas do you cover. Answer each in a sentence or two, with a figure or a range where you honestly can.
Put the text in the page itself. Content hidden behind a script that loads later is easier for a crawler to miss.
4. LocalBusiness structured data
Structured data is a block of code that states the facts about the business in a form a machine can read: its name, address, phone number, hours, the service area and the services.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Plumber",
"name": "Example Plumbing",
"telephone": "+1-415-555-0100",
"areaServed": ["Novato", "San Rafael"]
}
</script>
I want to be straight about what it does. It does not guarantee anything, and I cannot promise an AI tool uses it. It removes ambiguity, and the visible text on the page is still what gets quoted. Treat it as a way of agreeing with yourself in two places.
5. One phone number, and a tap-to-call link
Most of these visitors are on a phone. A number that is plain text has to be copied. A number written as a link can be tapped.
<a href="tel:+14155550100">(415) 555-0100</a>
Use the same number everywhere, matching the one on the Business Profile. Why that consistency matters is covered in this piece on NAP.
6. Proof on the page
Reviews, years in business, a license number where one applies, photos of real work. These are the details that separate a business from a template, and they are the kind of fact an answer can attach to a recommendation.
7. A page that loads and reads on a phone
If it is slow, or the text is tiny, or a banner covers the number, the best copy in the world will not get used. Open your own page on your own phone and try to call.
What I usually see instead
The usual failures are the opposite of the list. A single services page with no city. Services presented as products in a cart. A phone number that is an image. No questions anywhere. None of it is hard to fix, and most of it is an afternoon’s work.
If you want to know how the answers get assembled in the first place, start with how AI tools choose a local business. The page is one part of the wider local SEO work.