For service trades, yes. Publish the visit fee, the flat rates for the jobs you do every week, and a range with what moves it for the rest.
Prices screen out the caller who wanted it done for $80, give everyone else a reason to pick you over "call for a quote", and are the plain fact an AI assistant quotes when a homeowner asks what a repair costs. The two cases where a price loses the job are custom work with no typical number, and a market where you are deliberately the premium option and the page does not yet show why.
What to publish, by trade
- HVAC: the diagnostic visit ("$89, applied to the repair"), tune-ups, the five common repairs as "from" prices, and replacement ranges by system. See the HVAC page.
- Plumbing: the visit fee, drain clearing, water heater replacement, toilet and faucet installs as flat rates; sewer and repipe as ranges with what moves them. See the plumbing page.
- Roofing: a replacement range ("most asphalt roofs we do run $9,000 to $18,000") and a repair starting price, with the inspection as the way to an exact number.
- Electrical: the visit fee, panel upgrade and EV charger ranges, outlet and fixture flat rates.
- Remodeling: budget bands ("kitchens we do start around $35,000; most land between $45,000 and $80,000"). Hiding the band wastes the consultation on people who expected $12,000.
Why it works
The homeowner's fear of calling a contractor is specific: the surprise number. A page that answers it before she calls removes the reason not to call. It also changes who calls: fewer price-shoppers who were leaving anyway, more people who have already accepted the number. Competitors can learn your prices by calling you; publishing them changes the customer's decision, not the competitor's information.
How to write a price so it does not trap you
"From", "most", and "depending on" are your friends. "Water heater replacement from $1,450" and "most jobs land between $1,450 and $2,400" are both true and both useful. Put the two things that move the number next to it ("tank size, venting"). Date the price list in small type and refresh it twice a year; the weekly work does that on our sites.
When not to
Custom work with no typical job (a design-build addition) gets a budget band or nothing. A premium contractor in a crowded market should show the price only once the page shows the reason for it: the crew, the warranty, the reviews that mention the cleanup. Price without proof reads as expensive; price with proof reads as honest. The first phone screen guide covers what the proof line looks like.
Won't published prices start a price war?
Your competitors already know your prices; their customers tell them. Publishing changes what the homeowner knows, and the homeowner who calls after reading a number has accepted it.
Should the price be on the first screen?
For emergency trades, the visit fee, yes; it answers the fear in the moment. The full board goes on the second screen or the service page, with the call button still in reach.
Sources
- Category ticket figures used in our audits ($9,600 roof replacement, $9,800 HVAC system, $1,400 water-heater job, $2,500 panel upgrade, $24,000 kitchen) are the category assumptions printed in every audit, not survey averages; your prices replace them. Method: how we measure contractor websites.
- Demo price boards: Northwind Heating & Air and Crescent Plumbing, fictional companies with illustrative prices.
See this on your own site.
The free audit measures your site on a real phone: load time, the first screen, the call button, what Google's AI says about you next to the competitors. Written, back within one business day. No call.