Skip to content

Audit record 5 min read Updated September 26, 2026

A booking flow with no address to send people to

In short

A music lesson studio's site had ten Book a Free Lesson buttons on the home page, and every one of them opened the same pop-up widget. There was no booking page, so no URL existed that an ad, a text message or an email could point to. And inside the pop-up, the visitor's name and contact details were asked last, after instrument, city, lesson length, address and preferred times.

Key facts

  • All ten Book a Free Lesson buttons on the home page called the same script function that opened a modal; no booking page or booking URL existed anywhere on the site.
  • Step one of the widget asked for instrument, city, lesson length, an optional address, preferred days and preferred times; step two showed available times; only step three asked for a name, an email and a phone number.
  • Anyone who closed the widget before step three left nothing behind, except in the one path where no time slot was available, which asked for contact details earlier to capture a lead.
  • Without a booking URL, a Google Ads campaign, a text reminder or an email to past enquiries had nowhere to send anyone except the home page, where the pop-up had to be found and opened again.
  • The fix kept the owner's widget logic and design and added a real booking page with its own address that asked for contact details first, then the lesson details.

The finding

The studio's site was well designed and the owner liked it, with good reason. Its booking, though, lived entirely in a pop-up. Every call to action opened the same modal, and the modal had no address of its own: it could not be linked to, bookmarked or sent. Inside it, the order of questions was reversed from what a lead-capture flow needs. The visitor described the lesson in detail, saw available times, and only then was asked who they were. A parent interrupted at step two was gone without a trace.

What we looked at

We clicked every booking button on the home page and recorded where it went; all ten called the same function. We searched the sitemap and the site's links for a booking page and found none. We walked the widget's three steps and listed the fields on each, noting where the name, email and phone were requested. We tested the no-slot path, which asked for contact details earlier as a lead. We checked the redirect behaviour of the bare domain, which answered with a temporary redirect to the www version, a separate finding.

Why it mattered for leads

Marketing needs a destination. An ad for guitar lessons in a town should land on a page about guitar lessons in that town with a booking form on it, not on a home page where a pop-up has to be discovered. A text or an email to a past enquiry should link straight to booking. With no URL, every campaign was sending people to the front door and hoping. And the field order meant the studio was collecting the most detailed information from people it could never contact, while the one thing it needed to follow up, a name and a number, came last.

False positive checks we ran

We checked whether the widget could be opened by a URL parameter or a fragment, which would give campaigns something to link to; it could not. We checked whether a third-party scheduling page existed off-site that the widget mirrored; the widget was the owner's own build with no public counterpart. We checked whether the field order was a deliberate qualification step to filter casual enquiries; the studio's own goal was more students, so filtering before contact worked against it. We confirmed the widget itself functioned correctly on mobile and desktop.

The fix

The proposal's demo kept the owner's design and the widget's scheduling logic, and added a booking page with its own URL, linked from every button, that asked for name, email and phone first, then instrument, city and preferences. The pop-up could still open from the home page for people who preferred it, but campaigns, texts and emails now had a page to point at. A missed-call text-back was added for callers, and the temporary redirect on the bare domain was replaced with a permanent one.

How to check your own site for this

Click your booking button and look at the address bar. If it does not change, your booking has no URL, and your ads and emails have nowhere to send people. Then start a booking and note the step at which you are asked for your name and phone. If it is not the first step, anyone who stops early is lost. Add a booking page with its own address, ask for contact details first, and link every button to it.

Related questions

an anonymized finding from a real proposal audit; the business is described by type only; SearchPod sells the services that fix findings like this.

Want your site audited the same way?

Get a free, no-obligation proposal within one business day. We look at your site and your market and tell you plainly what we would do, and what we would not.

Get your free proposal

Keep reading

More in Audit library

All 40 in Audit library