From the Outside is a series where we take a real business website, evaluate what can be inspected from outside, and say what we found.
How we looked. Two of our own free tools plus a manual read, in a single ordinary visit. The Tracking Health Check reports which analytics and advertising tags a page references; the AI Answer Visibility Check reads the homepage and robots.txt the way an AI system would. Then we read the booking path by hand. Everything below came from files any visitor’s browser already downloads: no access, no credentials, no contact with the business, and nothing a normal page view wouldn’t do.
About the subject. An independent medical spa in a Midwest metro: injectables, laser, body treatments. Not a client, and anonymized throughout.
A boundary we’re keeping. A medical spa’s advertising is subject to rules we’re aware of but unqualified to give more than a recommendation about, and we noticed claims on this site that should be reviewed by a legal team. We’re going to leave those alone. Whether a specific claim is substantiated is a question for somebody licensed to answer it, and a public blog post is the worst available venue. Everything below focuses strictly on the technical and measurement layer.
The site is built well, which makes the finding stranger
We should start here because the headline finding would otherwise give the wrong impression.
Somebody who knew what they were doing built this. The visibility check found eight types of structured data, including a properly marked-up medical business, address, geographic coordinates, a service catalog, and ratings. That’s the layer most small business sites skip entirely, and the restaurant we looked at in this series had none of it at all.
The page also has exactly one <h1>, roughly 800 words of real text sitting in the HTML rather than assembled by JavaScript, and a clear booking path. On the fundamentals of being understood by a machine, this site sits in the top slice of anything we look at.
Which makes the next finding stranger.
Nothing is recording anything
The tracking check found no analytics at all. No Google Analytics, no tag manager container, no advertising tag, nothing in the page and nothing in the scripts it loads.
This business has a “Book Now” button on every screen, a booking page, and a phone number. Every one of those actions goes uncounted.
Consider what that leaves unanswerable. Which treatments people come looking for. Whether the people who read the injectables page book more often than the people who read the laser page. Whether the money spent getting people to the site produces bookings or only visits. Whether last month beat the month before, and why.
For a med spa, this blind spot is expensive because the business model is acquisition plus repeat visits, and both halves are measurable when something measures them. A restaurant can partly run on whether the room is full. A business whose customers arrive one at a time through a booking page can’t look at a room the same way.
We want to be careful about the claim: from outside, we can say that nothing records visits on the homepage. A booking platform may well report its own numbers somewhere, and that would be worth something. But it would only ever show the bookings that completed, never how many people wanted to book and stopped, which is the number that tells you what to fix.
The description a machine sees is a placeholder
A subtle one, and our favorite kind because looking at your own site can’t find it.
The meta description, the sentence that often appears under your listing in search results, is set correctly here. It reads well and describes the business. But JavaScript writes it in after the page loads.
The description sitting in the HTML that actually gets served is a stub barely a dozen characters long. A placeholder, not a sentence.
For Google this probably comes out fine because Googlebot runs JavaScript before indexing. For the AI crawlers it comes out badly, and this is one of the few places in technical SEO where we can point at a hard number instead of an opinion. Vercel measured crawler behavior across its network and reported that none of the major AI crawlers render JavaScript at all, naming OpenAI’s GPTBot, Anthropic’s ClaudeBot, Meta, ByteDance, and Perplexity. They fetch JavaScript files, at 11.5% of requests for OpenAI’s crawler and 23.84% for Anthropic’s, and then never execute them.
So two versions of this page’s summary are in circulation. Search engines that render get the good one. The systems increasingly answering “best med spa near me” get twelve characters of placeholder.
The fix is to render the real description into the HTML on the server. It’s a small change, and it stays invisible until somebody checks.
Also minor and free: robots.txt doesn’t declare a sitemap. The site almost certainly has one, and the Sitemap directive is one line pointing at it.
Install analytics this week, before anything else
This is the one case in the series where the priority isn’t a close call.
In the home services site we argued for fixing measurement first because the existing numbers were untrustworthy. Here there are no numbers, and the gap is more urgent for a simple reason: everything else about this site is already good. The structured data is done. The content is readable. The booking path is clear. Somebody invested real effort, and there’s no way to learn whether any of it worked, or which part of it carries the business.
That’s the worst position to be in because it’s invisible. A site with obvious problems gets attention. A site that’s quietly good and completely unmeasured just continues, and every decision about it stays a matter of opinion.
In order:
- Install analytics properly, owned by the business rather than by an agency or a developer’s personal account. An afternoon.
- Define what counts as a conversion before installing anything else: a booking started, a booking completed, a phone tap. Name them, then track them. Done in the other order, you end up with traffic charts and no answers.
- Verify each one by doing it yourself and watching it arrive. This step gets skipped, and it’s the only proof the number means what you think.
- Server-render the meta description, and declare the sitemap.
- Then, with a month or two of real data, decide where effort goes because at that point it’s a decision rather than a guess.
What we couldn’t see
Whether the phone gets answered. What they spend on advertising, if anything. Whether the booking software reports well. How good the treatments are, a question about which our opinion is worth precisely nothing.
We also put no dollar figure on any of this, and you should be suspicious of anyone who does from the outside. If somebody tells you what a missing analytics install costs your business without having seen your books, they’ve multiplied some assumptions together and rounded up. We built a Missed-Lead Calculator that does that math honestly, and it says on the page that it’s an estimate built on your own figures rather than a measurement.
The Tracking Health Check will tell you in about a minute what’s recording visitors on your own site. It’s free and never asks for your email. If you’d rather have the install done properly the first time, we also do analytics and lead tracking.
Sources: Vercel’s analysis of AI crawler behavior · Google on JavaScript and Search · Google’s robots.txt documentation