A price on your site is most readable to AI when it’s written on the page as text. A number hidden in an image, in a PDF, or behind a form may never be read, and the system can reach for a third-party or outdated source instead. Even where an exact number isn’t possible, a range, a starting-at price, or a description of what drives the price helps.
Let’s be clear about what this piece is not: it isn’t telling you to publish your prices. That’s a business decision, and “price on request” is a legitimate choice. It only takes on the second question — once you’ve decided to communicate a price somehow, how to do it so both a person and a machine understand it.
Why price is where the blank space shows up
In the article on wrong information about your brand in AI we wrote that a system is more likely to fill in an answer wherever clear, consistent material is missing. Price is exactly that kind of spot. It’s one of the most common questions people ask, and on a lot of sites there’s no answer to it.
When a clear number is missing from your own site, third-party sources often fill the gap. Comparison sites, older articles, forum threads, directories. Those can be out of date or about something slightly different.
| Aspekt | Where | How readable it is |
|---|---|---|
| Text on the page | Written in HTML | The most readable option — people and machines both tend to handle it more easily |
| PDF price list | A file behind a link | Weaker — a system may not get to the contents of the file, and it's harder to keep current |
| Image | A price in graphics | Weak — text in an image isn't the page's text |
| Behind a form | A price list after signup | Harder to reach — content behind a form only shows up once a visitor fills it in, and a system often never gets there |
The process
-
Decide what you can say
From most specific down: an exact price, a range, a starting-at price, or a description of how you calculate it. There's usually at least something you can say.
-
Write the price on the page
In the copy, not in an image, not only in a PDF, and not after a click. Near the product or service description, not in the footer.
-
Explain what drives the price
What pushes it up and what brings it down: scope, deadline, integrations. For custom work this is worth more than a single number.
-
Make the price consistent everywhere
Site, price list, profiles, directories. When the numbers disagree, you're offering a choice and you have no say in what a system takes.
-
Add structured data
Repeat the price in machine-readable form. The values have to match what's visible in the copy — and change along with it.
Structured data for price
You can write the price in machine-readable form with Offer, and for a range with something like PriceSpecification using minPrice and maxPrice. Currency goes in ISO 4217 ("USD") and the number uses a decimal point, with no thousands separators. The exact shape depends on the page type and on what’s actually visible on it — the data shouldn’t supply a price the page doesn’t have:
{
"@context": "https://schema.org",
"@type": "Service",
"name": "AI SEO audit",
"offers": {
"@type": "Offer",
"priceSpecification": {
"@type": "PriceSpecification",
"minPrice": 2500,
"maxPrice": 7500,
"priceCurrency": "USD"
}
}
}
It’s an illustrative example — the exact markup differs by offer type and page. One condition holds across all of them: the values have to match the price a visitor sees on the page. With structured data it makes sense to keep parity with the visible content; when the two disagree, it’s a problem for interpretation and for credibility — the data should describe the page, not say something off to the side. That it guarantees no citation on its own is covered in the article on structured data for AI.
What to avoid
Price on request as the only information
Commercially legitimate, informationally empty. You can usually give at least a range, or describe what drives the price.
The price only in a PDF price list
A system may not get to the contents of the file, and PDFs are harder to maintain, so they often hold an older price than the site does.
Structured data that contradicts the page
When structured data states a different price than the copy, that’s a problem in itself — and a signal that nobody is maintaining one of the two.
A fake starting-at price
A starting-at price should match something you can actually buy. Otherwise the reader finds out on first contact.
Where this article stops
It doesn’t tell you whether to publish prices. That’s a business decision, not a technical one. This article is about form, not strategy.
It doesn’t promise a citation or better rankings. A clear price improves the odds that the number comes from you and not from somewhere else. It isn’t a guarantee, and nobody can give you one.
It doesn’t cover pricing strategy or the legal side. Price disclosure rules for consumers, taxes, promotional pricing — those have their own rules, they vary by market, and they belong to a specialist.
What to take away
Price tends to be a common blank space on websites and, at the same time, one of the first things people ask about. A blank space rarely stays blank — a third-party, sometimes older source usually fills it.
The point isn’t to publish a price list at any cost. The point is to give a clear signal: a range, a starting-at price, or at least a calculation model, written as text where a person looks for it. And then to keep it the same everywhere.
Products have their own specifics — those are covered in product pages for AI, and services and B2B in service pages for AI.
Want to know where the prices circulating about you come from? An AI SEO audit traces the likely sources of the disputed numbers and lays out the content and technical steps that can improve the odds that more accurate figures about your business and its pricing get picked up.