Why a page has to be shaped like an answer
In our audit of 9,483 small business websites (40 trades, 90 metros, September 2026), 61.5% had no question-and-answer content of any kind, and 50.7% had at least one heading phrased as a question with no answer under it a machine could isolate. The median homepage ran to 880 words. The words were there, in a form nothing could quote.
The mechanism has been measured. Aggarwal et al. (KDD 2024) tested changes to source pages and found that adding statistics, quotations and citations raised a source's visibility in generated answers by up to about 40% on their benchmark. A passage that already reads as an answer, with the specific fact inside it, is what an assistant can lift and attribute; a slogan is not. Every block below exists to put a fact where it can be lifted.
The structure, block by block
| Block | What goes in it | Why it earns its place |
|---|---|---|
| h1 | The service and the place, in the words a buyer types | The first thing a machine reads about the page |
| Answer paragraph | 40 to 80 words: what the work is, where, how long, how it is priced | A passage that can be lifted whole and attributed |
| Facts block | Price or range, area, hours, how to book, license | What buyers ask first, stated rather than implied |
| Five questions | The questions you answer on the phone, as h2 headings, each answered directly beneath | 61.5% of audited sites have nothing shaped like a question and its answer |
| Reviews as text | Two or three real reviews quoted with name, date and platform, plus the rating and count | 64.7% of audited sites show no review signal a crawler can read |
| Schema block | A Service node with the provider (your LocalBusiness subtype), hours, rating and offer | The same facts in the vocabulary machines share |
| Date | Last reviewed, and by whom | Tells a reader and a machine that the page is kept |
The filled example
A plumbing page, because the trade is universal; the structure is the same for a dentist's implant page or a photographer's wedding page. Brackets are yours to replace or delete.
<h1>Water heater replacement in [City]</h1>
<p>Your company name replaces gas and electric tank water heaters in [City]
and [the towns you serve], [same day when you call before noon]. A standard
40- or 50-gallon swap takes [two to three hours], includes removing the old
unit and [the permit where your city requires one], and is priced in writing
before any work starts. Licensed [number] and insured.</p>
<h2>The facts</h2>
<ul>
<li>Price: from $[low], typically $[low] to $[high] for a like-for-like tank, quoted in writing first</li>
<li>Area: [City] and [the towns or neighborhoods you serve]</li>
<li>Hours: [Mon to Fri 7 a.m. to 6 p.m.; Sat 8 a.m. to 2 p.m.]; after-hours line: [yes or no]</li>
<li>Booking: call [the one phone number] or book at [URL]</li>
<li>License: [number], insured</li>
</ul>
<h2>How long does a water heater replacement take?</h2>
<p>[Two to three hours] for a like-for-like tank in the same spot. Moving the
unit, changing fuel type or bringing the venting up to code adds [time], and
we say so before we start.</p>
<h2>Do I need a permit in [City]?</h2>
<p>[Yes: [City] requires a plumbing permit for a replacement; we pull it and
the fee is in the quote.] [Or: No, not for a like-for-like swap.]</p>
<h2>Tank or tankless?</h2>
<p>[A tank costs less to install and suits most homes with [number] or fewer
bathrooms. Tankless costs more up front, needs [gas line or electrical
capacity], and suits a household that runs out of hot water.] We install
both and say which fits when we see the house.</p>
<h2>What does the price include?</h2>
<p>The new unit, removal and disposal of the old one, new supply lines and
fittings, [the permit], and a [number]-year labor warranty on top of the
manufacturer's. Anything outside that is a written line on the quote.</p>
<h2>Can you come today?</h2>
<p>[Usually, if you call before noon on a weekday; otherwise the next
morning.] Call [the one phone number]; a person answers [hours].</p>
<h2>What customers say</h2>
<blockquote>
<p>"[The review, word for word as published.]"</p>
<footer>[First name], [City], [Month Year], on [Platform] ([link to the review])</footer>
</blockquote>
<blockquote>
<p>"[A second review, word for word.]"</p>
<footer>[First name], [Town], [Month Year], on [Platform] ([link])</footer>
</blockquote>
<p>Rated [4.8] out of 5 from [140] reviews on [Platform], as of [Month Year].</p>
<p>Last reviewed [Month Day, Year] by [name, role].</p>The schema block goes in the head of the same page. It is a Service whose provider is your LocalBusiness subtype, carrying the same phone, address and hours as the visible page, and an offer with the starting price. It carries no rating: the one in the reviews section comes from a platform, and Google's review snippet rules say not to aggregate ratings from other websites.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Service",
"serviceType": "Water heater replacement",
"name": "Water heater replacement in [City]",
"url": "https://www.example.com/services/water-heater-replacement",
"areaServed": ["[City]", "[Town]", "[Town]"],
"provider": {
"@type": "Plumber",
"name": "Your company name",
"url": "https://www.example.com/",
"telephone": "[the one phone number]",
"address": {
"@type": "PostalAddress",
"streetAddress": "[street]",
"addressLocality": "[City]",
"addressRegion": "[State or province]",
"postalCode": "[code]",
"addressCountry": "[two-letter code]"
},
"openingHoursSpecification": [
{ "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"], "opens": "07:00", "closes": "18:00" },
{ "@type": "OpeningHoursSpecification", "dayOfWeek": "Saturday", "opens": "08:00", "closes": "14:00" }
]
},
"offers": {
"@type": "Offer",
"priceCurrency": "USD",
"price": "[low]",
"description": "Like-for-like tank replacement, old unit removed, [permit included]"
}
}
</script>The rules
- One page per service. A homepage that lists nine services answers none of them. Each service gets this structure and its own five questions.
- The words in the HTML. Not in an image, a PDF or a script that runs after the page loads. In the audit, 3.0% of sites rendered their text only in JavaScript and 2.1% kept it in a PDF; to a crawler that runs no scripts and opens no files, both pages are empty.
- One identity. The name, address and phone on this page match the footer, the contact page and the Google Business Profile character for character. 43.1% of audited sites fail this on their own three main pages.
- Answer first, detail after. The first sentence under each heading is the answer; what follows is the qualification. A passage lifted from the middle of a paragraph has to make sense on its own.
- A date, kept true. "Last reviewed" tells a reader and a machine that someone stands behind the page; change it when you change the page and not otherwise.
- Written for the buyer. Google's page on AI features says its AI results need no special markup, file or optimization, and asks for helpful, people-first content. The page that helps the person who asked is the page that gets quoted.
- Real reviews, with their source. Quote only reviews a visitor can find on the platform you name, and state their rating in the text, not the markup; Google's review snippet rules say not to aggregate ratings from other websites.
- Markup that matches the page. Every value in the schema block appears in the visible text; Google's guidance is to mark up only what the visitor can see. Check the JSON still parses after every edit.