SingRank

Facial Treatment Singapore Price: 2 of 10 Told a Machine

Contents13

A buyer types "facial treatment singapore price" and lands on your page. They find the price, read it, book. Now their assistant runs the same errand on their behalf. On 4 of the 10 Singapore beauty businesses we sampled on 27 September 2026, it never got as far as the page.

Showing a price is not the same as publishing one. We measured 10 Singapore facial and beauty businesses that appeared for price searches through our own metasearch. All 6 of the sites we could read showed their own prices as plain text, some down to the dollar. Only 2 of the 10 carried that price in structured data, the form a machine reads without guessing. And 2 of the 10 already publish an instruction file telling AI shopping agents how to browse their catalogue and start a checkout, because their platform does it by default and nobody asked them.

The interesting part is not that these businesses hide their prices. They do not. It is that the price sits where only a human reader can reach it.

The short version, if you own one of these businesses:

  • Your price is probably already on the page. That part of the job is done.
  • It is probably not in a form software can quote, and on 4 of our 10 sites software could not reach the page at all.
  • Your shop platform may already have made a decision about AI shopping agents on your behalf, and you can read it in your own robots.txt in thirty seconds.

What we found, in counts

Every figure comes from tools we ran on 27 September 2026 Singapore time: our self-hosted SearXNG metasearch, our live site auditor, and hand checks of each page that answered us. Counts always carry their base.

# What we measured The number
1 Sites whose page our crawler could read at all 6 of 10
2 Readable pages showing the business's own price as text 6 of 6
3 Sites carrying a price in structured data (an Offer) 2 of 10
4 Sites publishing agent-commerce instructions (agents.md plus a UCP endpoint) 2 of 10
5 Sites declaring any business entity in structured data 4 of 10
6 Sites with no structured data at all 5 of 10
7 Readable pages naming a Singapore town or estate in the opening paragraph 0 of 6
8 Readable pages with at least one question heading 4 of 6
9 Readable pages with a clear enquiry or booking route 6 of 6
10 Sites scoring under 50 on PageSpeed mobile 6 of 9 measured

Row 2 next to row 3 is the whole study.

Which searches, and which sites

We ran four searches through our metasearch: "best hair salon singapore", "hair salon singapore price list", "acne facial singapore" and "facial treatment singapore price". Google Autocomplete returns all four as real phrasings, and Google says its autocomplete predictions "reflect real searches that have been done on Google".

The fourth carried the sample. It returned 16 results, 14 of them on a Singapore beauty business's own domain. From those we took the 10 that were a salon, spa or aesthetic business here, skipping directories, marketplaces, media listicles and any business we have worked for.

One detail from that result page deserves an owner's attention on its own. 4 of the 16 slots were held not by a price list but by an essay about what facials cost across Singapore, written by a beauty business about its own market. One of those 4 carried 2021 in its title. If a five-year-old market essay can hold a slot on a price search, the slot is not being defended.

Do these sites show a price at all?

Yes, every readable one. All 6 pages we could open published the business's own prices as text, not a market range and not "call us for pricing". We read lines as specific as "HydraPeel $150 / FIRST TRIAL $68", "Regular price $128, first trial $78" and "the 12-month plan is $399 per month".

We expected worse. Our study of 211 Singapore service websites found 99 showing a price, so under half. Beauty runs ahead of the trades, and in our view that is because nobody books a facial without a number. So the usual advice, put your prices up, has already been taken here. The gap is one step further along.

Then why can't a machine repeat the price?

Because a price written into a sentence is prose, and a price written into structured data is a field. Only 2 of the 10 sites carried an Offer, which schema.org defines as "an offer to transfer some rights to an item or to provide a service", with price meaning "the offer price of a product". Both were running a shop platform that emits it automatically.

The other 8 leave a machine to infer. It has to decide whether "$150 / FIRST TRIAL $68" is one price or two, whether the $68 covers a first visit or a monthly plan, whether GST sits inside the number, and whether the figure still holds. Sometimes it will get that right. It will not tell you when it gets it wrong.

Google's own local business documentation offers the cheaper half of the fix: a priceRange, "commonly specified by either a numerical range (for example, "$10-15") or a normalized number of currency signs". That is one line, and it states a range rather than a promise about one treatment. Our schema markup guide covers the types. Here the point is narrow: you already decided to be open about money, and the markup only says it twice, once for people and once for machines.

Four of the ten never let us read the page

On 4 of the 10 sites our crawler asked for the homepage and got HTTP 403 with a small HTML page that redirects a browser to a JavaScript bot check. The same 4 would not serve robots.txt either. To anything that does not run JavaScript, those sites are a closed door rather than a slow one.

The wall is selective, which is the part owners miss. On one of those 4 sites Google's PageSpeed tester scored the mobile page 73 out of 100 on the same morning our crawler was refused. Google got in where we did not. A bot check decides per visitor, and you do not control which side of the line an AI crawler lands on.

An open robots.txt was never the same as a readable site either. Our Singapore AI search readiness study found 0 of 69 local sites blocking AI crawlers in robots.txt while the access problems sat elsewhere. Today's 4 of 10 is that failure at the front door rather than in the rules file, and no amount of writing fixes it. It is a hosting or security setting, usually switched on by whoever built the site, and usually switchable.

Two of the ten already sell to agents, by default

This was the surprise of the morning. On 2 of the 10 sites, both running Shopify, robots.txt opened with lines addressed to software rather than to search engines, pointing at an agents.md file and a commerce endpoint. We fetched both files. They were identical across the two businesses apart from an internal store number.

The agents.md file tells an AI assistant how to browse the catalogue, and the discovery endpoint returns a machine profile listing cart, checkout, fulfilment and discount capabilities. The robots.txt sets a limit in the same breath: "Checkouts are for humans. Do NOT complete checkout, payment, or order placement automatically" without "an explicit, contemporaneous human approval step."

The protocol behind it is the Universal Commerce Protocol, which calls itself "the common language for platforms, agents, and businesses" and is co-developed by Google, Shopify, Amazon, Walmart, Microsoft, Meta and Stripe among others. It is built, in its own words, so that "businesses retain control and remain the Merchant of Record".

Neither of those two owners decided this. Their platform did, in an update. That cuts more than one way:

  • If you sell prepaid trials or products online, your platform may already be doing the most modern thing on your site, for free, while your marketing budget goes elsewhere.
  • If you would rather a buyer spoke to a therapist before paying, the same default now works against your model, and it is a platform setting rather than a marketing one.
  • If your site is behind a bot wall, none of this is available to you at any price.

We are not going to tell you that agent-driven bookings are filling chairs in Singapore today. We have no data saying so. The plumbing arrived before the demand, and it arrived switched on.

The town is in the title, not in the paragraph

Not one of the 6 readable pages named a Singapore town or estate in its opening paragraph. They reach for the country at best: "professional facial treatments in Singapore", "Looking for the best facial treatments in Singapore?", "Ever wondered why the prices and costs of facials can range from $28 to $700 in Singapore?"

The towns are all over the same sites. Reading titles and address blocks across the sample we saw outlets named in Orchard, Bugis, Tampines, Bedok, Ang Mo Kio, Jurong East, Serangoon, Kovan, Somerset, Tanjong Pagar, Upper Changi, East Coast and VivoCity. The estate sits in the title tag, the footer, sometimes the domain. It is missing from the one paragraph a machine is most likely to lift.

This is the mirror of the miss we reported earlier in September, when town pages described the town and forgot the service. Here the service is named and the town is dropped. The fix is a clause: name the treatment, the estate and the starting price in the first two sentences. Our beauty salon SEO guide covers the rest of the local picture.

4 of the 6 readable pages did use at least one question heading, ahead of the 57 of 109 local pages we measured in September. Beauty is writing closer to the way people ask.

What the speed numbers do and do not say

We ran Google's PageSpeed on all 10 and got a result on 9. Six of the 9 scored under 50 on mobile, and 4 showed a lab Largest Contentful Paint over 20 seconds, up to 35.9 seconds. That number needs its caveat: on the 5 sites where real-user field data came back, field LCP ran between 1.1 and 2.2 seconds. Lab and field disagreed sharply and consistently, so anyone quoting 35.9 seconds at you as a crisis is quoting the wrong column.

What we would do this week

In this order, for a Singapore facial or beauty business:

  1. Open your own site with JavaScript off, or have your developer fetch it with plain curl. If you get a bot check, that is job one, and it is not a marketing job.
  2. Rewrite the first two sentences of your main treatment page to name the treatment, the estate and the starting price. Ten minutes.
  3. Add a priceRange to your business markup, and an Offer on any treatment you sell at a fixed price online. If your prices move often, add the range only.
  4. Read your own robots.txt. If it mentions agents, your platform has made a decision for you. Decide whether you agree with it.
  5. Leave the PageSpeed score alone until you have looked at the field data.

What this costs you

Structured prices need maintenance. A price in markup that no longer matches your menu is worse than no markup, because you have told a machine something false in the format it trusts most, and it may repeat that figure to a buyer who then argues with your receptionist. If nobody will update it when prices change in January, add the range and stop there.

Removing a bot wall costs something too. Those walls usually exist because someone was scraping the site or hammering the booking form, so letting AI crawlers in lets the scrapers back in. The middle path is allowing named crawlers rather than dropping the wall, and that is a conversation with your host, not a plugin.

And the honest limit: none of this makes an assistant recommend you. It makes you readable. Every item above is something a competent web person can do in an afternoon without an agency, and in our view most beauty businesses should do exactly that before they buy anything.

Method and limits, read these before quoting

  • Metasearch is not Google. Results came from SingRank's self-hosted SearXNG on 27 September 2026 Singapore time. Most engines errored that morning, so the ordering blends those that answered and is not Google's ranking or Maps pack.
  • Ten sites. One city, one industry, one morning. Treat every count as a description of that morning.
  • Six pages read by hand. The other 4 refused our crawler, so the page-text checks have a base of 6, and every row says so.
  • One retry. One of the 6 returned HTTP 503 to our first page fetch and was read on a second attempt the same morning.
  • PageSpeed failed once, so the speed counts have a base of 9.
  • We did not measure whether any assistant cites, recommends or transacts with these businesses, whether their prices are competitive, JavaScript-rendered content, or anything about treatment quality.
  • No business is named, and nothing here rates any company. A business we have worked for would have been replaced with the next result; none appeared.

Want these checks run on your page?

Send us the one page that should win "facial treatment singapore price" for your estate. We will fetch it the way a machine does and tell you whether it opens, whether your price is readable to software, and what your platform is already saying to agents on your behalf. That starts as a free visibility check through our contact page, and our SEO, AEO and GEO programme starts from S$500/month if you want the work done for you.

If your answer to all five steps above is already yes, you do not need us yet. Tell us that and we will say so.

These findings describe 10 websites sampled on 27 September 2026 through metasearch and a live crawl. This page names no business, rates no company, and is marketing guidance rather than medical or professional advice.

FAQ

Should a beauty salon publish its prices on its website?

In our sample it is already the norm: all 6 readable pages showed their own prices as text, against 99 of 211 Singapore service websites in our wider study. Buyers search the price directly, so a page without a number sends them to a competitor's page that has one.

What is Offer schema, and does a salon need it?

An Offer is structured data stating a price as a machine-readable field rather than a sentence. Only 2 of the 10 sites we measured carried one. It helps software quote you correctly, but it needs updating whenever prices change, so add a priceRange first if nobody will maintain it.

Why did four of the sites block your crawler?

They answered our non-browser request with HTTP 403 and a JavaScript bot check, which is a hosting or security setting rather than a deliberate search choice. It is selective too: Google's PageSpeed tester reached one of the same sites that refused us, minutes apart on the same morning.

What is agents.md, and why is it on my Shopify site?

It is a file telling AI assistants how to read your catalogue and start a checkout, published by default on the Shopify stores we sampled. Both copies were identical apart from a store number, so it reflects a platform update rather than anything the owner set up themselves.

Will AI shopping agents actually book facials in Singapore?

We have no data saying they do today, and we will not guess. What we measured is that the plumbing exists on 2 of 10 sampled sites and arrived switched on. That is a reason to know your own settings, not yet a reason to spend money on it.

How do I check whether my own site is blocking AI crawlers?

Ask your developer to fetch your homepage with plain curl, without a browser. If it returns 403, or an HTML page that redirects to a bot check, a crawler that does not run JavaScript sees nothing. Then open your own /robots.txt in a browser and confirm it loads as plain text.

Does a price in schema have to match the page exactly?

It should, and that is the maintenance burden. Structured data that contradicts your visible menu tells software something false in the format it trusts most. If your prices move often, publish a range in your business markup instead of a per-treatment price and update it when the menu changes.

Can I cite these figures?

Yes. Please cite "SingRank, Singapore facial and beauty price study, 27 September 2026" with a link to this page. Quote each count with its base, such as 2 of 10, and keep the metasearch caveat. Challenges to any number are welcome through our contact page.