Generative engine optimization · San Diego
Last quarter we audited 40 solo-owned pilates, yoga, and small-format wellness studio sites across San Diego — Encinitas, La Jolla, Pacific Beach, North Park, plus a few in Hillcrest. The brief: when a local resident asks ChatGPT, Claude, or Perplexity for a reformer class near them, which studios get named, and why.
The answer was not flattering. Out of 40 studios, only 6 were cited consistently across the three engines. The rest were invisible — not because the instruction was poor (most had four-star Yelp pages and packed schedules), but because the site itself was sending the wrong signals to AI crawlers. The same five mistakes kept appearing on almost every one.
This matters now because 37% of US consumers already start their search with an AI assistant before they touch Google, and ChatGPT alone is fielding around 900 million weekly users. The walk-in who used to find you through "pilates near me" on Maps is now asking Perplexity for "a calm reformer studio in North Park that takes beginners," and the engine is naming three competitors instead of you.
Mistake #1: Blocking AI crawlers in robots.txt by accident
The most painful mistake because the fix takes 90 seconds. Of the 40 sites we audited, 22 were blocking at least one major AI crawler — and almost none of the owners knew it. The cause is template defaults: WordPress security plugins (Wordfence, All In One SEO) and Squarespace's stock robots.txt disallow GPTBot, ClaudeBot, PerplexityBot, and CCBot, or block them through a wildcard rule meant for scrapers.
If GPTBot cannot fetch your site, your studio cannot appear in ChatGPT's answers. Same for Claude and Perplexity. You are voluntarily delisted.
How to check, today:
- Open yourstudio.com/robots.txt in a browser.
- Search for
GPTBot,ClaudeBot,PerplexityBot,CCBot,Google-Extended,anthropic-ai. - If any appears next to
Disallow: /, that engine cannot read your site. - Remove the block, or explicitly allow each user-agent with
Allow: /.
Mistake #2: No structured data on your studio page
AI models do not read your site like a human does. They parse it for machine-readable signals — and the cleanest signal is Schema.org structured data. When we ran the 40 sites through a validator, only 4 had any LocalBusiness markup, and zero had FAQPage or Service schema.
Without structured data, the engine has to guess what you are. It sees the word "pilates" sprinkled around, hours that may or may not be current, an address in the footer. It often gives up and cites a competitor whose markup is cleaner.
The minimum schema set for a San Diego studio:
- LocalBusiness (or the specific HealthClub / ExerciseGym) with your exact NAP — name, address, phone — plus geo coordinates and opening hours.
- Service blocks for each class type (reformer, mat, jumpboard, prenatal).
- FAQPage covering questions clients actually ask: "do you offer beginner classes," "is parking free in Pacific Beach," "do you accept ClassPass."
- Review aggregate if you can pull it cleanly from your booking platform.
This is a one-time job. Once it ships, we have seen a 35% lift in AI Overviews appearances within four weeks.
Mistake #3: Generic blog content nobody cites
Every studio site we audited had a blog. Most were variations on "5 benefits of pilates for posture" or "why mat work matters." These posts earn zero citations. AI engines do not need another generic explainer — they already have ten thousand. They want something only you can write.
Original-data content earns roughly 3x more citations than commodity posts. For a solo studio, original data does not mean a research budget. It means writing down what you already know:
- Client demographics. "62% of our Encinitas clients are postnatal mothers within 18 months of birth" is something only you can say.
- Neighborhood patterns. "La Jolla clients book reformer 3.4 weeks ahead. Pacific Beach clients book same-day."
- Attendance trends. "Tuesday 6:30am has been our most-booked slot every week for two years."
- Pricing data, recovery timelines for injuries you see often, what beginners struggle with in week one.
One post per quarter with a specific number in the headline beats 50 generic posts. Perplexity in particular rewards original numbers — sites publishing original-data content show a roughly 11x lift in Perplexity-driven conversion compared to commodity content.
Mistake #4: Inconsistent directory listings (the NAP problem)
NAP stands for Name, Address, Phone. AI engines cross-check your site against MindBody, Yelp, Google Business Profile, ClassPass, Yoga Alliance, Apple Maps, and smaller directories. When those listings disagree — and they almost always do — the engine reads the conflict as a quality signal and drops you from the answer set.
Typical conflicts we see in San Diego:
- MindBody has "Encinitas Pilates Co." Yelp has "Encinitas Pilates Company." Google has "Pilates Encinitas." To an AI model, three different businesses.
- Phone numbers vary by one digit (a typo from a 2022 carrier switch).
- Address is "742 Coast Hwy 101, Suite B" in one listing and "742 N Coast Highway 101 #B" in another.
- Website URL points to a Wix landing that redirects, while another listing points to the live site.
Pick the canonical version. Update every directory to match character-for-character, suite formatting included. Unglamorous work, and it moves the needle more than any blog post.
Mistake #5: Zero earned media or community mentions
Owned content (your site, your blog) is the floor. Earned media is the ceiling. We measured this carefully: pages with at least three earned mentions — local press, neighborhood blogs, Reddit threads, podcast guest spots — generated 4.7x more AI citations than studios that relied only on their own site.
Earned media tells the model "other people independently vouch for this business." That signal is much stronger than anything you say about yourself.
For a solo pilates owner in Pacific Beach or North Park, seeding earned media looks like this:
- Pitch one neighborhood blog (PB Monthly, North Park News, La Jolla Light) one specific story per quarter — a story with a number from Mistake #3, not a press release.
- Answer one Reddit question per week in r/sandiego or r/Encinitas with substance, not a plug. Reddit threads are heavily cited by Claude and Perplexity.
- Trade guest spots with two non-competing wellness owners — a meditation teacher, a beauty practitioner, a yoga instructor in a neighborhood you do not serve.
- Get on one local podcast a quarter. San Diego has at least twenty wellness and small-business pods actively booking.
The studios in our audit that ranked top-3 in ChatGPT all had something in common: at least one Reddit thread, one local press mention, and one podcast appearance from the last twelve months. None of them had bought ads to get there.
What to do this week
Run these four checks in order. About two hours total, each one unblocks the next.
- Monday: Check robots.txt. Unblock GPTBot, ClaudeBot, PerplexityBot. (Mistake #1)
- Tuesday: Audit your top five directory listings for NAP consistency. (Mistake #4)
- Wednesday: Add LocalBusiness and FAQPage schema to your homepage and main class page. (Mistake #2)
- Thursday or Friday: Draft one short post with one original number from your booking data. (Mistake #3)
Earned media (Mistake #5) is the longer game. Start it the week after, one pitch at a time.
Want to see which engines already cite your studio?
Our Quick Check runs your studio name and city against ChatGPT, Claude, and Perplexity and tells you in 30 seconds which ones name you, which name your competitors, and which mistake from this article is the likely cause.
Want the full audit done for you — robots, schema, NAP, content, earned media? See how the AI Visibility Audit works.