SEO and AI marketing specialist for fitness studiosDaniyal Sherafat
← Back to all articles

The first-class question: why your intro offer and price belong in plain text

"What does a first class cost?" decides bookings. If the price only lives in your booking widget, neither your website nor an AI assistant can answer it.

No.
002
Date
Length
3 min
Subject
Intro offer, Booking, Content

Most boutique studios sell a first visit: a proefles, an intro class, a starter pack. It is the offer that turns a curious person into someone standing in the studio. Yet in the first six Rotterdam studio sites I scanned while building my check, three had no intro price anywhere in the page text.

Where the price usually hides

Booking systems are good at selling passes, so studios let them. The schedule, the intro offer and the price live in an embedded widget or a link to the vendor’s checkout. Mindbody, for example, offers “branded web tools” that you paste into your site as widgets (sources 3 and 4). Many other vendors work the same way. The result looks fine to a visitor with a fast connection and a mouse.

It looks different to anything that reads your site rather than looks at it.

What a crawler sees

Content that appears inside an embedded frame belongs, technically, to the vendor’s page, not yours. Google can index some embedded content, and it added the indexifembedded instruction specifically for the case where a page is only meant to be seen inside another site (source 2). But that content is attributed to the frame’s own URL. A prospect asking an assistant about your studio gets an answer built from your pages.

Content built by JavaScript is a second layer. Google renders JavaScript, though with delays and limits it documents itself (source 1). Several AI crawlers fetch the raw HTML only. If your intro price is only written to the page by a script, or only fetched into a widget, the raw HTML does not contain it. My check flags this as “limited text in the fetched HTML; rendering not tested”, because a non-rendering fetch cannot prove what a rendering one would see. It can prove that the price was not in the HTML.

What this does to the question that matters

When I ask an assistant “what does a first class at [studio] in Rotterdam cost and how do I book it?”, the good outcome is a sentence with the price and a link to your booking page, citing your site. The common outcome is one of three worse things: “prices are not listed on the website”, a guess drawn from a directory that is out of date, or a competitor’s offer because their page had the answer.

None of those is a problem with the assistant. The page did not contain the sentence.

The fix takes one sentence

Write the offer as text, near the booking button and on the pricing page, in the language of the site:

Proefles €15. Daarna kun je kiezen voor een intro-maand van €59. Boek je proefles via de knop hieronder.

Include what it is, what it costs, what it includes, and any condition such as “for new members only”. Keep the widget; just stop letting it be the only place the fact exists. When the price changes, change both.

While you are there, do the same for the two other facts that hide in widgets: which days classes run, and which class types you actually offer.

Twenty-minute action

Open your pricing page, press Ctrl-U (or View Source), and search the code for your intro price. If it is not there, it is not on your website in any sense a machine understands. Add the sentence, and check again.

The free check looks for exactly this and shows you what the assistants currently say when asked the price question about your studio.

Daniyal Sherafat

Daniyal Sherafat worked as a landscape architect and then as a personal trainer before moving into AI automation. He runs ClickZero AI in Rotterdam, which helps boutique fitness studios get found on Google and in AI search. About · Run the free check on your studio · Email