For most services, the best answer is to publish a range and the factors that move it, rather than either a fixed price list or no figure at all. A range tells a visitor whether you are in their budget before either side spends time, and the factors show that the number comes from reasoning rather than guesswork. The case against publishing is real for some businesses, but it is usually a fear of competitors reading the page, not a calculation of what the silence costs.
What silence costs
A site with no price information forces every visitor to enquire in order to learn something they could have worked out themselves. Those who cannot afford you enquire anyway and consume time. Those who are unsure leave, assuming the answer is too high. The silence does not hide your pricing; it only moves the conversation to a place where you pay for it.
It also reads as a signal. Buyers comparing several suppliers often read a missing figure as either high prices or reluctance to be pinned down.
Why a fixed list is usually wrong too
For work that varies by scope, a single published price will be wrong for most of the people who read it. It anchors some buyers too low and frightens others, and it creates arguments when a real project does not fit the label. A fixed price works for a product that is the same every time. For anything customised, it promises a precision that does not exist.
This is where a range earns its place. It is honest about the variation while still being informative.
Publish the drivers, not only the number
A bare range invites the question of where in it you would fall. Answer it on the page: list what makes a project cost more or less, such as the number of languages, the amount of content that has to be written, integrations with other systems, or how many people need to approve the work.
That list educates the buyer, helps them describe their own project accurately, and makes the first conversation shorter. It also shows that your price is a consequence of their needs, not a figure chosen after sizing them up.
Let the enquiry form do the same job
If you decide not to publish figures, you can still ask for them. A budget range on the contact form lets visitors say where they are without a negotiation, and gives you something to respond to. The contact form on this site works this way: it asks the visitor to choose a range before anything else is discussed.
Used well, the field sorts enquiries by fit and saves both sides from a conversation that was never going to end in a project.
When not publishing is the right call
Some work genuinely cannot be bounded in advance, because the scope depends entirely on a discovery process or the buyer is a large organisation that procures through a formal brief. In those cases a range may mislead, and explaining how you price is a better substitute than a number.
Even then, say how pricing works: whether you quote per project or by time, what is included, and what the first paid step looks like. Describing the method is nearly as useful as the figure.
Keep it current and say what it excludes
A published range that is two years out of date does more harm than none. Review it on a regular schedule and state what it covers and what it does not: whether it includes copy, hosting, maintenance, and tax. A range is a promise about the order of magnitude, and it only works if the reader can trust it.