Guides

The Price List Is a Photo of a Printed Card: The Website Fix

A photographed price card is unreadable on a phone, invisible to search, and out of date within months.

4 min read
GuidesSalonsEditing
750 words4 min read

How it happens

The salon had a price card printed. Someone photographed it and put the photo on the website under "Prices", because typing it all out seemed like a lot and the card was right there. Then prices went up. Updating the photo meant reprinting or re-photographing, so the photo stayed. A year later clients zoom into a blurry image on their phone, quote a price the salon no longer charges, and the desk has a conversation nobody enjoys.

The photo was never a price list. It was a picture of one.

What a price list should be on a website

Each price is a field on the service it belongs to. Balayage has a price field, a duration field and a "from" flag. The Prices page is not a document; it is a table generated from those fields, grouped by category, so a change made on the balayage service appears on the Prices page in the same moment, and on the balayage service page beside the Book button, because there is one copy.

The manager updates a price by opening the service, changing the number, saving. Thirty seconds. No printer, no photographer, no developer.

Why it matters beyond tidiness

Clients read it. A phone-readable price beside a Book button converts. A photo they have to pinch and squint at does not.

Search reads it. Text prices on a service page can appear in search results with structured data. An image says nothing to Google. "Balayage price [town]" is a real search, and the salons whose prices are text are the ones that answer it.

It is accessible. Screen readers cannot read a photo of a price card.

It stays true. Because updating is trivial, it gets updated. The photo did not because it was hard.

How it is built

Services are records with fields: name, category, description, duration, price, "from" flag, price note ("longer or thicker hair may be more"), stylists who offer it, gallery images. The Prices page template loops through the categories and services and renders the table. Service pages render the same price beside their Book button. Structured data (Service with an Offer) is generated from the fields.

Stylist-level pricing (a senior stylist charges more) is handled as a price per stylist tier, with the service page showing "from" the lowest tier and the booking platform charging the right one.

Where prices appear

  • On every service page, beside Book, with the duration. This is where the client decides.
  • On the Prices page, as a grouped table, linked from the main menu.
  • In search results, via structured data.
  • In the booking platform, which is the price actually charged; keep the two in sync (some platforms can be the source of truth via their API, in which case the website reads from the platform and there is truly one copy).

Keeping it current

  • One owner: the salon manager, who knows when prices change.
  • Same-day rule: the platform's price list and the website change together.
  • Quarterly check: open the Prices page against the platform. Fifteen minutes.
  • Delete the photo. Redirect any link to it to the Prices page.

Presenting variation honestly

Hair pricing varies by length, thickness and stylist. "From" prices are honest when the "from" is what a real client pays for the simplest case, with the price note saying what moves it. A consultation option for complex colour, with its price, lets the client commit to finding out. This satisfies consumer law's accuracy requirement and the client's need for a number.

Migrating from the photo

  1. Get the current prices from the booking platform, not from the card.
  2. Create the service records with price, duration and notes.
  3. Build the Prices page from the records.
  4. Show prices on each service page beside Book.
  5. Add structured data.
  6. Redirect the old Prices link; delete the photo.
  7. Record a thirty-second walkthrough of "how to change a price" for the manager.

An afternoon on a site with structured services; a small project on one without, and the moment to add the structure.

Where this sits

Prices as fields on service records is how every salon website we build handles the price list, and replacing a photographed card is a common early task in a diagnosis. It removes a desk conversation and adds a conversion at the same time, which is why it ranks high on the fix list.

All writingSee packages and prices