Guide

Should You Put Your Prices on Your Website?

Most local businesses leave their prices off. Here is what that costs you, the one Canadian law you need to know if you do publish a price, and a new reason that only started to matter recently.

Usually, yes. There are good reasons not to in some trades, and we will go through them. But showing a price should be your starting point, and leaving it off should be the thing you need a reason for.

Most local businesses do it the other way round. The usual thinking goes: every job is different, a price on its own makes people compare the wrong things, and it is better to explain the value on a phone call. All three of those are fair points. The trouble is that they assume the customer will ring you. Most of them will not.

What people think when there is no price

They do not think you are being flexible. They think it is going to be expensive, and that they will have to talk to someone to find out.

The clearest numbers on this come from research into business buyers rather than homeowners, and it is only fair to say so upfront. In Mixology’s B2B Buyer Report, 74% of buyers said they want clear pricing upfront. Another 69% said that not being able to find it was one of their biggest frustrations with a company. Around six in ten now prefer to get through that stage without talking to anyone at all.

The same thing happens with homeowners, and it is not really about the money. It is about who sets the pace. A price on the page lets someone work out on their own, at eleven at night, whether you are worth a call. If they have to ask you first, you have made yourself the slowest option on their list.

Picture someone comparing three painters on a Sunday evening. They are not phoning anybody. They are reading. The two who put a number up get thought about. The third gets closed.

The new reason, which did not exist a few years ago

This is the part most articles on this topic have not caught up with.

When someone asks ChatGPT or Google’s AI summary what a deep clean costs in their town, the answer gets built from what those systems can read on real businesses’ websites. If your price is not written on your page, it cannot be included. You are not further down the list. You are not in the answer at all.

There is a catch that makes this worse. As we covered in an earlier post, the AI crawlers do not run JavaScript. In plain terms: if your price only shows up after the page loads something extra, like a booking tool or a quote calculator, those systems cannot see it even though you can.

Checking takes about ten seconds. Open your page, right-click, choose “View page source”, and search that raw text for your own price. If it is not in there, it does not exist as far as ChatGPT is concerned.

Three trades, three different answers

We built three demo websites for made-up local businesses, and we deliberately gave them different answers to this question, because the right answer really does depend on the trade.

The barber shows everything. The barber demo lists the whole menu: a skin fade at $48 for 45 minutes, a beard sculpt at $32 for 25 minutes, a line up at $22. A haircut is the same job every time. Nobody needs to visit your house first. Making someone ring up to find out what a haircut costs just annoys them.

The cleaning company shows a starting price and explains it. The cleaning demo says a regular clean starts at $149 a visit, a deep clean at $329, a move-out clean at $389, and then explains what makes those numbers go up. Houses genuinely differ. Saying “this is where it starts, and here is what changes it” works far better than saying nothing.

The painting company shows no prices at all, and that is the right call. The painting demo has no figures on it. Painting the outside of a house depends on what the walls are made of, how high they are, how much scraping and filling is needed, how easy it is to get a ladder up, and how much rotten wood turns up once you start. A number made up before anyone has seen the place is either useless or a promise you cannot keep. What that site does instead is the important bit: the quote form asks what needs painting, roughly how big it is, and when they want it done. So the first phone call is about the price, not about working out what the job even is.

The dividing line is not whether you are a service business. It is whether you know what the job involves before you have seen it. If you do, put the price up. If you genuinely do not, put your process up instead.

If you publish a price in Canada, it has to be a price people can actually get

This part matters and gets missed, and there are real fines attached.

Under Canada’s Competition Act, advertising a price that nobody can actually pay counts as misleading. The rules were tightened on 20 June 2024 under Bill C-59. The only extra charges you are allowed to add on afterwards are ones the government makes you charge. Sales tax is fine. A compulsory booking fee, a call-out fee, a fuel surcharge or a “materials” fee is not. If someone cannot really get the service for the price you advertised, that is the problem.

This is not just a big-company issue. In June 2024 the Competition Bureau settled with Sirius XM for $3.3 million over how it advertised its prices. For companies, the maximum penalty can reach $10 million, or 3% of worldwide sales, whichever is greater.

Staying on the right side of it is straightforward:

  • Show the full price, apart from tax.
  • If there is a fee everyone has to pay, put it in the price you advertise, not at the end.
  • “From $149” is fine, as long as somebody can genuinely book a job for $149.
  • If there are conditions, write them next to the price, not in small print elsewhere.

Being upfront is honestly the easier path. It is the businesses advertising a low number and adding to it later that get into trouble.

What to put up when you cannot put up a price

Not naming a figure does not get you out of answering the question. Put something on the page.

  • A range, with an explanation. “Most interior repaints come to between $X and $Y, depending on how much prep is needed.”
  • A real example. “A three bedroom semi, two coats, walls and ceilings, came to $X last month.” Specific, honest, and it shows people how you think about pricing.
  • What makes the price go up or down. Access, prep work, how many coats, how much furniture needs moving. This is the one most businesses skip, and it is often the most convincing, because it shows you know your trade.
  • What is always included. Stops people worrying that the quote is just an opening offer.
  • Your smallest job. Saves everyone time and puts off the enquiries you do not want anyway.

One technical step worth taking

If you do publish a price, it is worth spending half an hour writing it into your page’s structured data as well. Structured data is a small block of code that states facts about your business in a format built for computers rather than people, using standard labels like Offer and priceRange.

Your price is then something a search engine can read as a fact, rather than something it has to work out from a sentence. Both matter now: one for the person reading, one for the systems deciding what to show them.

The short version

Put the price up if you know what the job involves before you see it. Put a starting price and an explanation if it varies. Put your process up if it really cannot be priced sight unseen. Put nothing up only if you are willing to lose the people who will not ring to ask, which these days is most of them.

We do this ourselves, which is why our prices are on a page with the numbers on it rather than behind a contact form. If you want an honest opinion on your own site, the free site check covers the technical side, and we are happy to talk through the rest.

Sources

Every figure above, so you can check it yourself:

This is general information, not legal advice. If you are unsure whether how you advertise a price meets the Competition Act, talk to a lawyer.

Want this for your own site?

Tell us about your business — we'll tell you honestly what would actually move the needle.

Start the conversation