The writing is good. The container is failing.
Tressa built a 19-page website that says true things about a genuinely distinguished teaching career, and the prose on it is better than most of what marketing agencies produce. The problem is not the content, and it is not the taste. It is the platform underneath.
The site runs on a pre-responsive Weebly theme from roughly 2012. Three structural facts follow from that, and between them they account for most of why search engines are not sending anyone.
One. The site has no working HTTPS. Requests to https://www.tressabouldendressage.com fail the TLS handshake outright — verified with three independent clients including Google Chrome, which shows an error page. The site answers only on insecure http://, with no redirect between them.
Two. Every one of the 19 pages carries the same <h1>: "Tressa Boulden Dressage" — the site name. Nineteen pages, nineteen identical headings, zero topical differentiation. Combined with 19 bare title tags, Google has almost no signal about what any individual page is for.
Three. There is almost nothing on the homepage for Google to read. Eight words of body content, delivered by 1.54 MB of code — 1.16 MB of which is JavaScript.
Underneath that, the raw material is unusually strong: a documented 22-year study relationship with Melissa Simms of the Reitinstitut Egon von Neindorff, 35+ years teaching in Sonoma County, fourth-generation local, and 20 named students who wrote long-form testimonials — several of whom have trained with her for 14 and 20+ years. None of it is structured in a way Google or an AI assistant can use.
The headline opportunity. Three moves drive most of the upside: (1) rebuild on a fast, secure, responsive foundation so the site can be crawled, understood and used on a phone at all; (2) give each service its own real page targeting how riders actually search, and put location and credentials into structured data; (3) claim and build the local entity — Google Business Profile, consistent NAP, reviews — because the local "near me" cluster is where the commercial search volume actually lives.
What this is not. Rebuilding the website will not by itself produce rankings. It removes the structural reasons the site currently cannot compete, and gives an ongoing SEO programme something solid to build on. Those are different claims and we are not going to blur them.
[ Data verified ] All technical findings measured directly against www.tressabouldendressage.com on August 20, 2026 using curl (LibreSSL 3.3.6 and OpenSSL 3.6.3), headless Google Chrome and live Google Chrome. Keyword data pulled from Search Atlas the same day. Items we could not confirm are tagged needs confirmation inline.
A verifiable lineage, almost invisible to search.
Tressa Boulden teaches classical dressage and horsemanship from Traditions Farm in Sebastopol, and travels to barns across Sonoma County. She is a fourth-generation local. Her stated services are local lessons, lunge lessons, quadrille, virtual lessons, video assessments, clinics, seminars, intensives, and a small equestrian boutique.
What she has that competitors cannot copy
- A direct classical lineage. Her site documents meeting Melissa Simms — head rider at the Reitinstitut Egon von Neindorff in Germany — in 1996, a relationship of 22 years, with Simms teaching at Tressa's farm several times a year for over two decades. In classical dressage this is a genuine credential, and it is the kind of thing an expert audience actively searches for.
- Longevity with students. One writes of training with her for 14 years; another, "after the first 20 years, I've lost count."
- Twenty named, long-form testimonials totalling 4,569 words. Most local service businesses have nothing remotely like this.
- Study at Piber, Austria — the Lipizzaner stud of the Spanish Riding School.
- A documented teaching lineage. Her "The Masters" page traces it explicitly: Alois Podhajsky (director of the Spanish Riding School in Vienna, Olympic medallist) → Egon von Neindorff (who trained under Podhajsky, founded his Karlsruhe school in 1949, and was awarded the Bundesverdienstkreuz) → Melissa Simms (head rider at the von Neindorff institute) → Tressa. That page is 342 words long, titled "The Masters", buried at the third level of the navigation, and has no page in the site linking to it.
[ Data verified ] Tressa's own words, quoted verbatim from /clinics.html. This is the clearest articulation of her method anywhere online, and it currently sits three clicks deep.
Where the positioning breaks down
The clearest statement of what this business is appears in exactly one place on the site — the homepage meta description: "Classical dressage clinics and training, based in Sonoma County." It is accurate, differentiated, and invisible to a visitor. Meanwhile the word "Sebastopol" appears on 2 of 19 pages, and "Santa Rosa" — the largest city in her county, twenty minutes away — appears zero times.
| Signal | Published value | Status |
|---|---|---|
| Business name | Tressa Boulden Dressage | Consistent |
| Facility | Traditions Farm | Appears on 2 of 19 pages |
| City / region | Sebastopol, CA · Sonoma County | City on 2 of 19 pages |
| Street address | — | Not published |
| Phone | — | None anywhere on the site |
| bouldendressage@gmail.com | Gmail, and obfuscated from crawlers | |
| Years teaching | "over 35 years" and "over 40 years" | Inconsistent needs confirmation |
| Own social profiles | — | Not linked from the site |
| Copyright line | "© 2014" | 12 years stale |
The years-of-experience figure differs between two of her own pages — /local-lessons.html says "over 35 years" teaching, /video-assessments.html says "over 40 years". Search engines and AI systems reward entity consistency; this should be one number, stated identically everywhere.
[ Data verified ] NAP transcribed verbatim from /contact.html; phone absence confirmed by pattern search across all 19 pages.
The secure version of the site does not load.
HTTPS — critical
https://www.tressabouldendressage.com fails the TLS handshake. We confirmed this independently three ways:
| Client | Result on port 443 |
|---|---|
| LibreSSL 3.3.6 (system curl) | sslv3 alert handshake failure |
| OpenSSL 3.6.3 (curl 8.21.0) | TLSv1.3 (IN), TLS alert, handshake failure (552) |
| Google Chrome | Renders an error page — the site does not load |
It fails when forced to TLS 1.2 and to TLS 1.3, with SNI for both www and the apex domain, and with no SNI. Meanwhile http:// returns 200 OK, and there is no redirect from http to https anywhere on the site. The sitemap, the robots.txt sitemap directive, the og:url and every internal link all use http://.
What this costs, today. Chrome marks the site "Not secure." Chrome's HTTPS-First mode, on by default for many users, tries the secure version first — those visitors hit an error page before they ever see the site. HTTPS has been a Google ranking signal since 2014. And every AI crawler we tested fails on the protocol it would try first (§10).
Hosting & delivery
| Item | Finding | Assessment |
|---|---|---|
| Platform | Weebly (Square) — X-Host: grn185.sf2p.intern.weebly.net | Pre-responsive theme |
| CDN / proxy | Cloudflare | Fine |
| Time to first byte | 56 ms | Genuinely fast |
| Compression | gzip only, no Brotli | Minor |
| Security headers | No HSTS, CSP, X-Frame-Options or X-Content-Type-Options | Absent |
The host is not the problem. The server responds in 56 milliseconds. The payload and the theme are what is slow.
Crawlability
| Item | Status |
|---|---|
| robots.txt | Present. Disallows /ajax/, /apps/ and /education-opportunities.html. No AI-crawler directives. |
| XML sitemap | Present, 19 URLs, all http://. All share an identical lastmod of 2026-02-24 — a platform bulk-stamp, not a real freshness signal. |
| 404 handling | Correct Unknown URLs return a true 404, not a soft 200. |
/education-opportunities.html | 404 — and it is a top-level navigation item on every page |
| Canonical tags | Absent on all 19 pages |
| URL architecture | Strength Flat, readable, keyword-relevant. Worth preserving in a rebuild. |
Form security
The three inquiry forms (contact, clinics, virtual lessons) post to a protocol-relative Weebly endpoint. Because the page they sit on is served over plain HTTP, a prospective client's name and email address are transmitted in cleartext. Every response also leaks an internal Weebly hostname via an X-Host header. Both disappear the moment the site is served over working TLS.
Analytics — critical
The only tracking on the site is classic Google Analytics ga.js using the _gaq syntax, which predates even Universal Analytics. There is no GA4, no Tag Manager, no pixel and no conversion tracking of any kind. Universal Analytics stopped processing data on 1 July 2023.
The practical effect is that there is no working analytics on this website. No traffic data, no source data, no record of how many people have filled in a form. This matters beyond reporting: without measurement, nobody — us included — can tell which pages or services are working. Establishing it is part of the foundation, not an add-on.
[ Data verified ] Property UA-7870337-1 is a low-numbered ID consistent with a Weebly platform-level tracker rather than one Tressa owns needs confirmation — worth asking whether she has ever had her own Analytics or Search Console property. Either way, nothing usable is being collected.
Weebly is quietly serving two versions of this site.
This one is worth reading carefully, because it changes what needs fixing. The site performs user-agent based dynamic serving — it inspects who is asking and returns a different document accordingly, correctly signalled with Vary: Accept-Encoding,User-Agent.
| Requested as | Bytes | Viewport tag | H1 | Canonical |
|---|---|---|---|---|
| Desktop browser | 25,830 | Absent | None | None |
| iPhone (Safari) | 16,421 | Present | One | None |
| Googlebot-smartphone | 16,421 | Present | One | None |
The good news, stated plainly: the site is mobile-responsive, and it is fine on a phone. The mobile template carries width=device-width, initial-scale=1.0, renders at exactly 390px with zero horizontal overflow, and has a working hamburger menu. Because Google indexes mobile-first, this is the version that gets ranked — so the mobile experience is not the emergency here.
Where it still costs her
- The H1 is the same on all 19 pages. Every page's only heading is
Tressa Boulden Dressage— the site name. Google gets one heading signal for the whole site, repeated nineteen times. - The desktop template is genuinely non-responsive —
.container { width: 960px; }with zero media queries inmain_style.css. That affects desktop visitors on small windows, not mobile rankings, but it is why the desktop page cannot adapt. - The hero photograph is 308 × 398 pixels stretched across a phone screen wider than it is. It renders visibly soft — the first impression on the device most people will use.
- Canonical tags are absent on both templates, and with two URLs serving two documents, canonicalisation matters more here than on an ordinary site.
[ Data verified ] All 19 pages fetched twice — once with a desktop user-agent, once with an iPhone user-agent — and again as Googlebot-smartphone. Rendering measured in a real 390px mobile viewport: layout width 390px, overflow 0.
Nineteen title tags, nineteen wasted signals.
Google understands very little about this site — not because Tressa hasn't said it, but because the machine-readable layer is empty.
| Signal | Result across 19 pages | |
|---|---|---|
Pages with a unique <h1> | 0 of 19 — all 19 read "Tressa Boulden Dressage" | Critical |
| Pages with a canonical tag | 0 of 19 | Critical |
| Pages with structured data | 0 of 19 | Critical |
| Pages with a meta description | 1 of 19 (homepage only) | High |
Homepage <title> | "Home" — 4 characters | Critical |
Longest <title> on the site | 35 characters | High |
| Images with descriptive alt text | 0 of 101 — 74 read alt="Picture", 27 have no alt attribute at all | High |
Titles are bare page labels — Home, Clinics, Contact, Seminars, The Horse, The Rider. Not one contains her name, her business name, her location, or a service term. The title tag remains the strongest single on-page relevance signal, and all nineteen are spent on nothing.
Content depth
Body word counts, with navigation and footer chrome subtracted:
| Page | Body words | Assessment |
|---|---|---|
| index (homepage) | 8 | Critical |
| contact | 25 | Critical |
| the-rider | 54 | Critical |
| photo-gallery | 60 | Critical |
| the-horse | 105 | Thin |
| the-traditional-equestrian-boutique | 110 | Thin |
| virtual-lessons | 176 | Thin |
| intensives | 186 | Thin |
| seminars | 215 | Thin |
| local-lessons | 229 | Thin |
| video-assessments | 238 | Thin |
| inspiration | 260 | Thin |
| the-masters | 335 | Adequate |
| our-community | 355 | Adequate |
| clinics | 367 | Adequate |
| horse-and-rider-objectives | 442 | Adequate |
| melissa-simms | 692 | Substantial |
| tressa-boulden | 926 | Substantial |
| students-of-tressas | 4,569 | Buried asset |
The homepage is the page Google is most likely to show for her own name, and its entire visible content is one line: "Tressa Boulden — Educator of Classical dressage & horsemanship." A first-time visitor gets nothing to read and nothing to click.
Geographic relevance — specific and fixable
| Term | Pages containing it (of 19) | |
|---|---|---|
| Sonoma County | 19 — footer boilerplate only | Discounted as chrome |
| Sebastopol | 2 — contact page and one testimonial | Critical gap |
| Traditions Farm | 2 | Critical gap |
| Santa Rosa | 0 | Never mentioned |
| Petaluma | 1 | Weak |
| "classical dressage" (exact phrase) | 5 | Under-used positioning |
Her own town appears twice on her own website. The largest city in her county is never named at all.
Broken paths and dead ends
- Four dead buttons. Three "Learn More" buttons on
/local-lessons.htmland one "View More" on/intensives.htmlall point tojavascript:;— they do nothing when clicked./intensives.htmlis the highest-ticket offer on the site and that dead button is its only call to action. - Exactly one in-body internal link exists on the entire website —
/virtual-lessons.htmllinks to/video-assessments.htmlwith the anchor text "here". Every other internal link is navigation or footer boilerplate. The 4,569-word testimonial page passes authority to nothing. - All six revenue services are buried two levels deep under a nav parent called "Horse and rider objectives" — a label with no search demand. "The Masters" and "Melissa Simms", the strongest credibility pages on the site, sit at level three under "Inspiration".
- "Education Opportunities" is a dead nav slot. It appears as a top-level menu label but is configured
nonclickable, so it emits no link at all — and the URL behind it,/education-opportunities.html, genuinely 404s and is disallowed in robots.txt. - A broken outbound link on
/our-community.html—artaurusveterinaryclinic.com, credited to a named veterinarian, no longer resolves in DNS at all. - The only outbound social link on the entire website points to a farrier's Instagram account. Tressa links to none of her own profiles.
- Three pages have body copy that stops mid-sentence — including
/horse-and-rider-objectives.html, the deepest methodology writing on the site, which ends "When our priority is to better ourselves, we earn t".
[ Data verified ] All 19 internal links and 24 lightbox targets return 200; no orphan pages; no near-duplicate content (pairwise similarity across all 19 pages never exceeded 0.10). The problem is thinness and isolation, not duplication.
Findings by priority
Critical — limiting visibility
- HTTPS fails entirely; no http→https redirect
- No viewport tag; 960px fixed layout; zero media queries
- The same
<h1>— the site name — on all 19 pages - Bare
<title>tags, including a homepage titled "Home" - No structured data anywhere
- Homepage has 8 words of content
- No canonical tags on any page
- No working analytics of any kind
High priority — suppressing rankings & conversions
- No phone number anywhere on the site
- Meta descriptions missing on 18 of 19 pages
- Prices truncated mid-sentence on both revenue pages
- "© 2014" in the footer of every page
- Four dead
javascript:;buttons - One in-body internal link on the whole site
- 1.16 MB of JavaScript, incl. a 534 KB store bundle
- 0 of 101 images with descriptive alt text
- Email obfuscated from crawlers
- Experience stated as both 35 and 40 years
[ Data verified ] All 19 pages fetched and parsed individually; word counts computed on normalised text with navigation and footer removed.
The volume is in "near me," not in city names.
All figures below are live Search Atlas data pulled 20 August 2026 for the United States. We have not projected traffic, rankings or revenue from them.
The local lane — where commercial intent lives
| Keyword | Volume / mo | CPC | Difficulty | Intent |
|---|---|---|---|---|
| horse riding lessons near me | 40,500 | $1.21 | 8 — Easy | Transactional |
| horseback riding lessons near me | 40,500 | $1.10 | Easy | Transactional |
| riding lessons near me | 40,500 | $1.21 | Easy | Transactional |
| dressage lessons near me | 880 | $2.25 | 11 — Medium | Commercial |
| dressage trainers near me | 320 | $2.04 | Medium | Commercial |
| dressage riding lessons near me | 90 | — | Medium | Commercial |
| dressage clinic near me | 50 | — | Medium | Commercial |
| dressage instructor near me | 40 | — | Medium | Commercial |
| horseback riding lessons santa rosa | 30 | — | 5 — Easy | Navigational |
| horseback riding lessons sonoma county | 10 | — | 21 — Medium | — |
| horseback riding lessons petaluma | 10 | — | 11 — Medium | Commercial |
| riding instructor sebastopol ca | 0 | — | — | — |
Read this honestly. Hyper-local city-name keywords have almost no measured volume — "riding instructor sebastopol ca" registers zero. That is normal for a rural county and it is not a reason for pessimism. It means the local opportunity runs through the "near me" cluster, which Google resolves using the searcher's location, the local pack, and a Google Business Profile — not through city-name keywords.
Implication: the local play is roughly 80% Google Business Profile, NAP consistency, reviews and location-relevant on-page signals, and only 20% keyword targeting.
The national niche lane — where her expertise is differentiated
| Keyword | Volume / mo | CPC | Difficulty | Intent |
|---|---|---|---|---|
| dressage lessons | 720 | — | 11 — Medium | Informational |
| classical dressage | 320 | — | 14 — Medium | Informational |
| dressage training | 320 | — | 15 — Medium | Informational |
| dressage trainers | 320 | — | Medium | Informational |
| dressage training pyramid | 260 | $3.58 | 28 — Medium | Informational |
| dressage training scale | 210 | $3.05 | 28 — Medium | Informational |
| dressage trainer | 210 | — | 43 — Hard | Informational |
| dressage riding lessons | 170 | — | Medium | Informational |
| dressage exercises | 70 | $2.00 | Medium | Informational |
| dressage clinics | 70 | — | 15 — Medium | Commercial |
"Classical dressage" at 320/mo and difficulty 14 is precisely her positioning — the phrase in her only meta description, and the tradition she can document a direct lineage to. "Dressage training scale" and "dressage training pyramid" together carry 470 searches a month at CPCs of $3.05–$3.58, and map directly onto what she already writes about on her Horse and Rider Objectives page.
These are national terms. They will not fill a local lesson calendar on their own — but they build topical authority, earn citations in AI answers, and feed the virtual-lesson and video-assessment side of the business, which is not geographically constrained.
The virtual lane — an honest caveat
| Keyword | Volume / mo | CPC | Difficulty |
|---|---|---|---|
| virtual dressage lessons | 10 | — | 20 — Medium |
| online dressage lessons | 10 | $4.91 | 20 — Medium |
Virtual and online dressage lesson terms have effectively no search volume. We are telling you this rather than dressing it up. Virtual lessons and video assessments are primarily a conversion offer for people who find Tressa some other way — through the classical-dressage content lane, a clinic, a referral or social. They are not a large search-traffic play and we would not build a strategy that pretends otherwise.
That said, two things make this lane worth finishing properly. First, the page-one results for "virtual dressage lessons" are won entirely by individual trainers with dedicated, exact-match URLs — spriesersporthorse.com/virtual-lessons/, mariacooke.com/online-training/, lrmequestrian.com/virtual-lessons and similar. No subscription platform ranks there. Second, Tressa already owns exactly that URL pattern — /virtual-lessons.html and /video-assessments.html exist and are indexed. The structural work is done; the pages simply need real titles, complete pricing and content. Low volume, but genuinely winnable and nearly free to claim.
Opportunity matrix — service × location × intent
| Priority | Target | Where it lives | Intent |
|---|---|---|---|
| 1 | "dressage lessons near me" / "riding lessons near me" | Google Business Profile + homepage + Sebastopol location page | Transactional |
| 1 | Brand: "Tressa Boulden", "Tressa Boulden Dressage" | Homepage + About, with Person & LocalBusiness schema | Navigational |
| 2 | Local lessons · lunge lessons · quadrille | A dedicated service page each, with location context | Commercial |
| 2 | "horseback riding lessons santa rosa" (difficulty 5) | Santa Rosa location page | Navigational |
| 2 | Dressage clinics — host-a-clinic enquiries | Clinics page, structured for barn owners | Commercial |
| 3 | "classical dressage" | Pillar page on the tradition and her lineage | Informational |
| 3 | "dressage training scale" / "pyramid" | In-depth resource article | Informational |
| 3 | "dressage exercises" | Supporting articles | Informational |
| 4 | Virtual lessons · video assessments | Service pages with clear, complete pricing | Commercial |
[ Data verified ] Search volume, CPC and difficulty pulled live from Search Atlas on August 20, 2026 (United States). No traffic or ranking outcomes have been estimated from them.
Four reviews is currently enough to own this market.
We ran the local searches a Sonoma County rider would actually type and read the results from a local IP. Two things stood out, and together they are the most encouraging finding in this document.
First: every one of these queries returns a Google local pack, and Tressa is in none of them. Searching Google Maps for her business name returns nothing at all.
| Query | Local pack, in order — rating / review count | ||
|---|---|---|---|
| horseback riding lessons Sebastopol her own town | Apple Creek Training 5.0 · 28 | Windhorse Ranch 4.1 · 14 | Strides Riding Academy 4.9 · 40 |
| dressage lessons Santa Rosa | Hunter Lane Equestrian 4.9 · 19 | Q Ranch 4.5 · 29 | Monarch Stables 5.0 · 10 |
| riding lessons Petaluma | Strides Riding Academy 4.9 · 40 | Golden Gate Equestrian 5.0 · 15 | North Bay Equestrian 4.7 · 12 |
| dressage trainer near me | Apple Creek Training 5.0 · 28 | Dreamtime / Sporthorse 4.6 · 9 | Adamo Eventing 5.0 · 1 |
| dressage trainer Santa Rosa CA | Sporthorse America 4.7 · 6 | Jesse Saldana 4.7 · 12 | Hunter Lane Equestrian 4.9 · 19 |
This is the headline. The fourteen review counts we observed across these packs were 1, 4, 6, 9, 10, 12, 12, 14, 15, 19, 28, 28, 29 and 40. In most local-service markets a business needs fifty to two hundred reviews to hold a pack position. Here the median is thirteen, one listing holds third place on a single review, and Google awards a full knowledge panel to a business with four.
Tressa has 20 named students who already wrote long-form testimonials about her, unprompted. She is one claimed Google Business Profile and one round of review requests away from being competitive in every pack above.
Second: the organic results are won by individual trainers, not directories. For "dressage trainer Sonoma County", nine of the ten organic results are trainer or association sites — Yelp is the only directory. That means these pages are winnable by a good website, which is not true in every local vertical.
| Local competitor | Platform | Structured data emitted |
|---|---|---|
| stridesridingacademy.com | Squarespace | LocalBusiness, Organization, Place, PostalAddress, GeoCoordinates, Event, Offer |
| kildarraequestrian.com | GoDaddy | LocalBusiness, PostalAddress, GeoCoordinates |
| knhdressage.com | Wix | LocalBusiness, PostalAddress, WebSite |
| alexgreerdressage.com | Squarespace | LocalBusiness, Organization |
| sporthorsetraining.com | Squarespace | LocalBusiness, Organization |
| sanbardressage.com | Wix | LocalBusiness, PostalAddress |
| hunterlaneequestrian.com | WordPress | Organization, Person, Article |
| markweststables.com | Wix | WebSite only |
| pamandrewsdressage.com | Squarespace | WebSite only |
| tressabouldendressage.com | Weebly | None |
Six of the nine emit LocalBusiness schema. Tressa emits none. Note also that knhdressage.com — the business Google gives a knowledge panel to — uses the title "KNH Dressage | horse training Sonoma county | Sonoma County, CA, USA". Tressa's homepage title is Home.
One thing she already has right. Her URL structure — /virtual-lessons.html, /video-assessments.html, /local-lessons.html, /clinics.html, /seminars.html, /intensives.html — is exactly the dedicated-service-page architecture that wins these searches. The pages exist and are indexed. They are simply unoptimised. That is a far better starting point than a one-page site.
[ Data verified ] Local packs and organic results read from live Google SERPs on August 20–21, 2026 from a Sonoma County IP; competitor structured data read directly from each site's HTML. Review counts are point-in-time and will drift.
Does it make a rider confident enough to write?
On desktop, partially. The homepage is restrained and tasteful — a serif wordmark, a single photograph, a black navigation bar. It signals seriousness rather than salesmanship, which suits classical dressage exactly. But it gives a visitor no information and no next step. There is no call to action of any kind on the homepage, and no phone number on any page of the site.
On a phone, no. The page renders at roughly 40% scale, the navigation reduces to a tiny "MORE…" link, and the contact form fields are too small to tap reliably.
Working — and worth keeping
- The restraint. The visual tone is calm and confident, and right for the discipline. A rebuild should not turn this into a loud marketing site.
- The writing. Her About and Clinics pages are warm, specific and jargon-free. This is the hardest part to buy, and she already has it.
- Inquiry forms on individual service pages rather than one buried contact page — a genuinely good instinct.
- Flat, readable URLs.
- Twenty long-form named testimonials.
Costing her enquiries
- No CTA anywhere on the homepage
- No phone number on any page
- Prices truncated:
"$100. per "and"$100 per"— both sentences simply stop - Three dead buttons on the local lessons page
- "© 2014" in every footer — reads as abandoned
- A navigation item that 404s
- Services hidden behind "MORE…" on mobile
- Testimonials buried in a dropdown
- Hero photograph is 308 × 398 px
- Gmail address rather than a domain address
The truncated prices are worth their own line. Both of her revenue-generating pages state a price and then stop mid-sentence — "Virtual lesson price: $100. per " and "Video assessment price: $100 per". A rider deciding whether to book cannot tell what they get for $100. That is a conversion problem with a five-minute fix.
A note on photography
The largest image on the entire site is 835 × 800 pixels. The homepage hero is 308 × 398. Most are between 200 and 400 pixels. No image on the site is even 1,000 pixels wide.
We flag this plainly because it constrains the rebuild: a modern full-bleed hero wants a 2,000–2,560px image, and none exists in the current library. Tressa almost certainly has higher-resolution originals on a phone or camera. Recovering those, or scheduling a short shoot, is a genuine prerequisite for the design to reach its potential — not an upsell.
[ Data verified ] All 97 site images downloaded and measured; alt attributes read from source markup.
Elegant, equestrian, and extremely fast.
Not a generic corporate marketing site. The restraint of the current site carried forward and executed properly — with the structure, speed and search signals it is currently missing.
Direction
- Palette — warm near-black (#14110f) drawn from her own arena photography, a bone ground (#f5f2ea), a saddle-brass accent (#b08d55), oxblood secondary (#7a3b30).
- Typography — Cormorant Garamond for display: classical, high-contrast, appropriate to the tradition. Inter for body text at genuinely readable sizes.
- Tone — quiet authority. Nothing shouts.
Homepage architecture
- Hero — positioning, location, three credibility stats, prominent Schedule a Conversation
- Trust strip — travels to your barn · haul-in · single & group · virtual worldwide · video assessments
- About Tressa — story, philosophy, pull quote, the Neindorff lineage in its own panel
- Training & Services — six clear cards with complete pricing
- Why train with Tressa — lineage, rider-first method, students who stay for decades
- Students — testimonials as attributed cards, marked up with schema
- Location & service area — Traditions Farm and the towns she covers
- Contact / consultation CTA
An honest note on the concept above. It uses Tressa's existing photograph at the largest size it can carry without softening. Her current image library tops out at 835 × 800 px, which is why the concept uses an editorial split layout rather than a full-bleed hero. Higher-resolution originals — or a short shoot — would make the full treatment possible. We would rather design honestly around the real assets than mock up something we cannot actually build.
1.16 MB of JavaScript to deliver eight words.
Homepage payload, measured twice by independent methods — server-side curl and in-browser fetch — with identical results:
| Asset | Uncompressed | Over the wire | |
|---|---|---|---|
| index.html | 25,830 | 6,526 | |
| sites.css (Weebly) | 210,877 | 29,652 | |
| fancybox.css | 3,911 | 1,218 | |
| main_style.css (theme) | 23,667 | 4,039 | |
| main.js (Weebly) | 481,002 | 147,784 | JS |
| stl.js (requested twice) | 189,147 × 2 | 34,224 × 2 | Duplicate |
| main-customer-accounts-site.js | 534,298 | 159,110 | Unused store bundle |
| jquery.jqtransform.js | 13,585 | 3,843 | JS |
| hero image (JPEG) | 27,971 | 27,971 | Uncompressed |
| background image (JPEG) | 109,620 | 109,620 | Uncompressed |
| Total (unique files) | 1,619,908 (1.54 MB) | 523,987 (512 KB) | |
| Total actually requested | 1,809,055 (1.73 MB) | 558,211 (545 KB) | stl.js fetched twice |
- JavaScript is 66% of the page — 1.16 MB uncompressed, 337 KB over the wire.
main-customer-accounts-site.jsalone is 534 KB. It is Weebly's e-commerce customer-accounts bundle, loaded on a page with no store, no login and no cart.- Two assets are requested twice from the identical URL —
stl.js(189 KB each time) and the Gentium Basic font stylesheet. That is 189 KB of pure waste on every page load. - Five render-blocking webfont stylesheets load four families — Oxygen, Lustria, Gentium Basic and Crimson Text.
- The site loads jQuery 1.8.3, released November 2012, which carries published cross-site-scripting advisories (CVE-2019-11358, CVE-2020-11022, CVE-2020-11023).
- Images are legacy JPEG with no compression applied, no WebP or AVIF, no
srcset, no lazy-loading.
On Core Web Vitals, deliberately no number. Field data requires sufficient real traffic to exist, and lab figures from a single automated run are not representative enough to put in front of a client. What we can say with certainty is that the payload above, on a fixed-width desktop layout scaled down on mobile, is not a configuration that passes. needs confirmation once measurement is in place.
What changes underneath
| Layer | Today | Rebuilt |
|---|---|---|
| HTTPS | Fails entirely | TLS by default, HSTS, http→https redirect |
| Mobile | Separate template (works); desktop template 960px fixed | One responsive template, no UA branching |
| JavaScript | 1.16 MB | Near-zero for a content site |
| Page weight | 1.54 MB for 8 words | A fraction of it, for real content |
| Images | Max 835px, uncompressed, alt="Picture" | Modern formats, responsive sizes, real alt text |
| Structured data | None | Organization, LocalBusiness, Person, Service, Review, FAQ |
| Analytics | None working | GA4 + Search Console + form conversion tracking |
| Titles / H1s / canonicals | Bare / all identical / none | Targeted and unique on every page |
| Landing pages | Not possible on this theme | Scalable service and location pages |
We are not simply making the website prettier. We are rebuilding the digital foundation underneath it.
Every AI crawler we tested fails at the front door.
Search is no longer only ten blue links. Google AI Overviews, ChatGPT, Gemini, Perplexity and Siri increasingly answer questions directly — and they answer them from entities they can identify with confidence.
What we tested
We requested the site as each major AI crawler over both protocols:
| Crawler | Over HTTPS | Over HTTP |
|---|---|---|
| GPTBot (ChatGPT) | Fails — TLS handshake | 200 |
| PerplexityBot | Fails — TLS handshake | 200 |
| ClaudeBot | Fails — TLS handshake | 403 at the CDN |
| Googlebot (user-agent) | Fails — TLS handshake | 200 |
Her robots.txt contains no AI-crawler directives, so AI bots are permitted by default — but every one of them fails on the secure protocol they would try first.
Could an answer engine actually describe her?
| What an AI needs to establish | Available on the site? |
|---|---|
| Who is Tressa Boulden? | Yes — a strong 926-word About page, but with no Person schema and no H1 |
| What does she do? | Yes in prose; not in any structured form |
| Where does she operate? | Barely "Sebastopol" on 2 of 19 pages; no street address; no LocalBusiness schema |
| What services does she offer? | As page names only; no Service schema, and two prices stop mid-sentence |
| How do you contact her? | Email only and it is obfuscated so crawlers cannot read it. No phone number exists. |
| Why is she credible? | The material is excellent — Neindorff lineage, 20 testimonials — but none of it is marked up, and the site links to no third-party corroboration |
An assistant asked "who teaches classical dressage in Sonoma County?" has almost nothing structured to work with, and cannot reach the site over HTTPS to find out more.
What AI answers actually look like in this niche
We checked seven queries for the presence of an AI Overview:
- No AI Overview appeared on any commercial or local query — "dressage trainer near me", "dressage trainer Santa Rosa CA", "dressage lessons Santa Rosa", "horseback riding lessons Sebastopol", "virtual dressage lessons". These are still won by ranking and by the local pack.
- An AI Overview did appear on the informational query "dressage training levels explained". Its citations went to usef.org, YouTube (three times), and — notably — the blogs of a tack retailer and two apparel brands. No dressage publisher was cited, and no individual trainer's site was cited except through YouTube.
Read that carefully, because it is an opening. When Google needed an authoritative answer about dressage training levels, it could not find an expert practitioner to cite and fell back on retailers selling breeches. Tressa can explain the training scale from a documented classical lineage. That is exactly the kind of source these answers are missing — and the citation pattern suggests video carries disproportionate weight here.
One entity signal she already has
thetraditionalequestrian.com — the boutique linked from her own site — is run by Paloma David, described there as "an assistant trainer at the lovely Traditions Farm in Sebastopol, California" who names Tressa Boulden as her mentor. It links back to tressabouldendressage.com, and Paloma David is also one of the 20 named testimonial authors on Tressa's site.
That is a genuine, independent, third-party corroboration of who Tressa is, where she teaches, and what Traditions Farm is — the exact kind of signal an answer engine looks for. It exists today and nothing on Tressa's own site takes advantage of it.
What we would put in place
Structured data
- Organization / LocalBusiness — name, address, geo, service area, hours, contact
- Person for Tressa — with
alumniOfandknowsAboutcarrying the Neindorff lineage and classical dressage - Service for each offering, with complete, unambiguous pricing
- Review over the 20 existing testimonials
- FAQ for the questions riders actually ask
Entity signals
- One business name, one address, one phone, one experience figure — identical everywhere
- Town and county in titles, headings and body copy, not only the footer
- Google Business Profile, equestrian directories, association listings
- Links to her own social profiles, which the site currently lacks entirely
- Expert content on classical dressage and the training scale — what actually earns citations
The shift. Traditional SEO asked does this page rank? The question now is does the machine know who you are, and does it trust the answer? That is Search Visibility + AI Visibility + Entity Authority — and entity authority is the part Tressa is closest to earning, because the substance genuinely exists. It simply is not legible yet.
[ Data verified ] Crawler requests issued with each bot's published user-agent string over both protocols on August 20, 2026. We have not simulated or quoted any AI assistant's output.
Strong substance, weak scaffolding.
Strengths
- Documented 22-year study under Melissa Simms of the Reitinstitut Egon von Neindorff
- 35+ years teaching locally; fourth-generation Sonoma County
- Twenty named, long-form testimonials — some spanning 14 and 20+ years
- Genuinely good writing and a differentiated classical positioning
- A service mix spanning local, virtual and clinic revenue
- Fast host (56 ms TTFB) and clean, readable URLs
Weaknesses
- HTTPS fails outright; Chrome cannot load the secure site
- Not mobile-responsive — ~40% scale on a phone
- No H1s, canonicals, schema, or meta descriptions (beyond one)
- Homepage carries 8 words and no call to action
- No phone number; email hidden from crawlers
- No working analytics of any kind
- Image library maxes at 835 px
Opportunities
- The "near me" cluster via Google Business Profile — the volume is real and the local field is thin
- "Classical dressage" (320/mo, difficulty 14) matches her positioning exactly
- "Dressage training scale / pyramid" — 470/mo combined, $3.05–3.58 CPC, and already her subject matter
- Twenty testimonials waiting to become Review schema
- Location pages for Santa Rosa, Petaluma and the county
- Virtual and video assessment as a national conversion offer
Threats
- Every month on HTTP compounds lost trust and lost crawl equity
- AI assistants are consolidating around entities they can verify — and cannot currently verify her
- Any competitor with a modern responsive site and a Google Business Profile outranks her by default
- "© 2014" actively signals a closed business to a visitor
- No measurement means no early warning on any of it
Twenty-six out of a hundred — and cheap to move.
The first five dimensions score the current state. The last three score headroom — how much opportunity is available, not how well it is currently being used. The coral tick marks the 12-month target.
Overall foundation score today → approximately 80/100 achievable within 12 months.
Scored on infrastructure, not on Tressa's work.
Two things about that number. First, it measures infrastructure, not the business. The highest current score is Authority Strength, and it is held down by structure rather than by substance. Second, low infrastructure scores are the cheapest kind to move, because nothing has to be invented — the credentials, the students and the writing already exist. They just need a container that search engines and phones can read.
Reachable, then legible, then known.
Phase 1 — Make the site reachable and readable
- Secure hosting with working HTTPS and a proper http→https redirect
- Responsive rebuild on a fast modern architecture — viewport, fluid layout, mobile-first
- H1s, canonicals, and unique targeted titles and meta descriptions on every page
- Fix the 404 navigation item and the three dead
javascript:;buttons - Complete the truncated pricing sentences; update the copyright line
- GA4 and Search Console with form conversion tracking
- Claim the Google Business Profile and open a review request to existing students
Phase 2 — Make the business legible
- Dedicated service pages with proper search targeting
- Sebastopol and Santa Rosa location pages
- Full schema layer — Organization, LocalBusiness, Person, Service, Review
- Testimonials promoted into the navigation and marked up
- Real alt text throughout; photography recovered or reshot at usable resolution
- A branded email address, and a phone number or an explicit contact policy
Phase 3 — Build the entity
- Google Business Profile claimed, categorised and populated
- NAP consistency across directories and equestrian listings
- Her own social profiles linked from the site
- A review-generation routine with existing students
- First pillar content on classical dressage and the training scale
- Internal linking across the whole site
Fifteen moves, ordered by what actually matters.
| # | Action | Impact | Effort |
|---|---|---|---|
| 1 | Working HTTPS + http→https redirect | Critical | Low |
| 2 | Claim the Google Business Profile + collect student reviews | Critical | Low |
| 3 | Unique targeted titles + H1s on all 19 pages | Critical | Low |
| 4 | Homepage with real content and a clear CTA | Critical | Medium |
| 5 | GA4 + Search Console + conversion tracking | Critical | Low |
| 6 | Full schema layer | High | Medium |
| 7 | Rebuild on one responsive template (retire the user-agent split) | High | High |
| 8 | Canonicals + meta descriptions sitewide | High | Low |
| 9 | Fix 4 dead buttons, truncated prices & copy, dead nav slot, © 2014 | High | Low |
| 10 | Add a phone number or explicit contact route | High | Low |
| 11 | Dedicated service + location pages | High | Medium |
| 12 | Testimonials surfaced and marked up | Medium | Low |
| 13 | Real alt text on 101 images; internal linking across the site | Medium | Medium |
| 14 | Photography at usable resolution | Medium | Medium |
| 15 | Classical dressage content lane | Medium | Ongoing |
The first five moves
- Get HTTPS working. Chrome cannot load the secure version, and every AI crawler fails on it.
- Claim the Google Business Profile and ask twenty students for reviews. The median pack listing in her market has thirteen. She has twenty people who already wrote paragraphs about her.
- Write 19 real title tags and 19 different H1s. All nineteen headings currently read "Tressa Boulden Dressage". The cheapest meaningful SEO work available here.
- Give the homepage something to say and something to click.
- Turn measurement on. Nothing after this can be judged without it.
Bottom line for Tressa. You did the part most people never get to — you built the site and put your work online, and what you wrote on it is genuinely good. What's holding it back isn't the writing or the taste. It's a 2012 website platform that can't do HTTPS, gives all nineteen of your pages the same heading, and hands Google eight words on your most important page — while you have no Google Business Profile in a market where four reviews earns a knowledge panel.
None of that is a reflection on you, and none of it requires you to become a marketer. It requires the foundation underneath to be rebuilt once, properly — and every one of the fifteen items above is buildable in 90 days.
Let's fix the foundation first.
Thirty minutes. We'll walk through this assessment, answer your questions, and map what the first three weeks look like — starting with getting the site secure and readable on a phone. Once the foundation is corrected, we can talk about what an ongoing search strategy should look like, based on your geography, your competition, the services you actually want more of, and the budget that makes sense.
Schedule a Strategy Call With BryanNo sales pressure · Just clarity · Prefer email or phone? fikeshway@bonsaimarketingcompany.com · (707) 593-7539