# Onsite SEO Audit v3 — giostarwellness.com

Date: 2026-06-24 (noon-PT meeting cut)
Auditor: Ratatoskr (JustinHarris.AI)
URL: https://giostarwellness.com/
Client: giostar
Audit version: v3 — **supersedes v2 (which was wrong on the foundational items)**
Audit type: Onsite (off-site SEO covered separately)
Methodology: JHAI 9-phase onsite audit per `~/.claude/commands/onsite-seo-audit.md`, executed with raw `curl` + grep across 15 pages, cross-checked against DataForSEO On-Page Instant (authoritative third party) and DataForSEO live SERP API for the AI Overview / Local Pack citation pool on five money queries.

## v3 supersedes v2 — what was wrong and why

The v2 audit shipped earlier this morning called WJ Media "regression-level" because it claimed no SEO plugin, no JSON-LD schema, no measurement infrastructure, and no meta descriptions were installed. **That claim was wrong on the foundational items.** Raw `curl` of the homepage HTML, the four other audited pages, and ten additional pages confirmed:

- **Yoast SEO v27.6 is installed on all 15 pages audited.** Plugin signature comment present in `<head>`: `<!-- This site is optimized with the Yoast SEO plugin v27.6 - https://yoast.com/product/yoast-seo-wordpress/ -->`.
- **JSON-LD schema is generated on every page** (4 blocks per page typically): Yoast schema graph (`WebPage`, `BreadcrumbList`, `ImageObject`, `WebSite`, `Organization`), MAIO Semantic Signals author + reviewer + FAQ schemas (`Person`, `FAQPage`, `Question`, `Answer`).
- **Google Analytics 4 is firing on every page** via Site Kit v1.180.0. Measurement ID `G-KHLQLZ91VY`.
- **Meta descriptions are present on 13 of 15 audited pages** (missing on `/appointment/` and `/contact/`).
- **MAIO Semantic Signals AI-SEO plugin is installed**, generating extra Person + FAQPage schemas across the site.

Why the v2 miss happened: the v2 audit used `WebFetch` for the static-HTML reads. WebFetch converts HTML to markdown before returning, which strips the entire `<head>` section, every `<script>` tag, every `<meta>` tag, plugin signature comments, and JSON-LD blocks. WebFetch is a body-content extraction tool, NOT a head-content audit tool, and the JHAI methodology now reflects that. The fix is codified in `knowledge/rules-library/seo-head-content-verification.md` (new), and the canonical `~/.claude/commands/onsite-seo-audit.md` has been patched to mandate raw `curl` + grep as Phase 1's first action and to ban `WebFetch` for head-content checks. Cross-checked authoritative third party: DataForSEO On-Page Instant returned `onpage_score: 94.51` for the homepage.

**v2 is voided with a banner.** This v3 is the canonical re-audit. The real defects v2 surfaced — phone numbers, home-template duplicates, Brooklyn address leak, location architecture, theme-residue URLs — are still real and carry forward to this v3 audit with the same severity. The foundational items v2 mis-graded are corrected below.

## Executive Summary

Six weeks after the v1 audit was handed to WJ Media (2026-06-01), the foundational SEO install is done: Yoast SEO is generating schema, meta descriptions, OG and Twitter tags, canonicals, and sitemaps sitewide; GA4 is firing on every page; an additional MAIO Semantic Signals plugin is layering AI-SEO author + reviewer + FAQ schema on top. That layer is a real WJ Media deliverable and they deserve credit for it.

What is NOT done is the on-page structural work and the content/architecture cleanup. The homepage has **zero `<h1>` elements** (DataForSEO On-Page Instant confirms `H1 list: []`). Ten of 15 audited pages have zero H1, including the homepage, `/faqs/`, `/contact/`, `/about-us/`, `/our-team/`, `/appointment/`, `/financing/`, `/conditions-treated/`, `/blogs/`, and `/privacy-policy/`. The two malformed non-US phone numbers (`tel:0088609830` and `tel:9908300885`) from v1 are unchanged six weeks later on both the homepage and the contact page. The `/home-02/` duplicate-homepage template is still live and a v3 deeper sweep surfaced seven additional indexable home-template variants (`/home-03/`, `/home-04/`, plus four `/home-0X-one-page/` paths), all returning 200 with self-canonicals, all flagged `robots=index, follow`. A template address "14D Street Brooklyn, New York" still leaks into the footer on the homepage, contact page, about page, our-team, appointment, financing, and conditions-treated, actively poisoning local NAP. The `/locations/<city>/services/<service>/` franchise URL scaffold is still 404. The five theme-demo blog posts v1 flagged (`/doctors-failure-to-diagnose-a-medical-condition/`, etc.) are still indexed.

Authoritative AI-citation evidence from DataForSEO live SERP: on **"peptide therapy las vegas"** Google AI Overview IS triggering and citing five competitor sources (Modern Wellness Clinic, Concierge MD, Atlas Health Institute, More Than Medical Wellness). GIOStar is NOT cited and is NOT in the top 20 organic. On **"stem cell therapy las vegas"** AI Overview also triggers; GIOStar NOT cited, NOT in top 20. On `glp-1 weight loss las vegas`, `exosome therapy las vegas`, and `trt clinic henderson nv` no AI Overview triggers; Local Pack triggers on the GLP-1 and exosome queries; GIOStar absent from all three. The schema-eligibility gate IS now passed (Organization + WebPage + FAQPage schema present), but eligibility ≠ being picked. AI Overview picks domains it ranks well in organic AND that have the per-page content density to extract a passage from. GIOStar has the first; not yet the second.

**Top three P0s for this week (in order):** (1) add an `<h1>` to the homepage and the nine other pages that ship with none, because DataForSEO marks `no_h1_tag` as the top failed check on the homepage; (2) delete or 301-redirect the eight duplicate home-template URLs + the five theme-residue URLs (`/testimonial-lumina/`, `/about-us-1/`, `/blog-grid-sidebar-{left,right}/`, `/careers-grid/`), then resubmit the cleaned sitemap to GSC; (3) replace the two malformed phone numbers AND remove the Brooklyn template address from the global footer so one consistent Henderson NAP block is the only one a crawler or a patient can find.

## v1 to v3 Verification Table

| v1 ID | v1 Finding | v1 Severity | v3 Status (verified by raw curl + DataForSEO) | Evidence |
|---|---|---|---|---|
| v1-P0-1 | No SEO plugin installed | P0 | **CLOSED** | Yoast SEO v27.6 plugin signature in `<head>` on 15 of 15 audited pages. MAIO Semantic Signals AI-SEO plugin also present. v2 was wrong. |
| v1-P0-2 | No JSON-LD schema on any page | P0 | **CLOSED (with type-gap)** | 4 JSON-LD blocks per page including Yoast schema graph (WebPage + BreadcrumbList + ImageObject + WebSite + Organization), MAIO Person + FAQPage + Question + Answer schemas. **Type gap:** no MedicalBusiness or LocalBusiness specifically; no Service or MedicalProcedure on department pages. Reclassified as new P1 finding below. v2 was wrong. |
| v1-P0-3 | No measurement infrastructure | P0 | **PARTIALLY CLOSED** | GA4 measurement ID `G-KHLQLZ91VY` firing on 15 of 15 pages via Site Kit v1.180.0. Meta Pixel NOT installed (confirmed across all 15 pages, no `fbq(`, no `connect.facebook.net`, no pixel `init` calls). GTM container not detected. v2 was wrong on GA4; v2 correct on Pixel + GTM. |
| v1-P0-4 | Homepage has no H1 | P0 | **STILL OPEN** | DataForSEO On-Page Instant: `H1 list: []`. Raw `grep -ciE '<h1' /tmp/giostar-home.html` returns `0`. v2 was wrong to mark this closed (WebFetch misclassified a visual heading as H1). |
| v1-P0-5 | `/home-02/` duplicate template page indexable | P0 | **STILL OPEN AND WORSE** | `/home-02/` returns 200, title "Home 02 - GIOSTAR WELLNESS", `<link rel="canonical" href="https://giostarwellness.com/home-02/">` (self-canonical, not redirecting to /), robots `index, follow`. `/home-03/` returns 200 with title "Home 03 - GIOSTAR WELLNESS" visually identical. `/home-04/` and four `/home-0X-one-page/` variants also live in `page-sitemap.xml`. Eight indexable home-template variants total. |
| v1-P0-6 | Franchise URL pattern `/locations/<city>/services/<service>/` not built | P0 | **STILL OPEN** | `/locations/las-vegas/` returns 404. `/locations/las-vegas/services/peptide-optimization/` returns 404. No `/locations/` URLs in `page-sitemap.xml`. |
| v1-P0-7 | Two malformed phone numbers in `tel:` links | P0 | **STILL OPEN** | Homepage and `/contact/` both contain `tel:0088609830` and `tel:9908300885`. Identical to v1. Unchanged six weeks. Neither is US-format. |
| v1-P0-8 | No physical Las Vegas address on homepage or contact page | P0 | **PARTIALLY CLOSED, NEW PROBLEM** | Henderson address `2482 W. Horizon Ridge Parkway Suite 100, Henderson NV, 89052` now present on both pages. BUT a SECOND template address `14D Street Brooklyn, New York` appears alongside it. Brooklyn leak ALSO present on `/about-us/`, `/our-team/`, `/appointment/`, `/financing/`, `/conditions-treated/`. Two conflicting addresses across seven pages is worse for local SEO than the original missing-address state. |
| v1-P1-1 | Theme-demo blog posts surfaced from homepage | P1 | **PARTIALLY CLOSED** | Homepage no longer links to them. But all five demo posts still indexed via `post-sitemap.xml`: `/doctors-failure-to-diagnose-a-medical-condition/`, `/sick-kid-how-to-deal-with-a-childs-fever/`, `/devtools-debugging-tips-shortcut-chrome-fire/`, `/diabetes-blood-pressure-consultation-for-patients/`, `/gene-therapy-could-turn-off-severe-allergies/`. Five new original regenerative-medicine posts now also indexed (positive). |
| v1-P1-2 | Empty alt text on press carousel and homepage images | P1 | **STILL OPEN** | ABC News, Fox News, JAMA, Nature, NBC press logos on homepage have no descriptive alt text. DataForSEO On-Page Instant flags `no_image_title` on the homepage. |
| v1-P1-3 | `/faqs/` has FAQ-shaped content but no FAQ schema | P1 | **CLOSED (with H1-regression)** | `/faqs/` carries 4 JSON-LD blocks including `FAQPage`, `Question`, `Answer` schemas via Yoast + MAIO. Schema gate cleared. **However**: page has 0 `<h1>` tags. Separate P1 finding below. v2 was wrong on the schema claim; v2 correct on the H1-regression. |
| v1-P1-4 | No Terms of Service page | P1 | **STILL OPEN** | `/terms/`, `/terms-of-service/`, `/tos/` all 404. |
| v1-P1-5 | `/services/` 404 (no service-category index page) | P1 | **STILL OPEN** | `/services/` returns 404. Five department pages exist at `/department/<service>/` with proper H1 + Yoast schema + meta description, but no parent hub page consolidating them. |
| v1-P1-6 | Dr. Anand Srivastava not on homepage | P1 | **CLOSED** | Homepage now references Dr. Srivastava as "Chairman and Chief Scientific Officer". Three additional clinicians named on homepage (Dr. Daniel Garza, Dr. Cristina Santana, Dr. Evelyn Garcia). |
| v1-P1-7 | Indexable theme-demo article adversarial signal | P1 | **STILL OPEN** | Same five demo posts still in `post-sitemap.xml`. The "doctors failing to diagnose" post is still the loudest indexed blog content on a medical clinic site. |
| v1-P1-8 | No meta description on any audited page | P1 | **PARTIALLY CLOSED** | Yoast meta descriptions present on 13 of 15 audited pages. Missing on `/appointment/` and `/contact/`. v2 was wrong to call this fully open. |
| v1-P2-1 | No `/llms.txt` | P2 | **STILL OPEN** | `/llms.txt` returns 404. |
| v1-P2-2 | HSTS / XFO / CSP headers not set | P2 | **NOT RE-TESTED** | Header check deferred to Cloudflare dashboard verification. |
| v1-P2-3 | Pixfort theme demo URLs indexable | P2 | **STILL OPEN AND WORSE** | `pxl-template-sitemap.xml` still referenced in sitemap index. Additional theme-residue URLs surfaced in `page-sitemap.xml`: `/testimonial-lumina/` (slug carries the Lumina-template ghost from the WJ Media generic template engagement-log L546-549 already flagged), `/about-us-1/`, `/blog-grid-sidebar-left/`, `/blog-grid-sidebar-right/`, `/careers-grid/`. |
| v1-P2-4 | Cloudflare CDN in front (positive) | P2 | **STILL POSITIVE** | Maintained. |
| v1-P2-5 | AI bot access in robots.txt open (positive) | P2 | **CLOSED AND IMPROVED** | `robots.txt` carries explicit `Allow: /` for GPTBot, ClaudeBot, PerplexityBot, CCBot. |

**Honest accounting of WJ Media's six-week remediation:**
- Closed: 2 of 8 v1 P0s (SEO plugin, JSON-LD on the eligibility basis) plus partial close on v1-P0-3 measurement (GA4 yes, Meta Pixel no).
- Closed: 3 of 8 v1 P1s (FAQ schema on /faqs/, Dr. Srivastava on homepage, meta descriptions on most pages).
- Improved: 1 of 5 v1 P2s (explicit AI-bot Allow).
- Still open: 4 of 8 v1 P0s (homepage H1, home-template duplicates, location architecture, malformed phones).
- Partially open: 2 of 8 v1 P0s (Brooklyn NAP-poison address, Meta Pixel install).
- Still open: 5 of 8 v1 P1s (theme-demo posts indexed, press-logo alt text, /terms/, /services/, theme-demo adversarial signal).
- Still open: 2 of 5 v1 P2s (/llms.txt, pxl-template).
- Regressed: 1 (`/faqs/` lost its H1; `/contact/` also has no H1, never had one).

WJ Media did the install. They have not done the cleanup, the structural defects, the architecture, or the LegitScript-ready content depth.

## P0 — Blocking (fix this week)

- **Issue:** Homepage and nine other pages have zero `<h1>` elements (the homepage was wrongly graded as closed in v2).
  - **Evidence:** DataForSEO On-Page Instant returns `H1 list: []` for the homepage with `onpage_score: 94.51` but `no_h1_tag` as the top failed check. Raw `grep -ciE '<h1' /tmp/giostar-home.html` returns 0. Same zero-H1 state on `/faqs/`, `/contact/`, `/about-us/`, `/our-team/`, `/appointment/`, `/financing/`, `/conditions-treated/`, `/blogs/`, `/privacy-policy/`. The five `/department/<service>/` pages each carry a clean single `<h1>`.
  - **Impact:** The `<h1>` is the single most important topical signal on a page. Yoast schema declaring `WebPage` topic does NOT substitute for an `<h1>`; the two operate on different signal channels. Ten pages telling Google "I don't know what this page is about" is the single largest lift available before any architecture work.
  - **Fix:** In the Elementor editor, add a single `<h1>` per page that names the page topic. Homepage: "Regenerative Medicine in Las Vegas, Nevada" or similar. `/faqs/`: "Frequently Asked Questions". `/contact/`: "Contact GIOSTAR Wellness". `/about-us/`: "About GIOSTAR Wellness". Etc. Demote whichever `<h2>` was visually carrying the title role.
  - **Owner:** WJ Media Group (Elementor editor change)

- **Issue:** Eight duplicate home-template pages indexable, with self-canonical and `robots=index`.
  - **Evidence:** `page-sitemap.xml` lists `/home-02/`, `/home-03/`, `/home-04/`, `/home-01-one-page/`, `/home-02-one-page/`, `/home-03-one-page/`, `/home-04-one-page/`. `/home-02/` rendered confirms `<link rel="canonical" href="https://giostarwellness.com/home-02/">` (self, not pointing to /) and `<meta name='robots' content='index, follow, ...'>`. `/home-03/` returns 200 visually identical to the homepage.
  - **Impact:** Authority signals split across nine pages serving substantially equivalent homepage content. Google's deduplication picks one as canonical and demotes the others; if it picks `/home-03/` over `/`, the actual homepage drops in rankings.
  - **Fix:** Hard-delete all seven duplicate templates in WordPress admin (preferred). Alternative: 301-redirect each to `/` AND set `noindex` via Yoast on each. Resubmit cleaned `wp-sitemap.xml` to GSC. Confirm fall-out from the index over two weeks via `site:giostarwellness.com home-0` query.
  - **Owner:** WJ Media Group

- **Issue:** Two malformed non-US phone numbers in `tel:` links, six weeks unchanged.
  - **Evidence:** Homepage and `/contact/` both contain `tel:0088609830` and `tel:9908300885`. Identical to v1.
  - **Impact:** Patient who taps either link from a phone hits a dial error. Numbers cannot match any US Google Business Profile listing, fail every citation aggregator, signal to Google this is not a real US business. NAP consistency is the foundational local-SEO signal; this is the most consequential five-minute fix on the site and it has gone undone for six weeks.
  - **Fix:** Replace both numbers with the verified Las Vegas line, formatted `tel:+17025551234` in `href` and `(702) 555-1234` in display text. Same number in footer of every page, on the Google Business Profile when claimed, and on every citation.
  - **Owner:** WJ Media Group + GIOStar (provides the verified Cox line per engagement log)

- **Issue:** "14D Street Brooklyn, New York" template address leaks into the footer of seven pages alongside the Henderson address.
  - **Evidence:** Homepage, `/contact/`, `/about-us/`, `/our-team/`, `/appointment/`, `/financing/`, `/conditions-treated/` all carry both `2482 W. Horizon Ridge Parkway Suite 100, Henderson NV, 89052` AND `14D Street Brooklyn, New York` in the footer (Pixfort theme-demo carryover).
  - **Impact:** Two NAP addresses on the canonical contact surface causes Google to either pick the wrong one as canonical (a Brooklyn-anchored result for a Henderson clinic), demote local-pack eligibility for the domain, or flag data quality as low and reduce trust on all clinical content. Worse state than v1's "no address at all". Also confirms the engagement-log finding that WJ Media's site was a re-skinned Lumina template, not a custom build.
  - **Fix:** Remove every reference to "14D Street Brooklyn" from the homepage, the global footer template, and any widget area. Henderson address is the only one that should appear anywhere. Inspect the Pixfort theme footer template; the Brooklyn address is likely hardcoded. After fix, sitewide search for "Brooklyn" and "New York" should return zero hits outside an explicit non-contact context.
  - **Owner:** WJ Media Group

- **Issue:** Franchise URL pattern `/locations/<city>/services/<service>/` still 404.
  - **Evidence:** `/locations/las-vegas/` and `/locations/las-vegas/services/peptide-optimization/` both 404. No `/locations/` URLs in `page-sitemap.xml`.
  - **Impact:** GIOStar is positioned as the US flagship of a 20-location franchise. The medical-director candidate's Montana franchise interest (2026-06-11 QMS-review meeting) means multi-location is months away, not theoretical. Without the URL scaffold, the site cannot rank for "stem cell therapy Las Vegas" or "peptide therapy Henderson NV" and every future opening blocks on hand-built pages.
  - **Fix:** Build `/locations/las-vegas/` as a hub (full Henderson NAP, hours, embedded Google Map, location-specific testimonials, `LocalBusiness` schema with `PostalAddress`, `telephone`, `openingHours`). Build `/locations/las-vegas/services/<service>/` for each of the five departments with 30% unique location-anchored content and `Service` schema. Scaffold becomes the franchise template.
  - **Owner:** WJ Media Group with JHAI sign-off on URL architecture

## P1 — High Impact (fix this month)

- **Issue:** No `MedicalBusiness` or `LocalBusiness` schema. Current Organization schema is too generic for a regulated medical clinic.
  - **Evidence:** Raw curl confirms `Organization` schema present but NOT `MedicalBusiness`, `LocalBusiness`, `MedicalClinic`, or `MedicalOrganization`. DataForSEO On-Page Instant lists zero schema blocks under its `schema` parser, suggesting the schema may also need `@id` linkage to make it discoverable.
  - **Impact:** Healthcare sites without `MedicalBusiness` subtype schema do not qualify for the medical-specific search features Google built (knowledge panels, "near me" results, AI Overview citations for clinical questions). The Yoast Organization schema is adequate for a generic business; it is below the bar for a regenerative-medicine clinic.
  - **Fix:** In Yoast → Settings → Site basics, configure Organization type as "Medical Business" or its more specific subtype. Then add a Yoast custom schema block on the homepage adding `MedicalBusiness` with `medicalSpecialty` array (`PrimaryCare`, `Regenerative Medicine`, `Endocrinology`), `availableService` array linking to each `/department/<service>/` page, `priceRange`, `paymentAccepted`, `currenciesAccepted`. Validate in Google Rich Results Test.
  - **Owner:** WJ Media Group

- **Issue:** Department pages have no `Service` or `MedicalProcedure` schema.
  - **Evidence:** `/department/peptide-optimization/` carries Yoast WebPage + BreadcrumbList + ImageObject + Organization schemas plus MAIO FAQPage. No `Service`, `MedicalProcedure`, `MedicalTherapy`, or `Drug` schema on any of the five department pages.
  - **Impact:** Department pages are the money pages for each restricted-keyword category. Without `Service` schema declaring this is a clinical service offered by a `MedicalBusiness`, AI Overviews and ChatGPT search cannot extract structured service-offering data for citation. Generic FAQ schema is not enough.
  - **Fix:** Add `Service` schema per department page via Yoast custom schema block. Include `serviceType`, `provider` (link to MedicalBusiness), `areaServed` (Las Vegas + Henderson + NV statewide), `audience`, `offers`. For services with specific procedures (peptide, exosome, stem cell), add `MedicalProcedure` schema. Validate.
  - **Owner:** WJ Media Group

- **Issue:** Two pages have no meta description.
  - **Evidence:** Raw curl confirms zero `<meta name="description">` tag on `/appointment/` and `/contact/`. The other 13 audited pages have unique Yoast-generated descriptions.
  - **Impact:** Google auto-generates snippets from arbitrary on-page text. The search-result snippet is the second-most-important conversion surface after the title.
  - **Fix:** In Yoast page settings, write a unique 150-160 char description for both pages.
  - **Owner:** WJ Media Group

- **Issue:** No Meta Pixel installed (15 of 15 pages sweep confirms absence).
  - **Evidence:** No `fbq(`, `connect.facebook.net`, `facebook.com/tr`, or pixel `init` call anywhere in the rendered source across all 15 audited pages.
  - **Impact:** Day 1 of paid Meta Ads (once LegitScript clears and clinic opens) the remarketing audience pool is zero. Every day without the Pixel firing now is a day of audience seeding lost. Lookalike audiences cannot be built without a base custom audience.
  - **Fix:** Install Meta Pixel through a WordPress pixel plugin (e.g., PixelYourSite Free) or directly through GTM (which requires installing GTM first since Site Kit only loads GA4). Verify firing in Meta Events Manager. Configure standard events for `ViewContent` (department page views), `Lead` (appointment form submit), `Contact` (contact form submit), `Schedule` (appointment confirmation).
  - **Owner:** WJ Media Group

- **Issue:** Five theme-demo blog posts still indexed (`post-sitemap.xml`), six weeks unchanged.
  - **Evidence:** `/doctors-failure-to-diagnose-a-medical-condition/`, `/sick-kid-how-to-deal-with-a-childs-fever/`, `/devtools-debugging-tips-shortcut-chrome-fire/`, `/diabetes-blood-pressure-consultation-for-patients/`, `/gene-therapy-could-turn-off-severe-allergies/`.
  - **Impact:** A medical clinic with "doctors failing to diagnose" as one of seven indexed blog posts signals to Google's YMYL classifier that the site's strongest content asset is about medical malpractice. Dilutes topical authority around regenerative medicine.
  - **Fix:** Trash all five in WordPress admin. Confirm fall-out from `post-sitemap.xml` within 24 hours. Submit URL removal in GSC if any are indexed.
  - **Owner:** WJ Media Group

- **Issue:** Press carousel logos and several content images have no descriptive alt text.
  - **Evidence:** ABC News, Fox News, JAMA, Nature, NBC logos on homepage have no descriptive alt. DataForSEO On-Page Instant flags `no_image_title` on the homepage.
  - **Impact:** WCAG 2.2 accessibility failure for assistive-tech users. Lost keyword/credibility surface for Google Images.
  - **Fix:** Set descriptive alt text per logo: `alt="Featured in ABC News"`, `alt="Featured in JAMA"`, etc. Leave empty alt only on purely decorative dividers.
  - **Owner:** WJ Media Group

- **Issue:** Five theme-residue template URLs surfaced in `page-sitemap.xml`.
  - **Evidence:** `/testimonial-lumina/` (the slug carries the Lumina-template ghost), `/about-us-1/` (duplicate of `/about-us/`), `/blog-grid-sidebar-left/`, `/blog-grid-sidebar-right/`, `/careers-grid/`.
  - **Impact:** Thin-content / template-residue dilution. `/testimonial-lumina/` is also a brand-credibility risk: a competitor or journalist running a URL audit finds the Lumina ghost in the canonical URL of the live testimonials page.
  - **Fix:** Hard-delete or 301-redirect each. Rename `/testimonial-lumina/` to `/testimonials/` with a 301 from the old slug.
  - **Owner:** WJ Media Group

- **Issue:** No Terms of Service page.
  - **Evidence:** `/terms/`, `/terms-of-service/`, `/tos/` all 404.
  - **Impact:** Healthcare site collecting patient information through forms without a Terms of Service has a YMYL trust-signal gap. Google weights policy-document presence as a baseline trust factor.
  - **Fix:** Author or import a Terms of Service appropriate for a Nevada medical wellness clinic. Cross-link from the footer alongside Privacy Policy.
  - **Owner:** Client legal counsel or JHAI-coordinated draft

- **Issue:** `/services/` 404 (no service-category index hub).
  - **Evidence:** `/services/` returns 404. Five department pages exist at `/department/<service>/` with proper H1 + Yoast schema + meta descriptions, but no parent hub linking them.
  - **Impact:** No canonical hub page to target the top-of-funnel query "GIOSTAR services" or "regenerative medicine Las Vegas services". Missed organic anchor.
  - **Fix:** Create `/services/` as a hub page with `ItemList` schema and main-nav link. Alternative: rename `/department/` to `/services/` for keyword alignment.
  - **Owner:** WJ Media Group

## P2 — Optimization (fix this quarter)

- **Issue:** Pixfort theme-template URLs still indexed via `pxl-template-sitemap.xml`. Six weeks unchanged.
  - **Fix:** Block `/pxl-template/` via Yoast noindex rule on the `pxl-template` custom post type. Remove from sitemap.
  - **Owner:** WJ Media Group

- **Issue:** No `/llms.txt` at domain root.
  - **Fix:** Create `/llms.txt` listing canonical citable pages (homepage, the five `/department/<service>/` pages, `/faqs/`, `/contact/`, the `/locations/las-vegas/` hub once built). Spec at llmstxt.org.
  - **Owner:** WJ Media Group

- **Issue:** HSTS, X-Frame-Options, Content-Security-Policy headers status not re-tested.
  - **Fix:** Cloudflare dashboard verification pass.
  - **Owner:** WJ Media Group

- **Issue:** DataForSEO On-Page Instant flags `title_too_short` on the homepage title ("Home - GIOSTAR WELLNESS" is 24 chars; SEO best practice is 50-60 chars).
  - **Fix:** Yoast title template change: "Home - GIOSTAR WELLNESS" → "GIOSTAR Wellness — Regenerative Medicine in Las Vegas, NV" or similar 55-char target.
  - **Owner:** WJ Media Group

- **Issue:** DataForSEO flags `duplicate_meta_tags` on the homepage (Yoast + MAIO + Site Kit + Redux all emitting overlapping meta tags).
  - **Fix:** Audit homepage `<head>` for duplicate `<meta name="author">`, duplicate `<meta name="description">`, duplicate `<meta property="og:*">`. Disable whichever plugin is double-emitting (likely MAIO author + reviewer schemas overlapping Yoast author schema).
  - **Owner:** WJ Media Group

## Phase 9 — AI Search Visibility (AEO / GEO) — measured, not asserted

The schema-eligibility gate IS now passed (Organization + WebPage + FAQPage + Person schemas present). Eligibility does NOT equal getting picked. DataForSEO live SERP for the five money queries returned authoritative results:

| Query | AI Overview | AIO cites GIOStar | GIOStar in top 20 organic | Local Pack | GIOStar in Local Pack |
|---|---|---|---|---|---|
| peptide therapy las vegas | YES | NO (5 competitor cites: Modern Wellness Clinic, Concierge MD, Atlas Health Institute, More Than Medical Wellness) | NO | YES | NO (verify in GBP audit) |
| stem cell therapy las vegas | YES | NO (refs not returned by API for this query — DataForSEO data variance) | NO | NO | n/a |
| glp-1 weight loss las vegas | NO | n/a | NO | YES (but DFS returned 0 businesses for this query) | NO |
| exosome therapy las vegas | NO | n/a | NO | YES (but DFS returned 0 businesses for this query) | NO |
| trt clinic henderson nv | NO | n/a | NO | NO | n/a |

Reading: AI Overview IS firing on the two highest-value commercial queries (peptide + stem cell). GIOStar is not cited and not in the top 20 organic on either. The schema gate is no longer the bottleneck; the bottleneck is now content depth + domain authority + page-specific extraction-friendly passages. Competitors winning the AIO citations (Modern Wellness Clinic, Concierge MD, Atlas Health Institute, More Than Medical Wellness) have longer-form authority pages, clearer "What is X?" definition blocks, statistics with citations, and per-service comparison tables that AI extractors prefer.

**Ranked citation-surface gaps (Phase 9 lift order):**
1. Build `/locations/las-vegas/` with `LocalBusiness` schema (this is the keystone — Local Pack triggers on three of five money queries; GIOStar must be a candidate).
2. Add `MedicalBusiness` + `Service` + `MedicalProcedure` schema (Phase 9 eligibility ceiling lift).
3. Rewrite each `/department/<service>/` page with: BLUF in first 60 words (peptide page already does this well; replicate), definition block (`<dl><dt><dd>`), comparison table where category supports one (peptide vs. TRT, semaglutide vs. tirzepatide, autologous vs. allogeneic), 3-5 statistics with cited sources (Princeton GEO study confirms +37-40% AI citation lift from inline stats with sources), named clinician byline with `Person` schema, last-updated date.
4. Build a Wikipedia article for GIOSTAR International (parent, not the LV franchise) when notability threshold is met. AI Overviews cite Wikipedia 7.8% of the time.
5. Add `/llms.txt` (marginal but cheap).
6. Expand FAQ from current 9 questions to 40-50 questions keyed to the restricted-category pages, each Q a natural-language patient phrasing, all under `FAQPage` schema.
7. Build per-department FAQ subpages (e.g., `/department/peptide-optimization/faqs/`) with category-specific patient questions.

## LegitScript-Gated Keyword Strategy (carry forward from v2)

GIOStar's primary money keywords (peptide therapy, TRT, HRT, GLP-1, semaglutide, tirzepatide, stem cell therapy, exosome therapy) are LegitScript-gated for paid search on Google Ads and Meta Ads. Per `clients/giostar/CLAUDE.md` L91 and the 2026-06-04 monthly sync, LegitScript certification is 4 to 6 weeks and $1,500+/year, gated on a signed medical director (still unsigned). Clinic open target slipped to August 2026.

**Implication:** Organic SEO carries the entire restricted-keyword narrative until LegitScript clears AND ads turn on. With AI Overviews already firing on these queries and GIOStar absent, the site needs to be the strongest organic asset in the Las Vegas regenerative-medicine market before paid Day 1, OR the first 30 days of paid spend rebuild what should have been organic.

**90-day organic content plan (in priority order):**

1. **Week 1 — H1 + cleanup foundation.** Add H1 to homepage + 9 H1-less pages. Delete 8 home-template duplicates + 5 theme-residue URLs. Trash 5 demo blog posts. Replace 2 phone numbers. Remove Brooklyn address sitewide. Add meta descriptions to /appointment/ + /contact/.
2. **Weeks 2-4 — Location architecture + schema upgrade.** Build `/locations/las-vegas/` hub + `/locations/las-vegas/services/<service>/` for each department. Add `MedicalBusiness` schema sitewide. Add `Service` + `MedicalProcedure` schema per department page.
3. **Weeks 5-8 — Restricted-keyword authority content.** Five long-form pages keyed to the AI Overview-firing queries:
   - "What is peptide therapy and how does it work" — definition block + mechanism + indications + protocol + safety profile + LegitScript-aware language + 5 sources cited inline.
   - "GLP-1 weight loss explained: semaglutide vs tirzepatide" — comparison table + eligibility + supervised-protocol framing + inline stats.
   - "Stem cell therapy for joints / orthopedics / longevity in Las Vegas" — patient journey + what-to-expect + autologous vs allogeneic + FDA investigational disclaimer.
   - "Exosome therapy explained" — definition + sourcing transparency + regenerative-medicine context.
   - "TRT and HRT in Henderson NV" — qualified-clinician framing + DEA Schedule III posture + supervised-protocol framing.
   Each authored by a named credentialed clinician with `Person` schema, sources cited, FDA disclaimer (peptide page already carries this — replicate), last-updated date.
4. **Weeks 9-12 — FAQ expansion + per-department FAQ + AI citation surface.** Replace 9-question FAQ with 40-50 questions. Add `/department/<service>/faqs/` subpages. Add `/locations/las-vegas/faqs/` for local patient questions. All under `FAQPage` schema.

## `/locations/<city>/services/<service>/` URL Pattern Status

Still NOT BUILT. `/locations/` 404. No `/locations/` URLs in `page-sitemap.xml`. Same status as v1 six weeks ago. Recommended scaffold is in the P0 above. This is the keystone for Phase 9 Local Pack eligibility on three of five money queries.

## Quick Wins (under 1 hour each)

- Add `<h1>` to homepage + 9 other pages in Elementor editor.
- Hard-delete `/home-02/` through `/home-04/` and the four `/home-0X-one-page/` variants in WordPress admin.
- Hard-delete `/about-us-1/`, `/blog-grid-sidebar-left/`, `/blog-grid-sidebar-right/`, `/careers-grid/`. Rename `/testimonial-lumina/` to `/testimonials/` with 301.
- Trash all five theme-demo blog posts in WordPress admin.
- Remove "14D Street Brooklyn, New York" from the global footer template.
- Replace `tel:0088609830` and `tel:9908300885` with the verified Henderson Cox business line.
- Add Yoast meta descriptions to `/appointment/` and `/contact/`.
- Add descriptive alt text on the five press-carousel logos.
- Block `/pxl-template/` via Yoast noindex rule.
- Lengthen homepage title to 50-60 chars via Yoast title template.

## 30-Day Plan

### Week 1 — H1 + cleanup foundation
- Add H1 to homepage, /faqs/, /contact/, /about-us/, /our-team/, /appointment/, /financing/, /conditions-treated/, /blogs/, /privacy-policy/.
- Delete 8 home-template duplicates. Delete 4 theme-residue URLs. Rename /testimonial-lumina/ to /testimonials/.
- Trash 5 theme-demo blog posts.
- Replace 2 malformed phone numbers with verified Henderson Cox line.
- Remove "14D Street Brooklyn, New York" from global footer + 7 affected pages.
- Add meta descriptions to /appointment/ + /contact/.
- Lengthen homepage title via Yoast (currently 24 chars; target 50-60).

### Week 2 — Schema upgrade + Meta Pixel
- Configure Yoast → Settings → Site basics → Organization type as Medical Business.
- Add `MedicalBusiness` custom schema with `medicalSpecialty` array on homepage.
- Add `Service` + `MedicalProcedure` schema per `/department/<service>/` page.
- Install Meta Pixel via PixelYourSite or GTM. Verify in Meta Events Manager.
- Configure standard events (ViewContent, Lead, Contact, Schedule).
- Validate every JSON-LD block in Google Rich Results Test.

### Week 3 — Location architecture + service hub
- Build `/locations/las-vegas/` hub (full NAP, hours, embedded map, `LocalBusiness` schema with `PostalAddress` + `OpeningHours` + `telephone`).
- Build `/locations/las-vegas/services/<service>/` for each of 5 departments. 30% unique location-anchored content + `Service` schema.
- Build `/services/` hub page with `ItemList` schema; add to main navigation.
- Add Terms of Service page; link from footer.
- Resubmit cleaned sitemap to GSC.

### Week 4 — Authority content + AI citation surface
- First two of the five restricted-category long-form authority pages (peptide + GLP-1).
- Add `/llms.txt` listing canonical citable pages.
- Re-run Google Rich Results Test on every key page.
- Re-run DataForSEO On-Page Instant on top 5 pages; aim for 100/100 score.
- Snapshot baseline rankings for top 20 queries in GSC for next month's audit.
- Re-run DataForSEO live SERP on the five money queries; verify AI Overview reference count for GIOStar.

## Access Required for Verification

- Google Search Console property verification (read coverage, ranking baseline).
- Google Analytics 4 admin access (confirm tag firing + event configuration).
- WordPress administrative login (confirm plugin configuration, sitemap state, page edits).
- Yoast SEO premium access if available (advanced schema customization without code).
- Cloudflare dashboard access (HSTS toggle, Transform Rules).
- Meta Business Manager access (Pixel creation + audience config).
- Domain registrar access (GSC DNS verification).

## Off-Site SEO Scope Note

This report covers onsite factors only. Off-site SEO (backlink profile, citation consistency, Google Business Profile depth, review and reputation surface, third-party AI citation presence such as Wikipedia, Reddit, healthcare directories) is the next companion audit. Recommended within 30 days, after the P0 onsite items have been resolved.

## Re-Audit Cadence

Healthcare YMYL: monthly re-audit + out-of-cycle after any Google core update or YMYL algorithm announcement. **Next scheduled re-audit: 2026-07-24.**

## Internal Verdict (Ratatoskr, not for client surface)

WJ Media's six-week scorecard reads cleaner with the truth in hand: they DID install the foundational layer (Yoast, Site Kit + GA4, schema, meta descriptions, MAIO AI-SEO plugin, FAQ schema, AI-bot Allow directives, original blog posts). They did NOT do the on-page structural work (H1 sitewide), the architecture (`/locations/`, `/services/`), the content cleanup (8 home duplicates, 5 theme-demo posts, Brooklyn address leak), or the urgent operational fix that has gone undone for six weeks (the two malformed phone numbers).

The pattern is consistent: things requiring plugin install + Yoast config + sitewide template edits got done (their bread and butter). Things requiring per-page admin work in WordPress (H1 in Elementor on ten pages, deleting templates, replacing two phone numbers in footer source) have not been touched. That maps to "we have a junior WordPress operator who can configure plugins but is not editing pages one at a time," which is a different finding than "they aren't doing the work."

**Recommended Justin posture for the noon meeting:** open the rendered v3 audit URL on screen. Open with the correction publicly — "v2 we shipped this morning was wrong on the install items, here is the corrected v3, our verification methodology was upgraded, here is what is actually fixed and what isn't." This is the integrity move and it earns the right to land the still-real findings hard. Then walk the v1-vs-v3 table line by line. The conversation-mover questions for Tylor and Wil:
1. "What is the gating reason the phone numbers are still wrong six weeks later?"
2. "Who at WJ Media is editing pages in Elementor versus configuring plugins?"
3. "When does the `/locations/las-vegas/` scaffold ship? It is the keystone for AI Overview eligibility and the Montana franchise opening."

The agency-relationship-structure decision Justin has carried since 2026-04-14 has new data: WJ Media is a foundational-install agency, not a structural / architecture agency. That is useful classification for the complement-or-replace decision.

## Methodology Correction (v3 only, will not appear in future audits — fixed in canonical)

The v2 miss diagnosed: `WebFetch` converts HTML to markdown before returning, which strips the entire `<head>` section, all `<script>` tags, all `<meta>` tags, plugin signature comments, and JSON-LD blocks. WebFetch is a body-content extraction tool, NOT a head-content audit tool. The canonical `~/.claude/commands/onsite-seo-audit.md` has been patched with a mandatory Phase 1 first-action raw `curl` + grep recipe and a hard ban on `WebFetch` for head-content checks. The lesson lives at `knowledge/rules-library/seo-head-content-verification.md`. Every future onsite audit runs the raw-curl head sweep first, the DataForSEO cross-check second, then the rest of the nine phases.

## Auditor

Ratatoskr, JustinHarris.AI. Questions about findings can be directed to the auditor of record listed alongside this report.
