Pricing & revenue

Should I show pricing on my website?

By Jake Luo · Published 2026年9月4日

Publish a number if a stranger could buy without talking to you, and treat hiding the price as a decision that needs its own justification. A blank pricing page rarely creates curiosity — it mostly filters out the people who were closest to buying, and it hands the number to whoever guesses it for you: a comparison page, a review site, or an AI answer. Hide the price only where deals genuinely vary, and even then publish enough shape — a starting point, the unit you charge by, or a range — that a visitor can tell in ten seconds whether they are in the right shop.

What a blank pricing page actually does

The case for hiding a price is that a number without context looks expensive, and a conversation lets you frame the value first. That is a real effect, and for genuinely negotiated deals it is the right call. The problem is who stays for the conversation. A visitor who cannot find a price does not usually think "I should book a call to find out" — they think "this is priced for someone bigger than me" and leave. The people who do fill in the form skew towards those with time, procurement patience and somebody else's budget. That is a fine audience if it is who you sell to, and a slow one if it is not.

There is a second effect founders underrate: hiding the price does not keep it private, it only means you are not the one publishing it. Comparison pages, review sites, forum threads and now AI assistants all answer "how much does it cost" with something. If the number is not on your own domain, the one in circulation is a stranger's estimate — possibly taken from a pricing page you replaced a year ago — and you have no way to correct it. It is the same dynamic that makes comparison pages worth writing yourself rather than leaving to other people.

ApproachFits whenWhat it costs you
A public number per planAnyone can sign up and pay without you, and the price does not move much between similar customersYou are committed in public, and every change becomes a migration — for existing customers and for every place the number is written
A public range, or a starting-from priceThe price moves with seats, volume or usage, but the floor is stableSome visitors disqualify themselves at the top of the range, and some qualify themselves in wrongly at the bottom
Contact sales, no number at allScope, integration and legal terms genuinely change the price for each dealYou lose everyone unwilling to book a call, and you take on a second buying path that has to be built and staffed

Which one you actually are

The test is not your ambition, it is whether a stranger could complete a purchase today. Run down these five and be honest about the answers.

  • Can someone finish a purchase without you? If yes, publish a number. A self-serve product with a hidden price is asking people to do work before they are allowed to give you money.
  • Does the price vary by more than roughly two times between similar customers? If it does, a single number will be wrong for most of them — publish a range or a starting-from price rather than nothing at all.
  • Is the buyer's real question "how much" or "is this for me"? Usually it is the second, and the price is how they answer it. A number is a positioning statement before it is a transaction.
  • Are you hiding it because the price varies, or because you are not sure it is right? The second is a pricing problem wearing a web-design costume, and no page layout fixes it. Settle how to price the product first; the page gets easy afterwards.
  • Do you sell into markets with very different ability to pay? A real reason to be careful with one global number, but the answer is usually a second price band rather than no price — see charging different prices in different countries.

Most early products are self-serve and quietly pretending otherwise, because hiding the price feels like preserving optionality. It rarely is. The mixed model is normal and usually right: publish the plans anyone can buy, and put the one genuinely negotiated tier behind a form with enough detail that a visitor can tell whether it is aimed at them.

Both answers create work, and that is the part to plan for

Whichever way you go you are choosing a maintenance burden, and it is worth knowing which one before you commit. Hiding a price forks your buying flow permanently. When we added a per-deal tier alongside our published plans at AgentCeres — the AI Growth Officer, at agentceres.com — the copy was the easy half. The site now had two buying paths that must never cross, because a negotiated tier reaching the self-serve checkout would charge somebody a price nobody agreed to. We made that combination impossible to write rather than checking for it at run time: the type our checkout accepts contains only the plans that carry a published price, so the negotiated tier cannot be handed to it at all. A run-time check is something a later change can quietly forget. A type is not.

Publishing a price creates the opposite burden: the number stops being a fact and becomes copy, in more places than you will remember. When we changed our prices, our own homepage kept showing the old ones in production for longer than we would like to admit. The stale copies were bare numerals inside a layout file — no currency symbol, nothing else a price-shaped search could latch onto — and the check we already ran scanned a different part of the codebase. Every displayed price is now threaded from a single source, and a test fails the build if anyone types one into copy again. The lesson is cheap to reuse: a published price is not one number, it is every place a person retyped it, multiplied by every language you publish in.

Practical sequencing: publish what you can, make the price the second thing a visitor sees rather than the last, and write down where the number lives so that future-you can change it in one place. If you run search on your own site, read the query log for the word "pricing" — that is somebody telling you they looked and did not find it, and a self-hosted engine like Meilisearch keeps those queries yours. Then treat the page as part of the funnel rather than a legal notice, and measure it like one: see turning visitors into signups.

FAQ

Won't competitors undercut me if I publish my price?
They can already estimate it from your positioning, your reviews and your job ads, and undercutting is a strategy they can choose on a rough number as easily as an exact one. The people a hidden price reliably stops are buyers, not competitors. If your only defence against a cheaper rival is that nobody knows what you charge, the price is not the thing that needs hiding.
What if my price is about to change?
Publish the current one and change it when it changes. A page that says nothing while you make up your mind costs you the visitors you have today, and the fear of announcing a change is mostly the fear of the migration, which happens either way. When you do move, honour the old price for existing customers for a stated period and say so on the page — that one sentence does more for trust than the absence of a number ever did.
Does an enterprise tier need a number?
It needs a shape, not necessarily a number: what is different about it, roughly who it is for, and what the price scales with. "Contact us" with no context reads as "we will look at your logo and decide", which is the exact fear that stops people contacting you. If you have a realistic floor, print it as a starting-from figure — it does more filtering work than a whole page of feature bullets.
Does a pricing page matter for AI search?
More than it used to. Assistants answer "how much does X cost" from whatever is crawlable, so a page with no number does not stop the question being answered — it moves the source to a third party. A plain, crawlable price with the currency, the unit and the billing period next to it is one of the easier things on your site to get quoted back correctly.
Related questions
How do I price my SaaS?How do I price an AI product when my costs are variable?Should I charge different prices in different countries?How do I turn website visitors into signups?

Want this done for you?

AgentCeres is a managed AI marketing team — specialists draft the work, you approve what ships. 14-day free trial, from $39/month.

Start free trialMore answers