All guides
PlaybookAugust 8, 2026 · 10 min read

Should You Publish Your Prices? How Pricing Pages Shape AI Recommendations

By the alphaa team — we run AI-visibility scans across thousands of businesses and read the raw engine responses, including the ones where a competitor's price gets quoted instead of our customer's. Last updated 8 August 2026.

Short answer: Yes — in most categories you should publish something, because the AI assistant is going to answer the cost question either way. When your site has no price, the model does not say "unknown" and stop; it reaches for whatever number it can retrieve — a directory estimate, a competitor's posted rate, an old forum thread, a national average that has nothing to do with your market. Publishing a specific, honestly-qualified range is how you make your number the retrievable one. The exception is genuinely bespoke work, where the right move is publishing the structure of your pricing rather than a figure.

Why price is the question AI gets asked most

Buyers do not ask assistants "who is the best roofer." They ask "how much does it cost to replace a roof in Tampa," "what do bookkeepers charge for a small business," "is $4,000 reasonable for Invisalign." Cost is the constraint that makes the rest of the search real, so it shows up early and it shows up constantly.

That matters because of how the answer is assembled. Modern assistants use retrieval-augmented generation: at the moment you ask, they pull live documents from the web, read them, and synthesize a response from what those documents actually say. A number that exists as plain text on a crawlable page is trivially retrievable. A number that lives behind a "request a quote" form does not exist to the retrieval step at all. If you want the mechanism in full, see is AEO real.

What actually happens when you publish nothing

Run the experiment yourself — it takes two minutes and it is more convincing than any argument here. Ask ChatGPT, Gemini and Perplexity what your service costs in your city, phrased the way a customer would. In our scans, the pattern is consistent enough to predict:

  • A competitor gets quoted by name. Whoever published a number becomes the concrete anchor, and often the recommendation attached to it.
  • A national average stands in for your market. Frequently sourced from a home-services or cost-estimator directory, and frequently wrong for your area by a wide margin.
  • You get described as opaque. Answers include hedges like "they don't list pricing publicly; you'll need to contact them," which reads to a buyer as friction next to a competitor whose range is right there.

None of those outcomes is the engine being unfair. Each one is the engine doing exactly what it is built to do — answer from available evidence — with your evidence missing.

What a quotable pricing page looks like

"Quotable" is the operative word. A model lifting an answer needs a self-contained sentence that survives being pulled out of its page. Compare:

  • Not quotable: "Our pricing is competitive and tailored to your needs. Contact us for a free consultation." Nothing here can be extracted.
  • Quotable: "A standard asphalt-shingle roof replacement on a 1,800–2,200 sq ft single-storey home in the Tampa area runs $11,000–$16,500 as of August 2026, including tear-off and disposal. Steep pitches, multiple layers, or decking repair add roughly 10–20%."

The second version works because it carries five things a model needs to use it confidently:

  • A unit. Per job, per hour, per month, per square foot — the number is meaningless without it.
  • A scope. What is included, and what is not.
  • A qualifier. The conditions under which the range holds, and what pushes it up.
  • A location. Cost questions are almost always local; an unlocated price is a weak match for a located question.
  • A date. Assistants weigh freshness heavily on cost claims, and a stale price is a liability. See how freshness works in AI search.

Put it in text, not in an image

This is the most common self-inflicted wound we see. Pricing tables exported as PNGs, price lists baked into a hero graphic, rates that only appear inside a PDF menu — none of that reliably reaches the retrieval step. The same applies to prices that only render after a JavaScript-driven interaction, like a slider or a tabbed calculator with no server-rendered default; see JavaScript rendering and AI crawlers for why. Ship the numbers as real HTML text on the page.

Mark it up with schema where it fits

For products and defined services, Offer and PriceSpecification in your JSON-LD give the price a machine-readable form alongside the prose — including priceCurrency, price or minPrice/maxPrice, and validThrough. Schema is a clarity aid, not a ranking lever: it disambiguates what the number means. Only mark up prices that genuinely appear on the page — mismatched markup is a trust problem, not a shortcut. Our schema guide covers the setup.

When your work really is bespoke

Plenty of businesses cannot post a single number honestly — a litigation practice, a custom fabricator, an agency scoping six-month engagements. Publishing a fake-precise figure there would be worse than silence. But "no fixed price" is not the same as "no information," and the information is what gets retrieved. Publish the structure instead:

  • The model. Hourly, retainer, fixed-fee, contingency, percentage of spend, per-seat. Say which one you use.
  • The floor. "Our smallest engagements start at $6,000" is honest, self-qualifying, and enormously useful to a buyer deciding whether to call.
  • The drivers. The three or four variables that actually move the number, in plain language.
  • A worked example. One anonymised, representative engagement with its real shape: scope, duration, and what it came to. This is the single most quotable asset a bespoke business can publish.

The honest caveats

Publishing a price does not guarantee you get recommended, and nobody can promise that it will — assistants weigh many signals, answers vary between engines and between runs of the same engine, and pricing is one input among reviews, third-party coverage and entity consistency. Two real trade-offs deserve naming. First, competitors can read your prices — though in most local categories they already can, via quotes customers share. Second, a published price you do not honour is far more damaging than no price at all, because it converts a marketing decision into a trust failure. If a number changes, change it on the page the same week.

A 30-minute version you can do today

  1. Ask three assistants what your main service costs in your city. Save the answers.
  2. Note who got quoted and what number stood in for yours. That gap is the brief.
  3. Write one paragraph per core service, each carrying unit, scope, qualifier, location and date.
  4. Publish it as HTML text on a page linked from your main navigation — not a PDF, not an image.
  5. Add the same range to your Google Business Profile services and your top directory listings.
  6. Re-run the three questions in three to four weeks and compare.

The bottom line

The cost question gets answered with or without you. Publishing a specific, qualified, dated range is how you make sure the answer is yours rather than a stranger's guess — and it is one of the few AEO moves that also does obvious work for the human reading the page.

Run a free AI visibility scan →

Run my free AI scan →2 minutes · no credit card