Shipped and running
A Technically Clean Build Is Not the Same as Being Found
We built this one properly: correct canonicals, structured data derived from the visible page, complete image alt coverage, a live event feed. Then we measured it and found the real constraint is off the site: the proof layer of reviews, listings, and third-party citations that search and AI assistants actually trust.
- Client
- A Southern California sober-events organization
- Industry
- Alcohol-free events and social wellness
- Location
- Antelope Valley, California
The short version
- A non-clinical, deliberately upbeat brand in a category dominated by treatment centers and clinical language.
- The build is genuinely clean, and we can show the checks rather than assert it.
- Search is not yet the channel doing the work: across six months, its eight tracked queries produced almost no clicks, while organic social drives the real audience.
- The constraint is the proof layer, which lives off the site: a Google Business Profile, reviews, and third-party citations. Markup was never going to fix it.
What was actually wrong
The organization runs alcohol-free social events. Its whole positioning is that it is not a treatment service and not a support group, which is a real gap in its market but a hard one to phrase in a way search engines already understand.
They needed a site that carried a warm, non-clinical brand without looking unserious, and that could keep an event calendar current without anyone editing code.
The harder problem showed up after launch: a good site that nobody arrives at.
What we built
The site
Next.js, mobile-first, built around the brand's four pillars rather than around a template. Where the client's approved mockup and their own written vision disagreed, we built from the vision document and showed them what shipping the mockup as-is would have cost: roughly a quarter of their stated positioning, and one audience segment entirely.
A calendar that maintains itself
Events are pulled live from the ticketing platform they already use, so the site cannot show a stale calendar because nobody remembered to update it. Event structured data emits automatically from the same feed.
Publishing without deploys
Blog posts and newsletter subscribers live in the database, so the client publishes without a code release and without us.
The technical baseline, verified not assumed
Correct robots directives, sitemap and canonicals; an llms.txt carrying an explicit last-verified date; named AI-crawler permissions; FAQ structured data derived from the same array that renders the visible questions, so the two cannot drift; complete image alt coverage.
What the numbers say
Every figure below carries the source it came from and the date it was pulled. Where we do not have a number, the row says so instead of estimating one.
| Measure | Result | Source |
|---|---|---|
| Average search position across tracked queries | 23.9 over six months | Google Search Console, 16 June to 18 August 2026 |
| Clicks from tracked queries | Zero. All eight ranked queries returned 0 clicks, at positions from 3.8 to 84.5. | Google Search Console, 16 June to 18 August 2026 |
| Impressions, most recent 28 days against the prior 28 | 56 to 75, an increase of about a third | Google Search Console, comparison run 2026-08-20 |
| Clicks over the same two windows | 5 to 3, a decrease. We are quoting this next to the impressions figure on purpose. | Google Search Console, comparison run 2026-08-20 |
| Where the audience actually comes from | Organic social drove 11 of 40 sessions in July, and both newsletter signups | GA4, July 2026 |
| Off-site proof assets in place | None. No Google Business Profile, no third-party citations. | Audit, 2026-08-02 |
What we did not do, on purpose
The decisions not to build something are usually the ones worth reading.
- We did not add more structured data. It already had the markup that matters, and the missing piece was never markup.
- We did not recommend paid traffic. Buying clicks into a page with no reviews and no third-party proof spends money to prove the same point more expensively.
- We did not report a ranking win. An earlier read of this account did claim one, from manual searches rather than measured data, and it was wrong. A manual search tells you a ranking exists. It does not tell you anyone searches that phrase or clicks the result.
- We did not build the membership tier that appeared in early planning. It was cut in the redesign and it is not sold, so it is not on the site.
What we took from it
- A clean build is the entry ticket, not the win. Past a certain point the remaining gains are entirely off-site.
- Never validate a client's position from queries you typed by hand. Pull the data for the month, or do not make the claim.
- Know which channel is actually working before optimizing the one that is not. Here the audience arrives through social, and the honest advice was to keep feeding the channel that already converts while the search proof layer gets built.
Timeline
Initial build and launch 2026. Redesign July 2026. AI-search and correctness pass August 2026.
How it was priced
Website build, then an ongoing monthly care plan. We do not publish what an individual client pays, but every rate we charge is on the pricing page.
Questions about this engagement
What is the lesson in these numbers?+
That the constraint was never the build. A technically excellent site can still be waiting on the off-site proof layer, and knowing which one you are missing saves you from paying for more of the thing that was never the problem. That diagnosis is exactly what the free audit is for.
Impressions rose about a third. Why is that not the headline?+
Because clicks fell over the same period, from 5 to 3, and click-through rate roughly halved. Quoting the impressions increase on its own would be true and misleading, and it would not survive the first follow-up question. If a number needs its context removed to look good, it is not a result.
So what would actually move this site?+
A Google Business Profile, real reviews, and citations from sites that already have authority. For local and AI-assistant visibility, that off-site proof layer does most of the work, and no amount of on-page optimization substitutes for it.
Was the build a waste, then?+
No. The site does its job for the people who reach it, the calendar stays current on its own, and the client publishes without us. It also means that when the proof layer is built, there is nothing on the site holding it back. The sequence just runs the other way from what most people expect.
Why is the client not named?+
We only name a client with written approval on file. That matters more than usual here, because this page publishes unflattering numbers. The organization gets to stay anonymous while the lesson stays public.
What did this engagement cost?+
We do not publish what individual clients pay. We do publish every rate we charge, in full, on our pricing page. This was a website build followed by a monthly care plan.
Want to know what is actually wrong with yours?
That is what the free audit is for. A written, fixed-scope diagnostic with a quick turnaround, ranked by impact against effort, yours to keep. You can also read the other case studies or see how we work with Nashville organizations.
Request Your Free Audit