BizruptOverview →
All sites

Cross-portfolio


The technical-SEO debt, the analytics blackout, the brand-defense-only ranking profile. None of it is unique to any one site in the Tarzana portfolio. Fix once at the template level; pay back five times.

The portfolio at a glance#

Numbers from Ahrefs Site Explorer, US, subdomains, 2026-05-13.

Site DR Org KW Top-3 Org Traffic/mo Value/mo Ref Domains Headline finding
Tarzana Recovery 1.0 53 9 292 $1,490 113 Strongest keyword footprint; 85% branded; "tarzana treatment center" (5,900 vol) sits at pos 9; competitor-brand cannibalization on a blog post (#3 for "sunrise detox")
Hillside Recovery 1.0 6 4 169 $1,063 99 100% branded ranking; brand-name collision with MA/NY entities; 26 indexed /service/<modality> pages rank for zero keywords each
NoHo Recovery 12.0 5 2 42 $154 110 Highest DR in portfolio; almost no service-query traffic; 8 e-commerce template stub pages indexed in production
MK Adult Recovery 0.0 0 0 0 $0 61 61 referring domains but 0 organic visibility. 23 /recovery-cms pages indexed, none rank. Likely an indexing/relaunch issue
lumaMind 0.2 0 0 0 $0 0 Broken in production — page times out for real users; Lighthouse desktop reports NO_FCP; mobile shows 25 s TBT / 39 s main-thread for a 6 KB stub. Sunset or replace.

Patterns that repeat across every site#

These were not separate findings. They recurred on every audit. Fixing them once at the Webflow project-template level pays the portfolio back five times.

1. Webflow technical-SEO defaults are unused everywhere#

Issue Tarzana MK NoHo Hillside lumaMind
/robots.txt populated
/sitemap.xml returns 200 (apex only, 4 URLs)
Homepage <meta name="description">
Homepage <link rel="canonical">
JSON-LD schema
Open Graph (og:title/description/image)
Twitter cards

These are all Webflow-native settings: sitemap auto-generation, per-page description fields, the custom-code embed for JSON-LD, and the Open Graph / Twitter fields in page settings. None of them are activated on any site in the portfolio.

A direct crawl of ~50 pages across the five sites (2026-05-13) confirmed: zero pages ship a meta description, a canonical tag, or a JSON-LD schema block. Not one. This is the most lopsided finding in the audit — every page is the same shape of broken, which means a single template-level fix on each Webflow project resolves the entire surface.

2. Broken and locked URLs discovered during the page-by-page crawl#

URL Status Note
hillsiderecovery.com/amenities 🔴 404 Returns 404; whether linked from nav or not, inbound link equity is wasted
hillsiderecovery.com/facility-tour 🔴 404 Same
hillsiderecovery.com/faq 🟠 401 Webflow password-protect left on a public-nav page
nohorecovery.com/spravato 🔴 404 One of NoHo's named programs; the CMS twin at /recovery-cms/spravato-r works
nohorecovery.com/insights 🟠 401 The editorial section the audit cites as a content strength is password-locked
nohorecovery.com/team-page 🟠 401 Team is gated; clinical-leadership trust signal is invisible to visitors and crawlers
nohorecovery.com/section-2-slider/<slug> × 8 🟠 200 Webflow e-commerce template stubs indexed in production; body H1s read "Aftercare program"

3. Title tags — every page broken in a pattern#

Homepages first:

Site Title Length Verdict
Tarzana Recovery "Tarzana Recovery — Luxury Holistic Addiction & Mental Health Care in Southern California" 95 chars Good content, slightly long
MK Adult Recovery "MK Adult Recovery" 18 chars Far too short, no keywords
NoHo Recovery "NoHo Recovery" 13 chars Far too short, no keywords
Hillside Recovery "Hillside Recovery" 17 chars Far too short, no keywords
lumaMind "Luma Mind" 9 chars N/A — site is a stub

The per-page crawl surfaced worse patterns at depth:

  • Every Tarzana Recovery blog post (~30 posts) ships the same <title>Tarzana Recovery</title> — duplicate title across the entire /blog/<slug> collection.
  • Tarzana Recovery's /blog index title is literally "New" — Webflow template default shipped to production.
  • Hillside's /blog index title is also "New" — same default, different site.
  • Hillside's only blog post ships <title>Hillside</title> — brand only.
  • All Hillside /about, /team, /contact, and /service titles are single words ("About", "Team", "Contact", "Service") with no brand and no geography.
  • NoHo's three pillar pages (/innovative-recovery, /creative-recovery, /balanced-recovery) — the differentiating narrative — all ship the page name as the entire title, with no brand.
  • MK's 23 /recovery-cms/<slug> pages all share <title>MK Adult Recovery</title> — total duplicate-title collision across the program library.

Target: 50–60 characters that include the brand, primary service, and geography. A single Webflow CMS-field binding (<title>{{slug.name}} | <Brand> — <Geo></title>) fixes most of these in one commit per site.

4. Heading hierarchy is broken on most sites#

Site H1 count H2 count Notes
Tarzana Recovery 1 1 OK
MK Adult Recovery 1 0 Section headings styled as non-semantic elements
NoHo Recovery 1 0 Same pattern
Hillside Recovery 1 1 OK
lumaMind 1 (animated/split) 0 H1 is wrapped in transform CSS. Likely not a clean DOM node

Hurts both accessibility (screen-reader navigation) and SEO (section relevance signals).

5. The Ahrefs read: brand defense only#

Combined portfolio organic traffic is ~503 monthly visits across all five sites — on a portfolio with ~383 live referring domains. The link foundation exists; the ranking content does not.

  • Branded queries account for ~88% of all portfolio traffic. The sites are defending their own names well; they capture almost no demand from prospects searching for services without knowing the brand.
  • One keyword is the single biggest lever in the portfolio. "Tarzana treatment center" (volume 5,900) ranks at position 9 on tarzanarecovery.com. Push it to position 3 and Tarzana's traffic roughly doubles by itself. The blocker is brand confusion with tarzanatc.org (Tarzana Treatment Centers, DR 53).
  • NoHo Recovery is the most surprising finding. DR 12 (highest in portfolio, by a wide margin) but only 42 monthly visits across 5 ranking keywords. There is a multi-thousand-visit organic opportunity sitting unrealized.
  • The content surface is dramatically larger than the ranking surface. Across the portfolio, the Ahrefs crawl shows ~50 pages on Hillside (including 26 /service/<modality> subpages), ~50 on NoHo (including 21 /recovery-cms programs), 29 on MK (23 /recovery-cms programs), and 30+ blog posts on Tarzana — yet only 16 pages portfolio-wide rank for any keyword at all.
  • MK Adult Recovery has 61 referring domains but 0 ranking keywords. That's nearly diagnostic of a recent rebuild Google hasn't indexed — consistent with the empty robots.txt and missing sitemap.
  • Hillside has brand-name collision with another addiction-treatment facility (hillsideretreatdetox.com, DR 1.7) plus accidental traffic from a children's center in NY. Brand disambiguation is overdue.
  • Tarzana Recovery's blog ranks for things it shouldn't. Six different "Sunrise Detox" location queries (East Coast competitor brand) rank #3–#7 from a single blog post — capturing zero traffic but consuming crawl budget. /about also ranks #11 for "oasis tarzana" (another competitor).
  • NoHo is shipping 8 Webflow e-commerce template stub pages (/section-2-slider/back-to-school-deals, /holiday-specials-2023, /summer-sale-2023, etc.) as part of a publicly indexed behavioral-health site. Delete or noindex immediately.

6. Performance: mobile is broken across the portfolio#

PageSpeed Insights, homepage only, Lighthouse 12 lab data, 2026-05-13.

Site Mobile perf Mobile LCP Mobile TBT Mobile CLS Desktop perf Desktop LCP
Tarzana Recovery 🔴 49 47.1 s 40 ms 0.154 🔴 41 13.2 s
Hillside Recovery 🔴 33 91.8 s 1,480 ms 0.154 🟠 52 2.3 s
NoHo Recovery 🟠 63 3.9 s 440 ms 0.154 🟠 77 1.0 s
MK Adult Recovery 🟠 62 18.7 s 180 ms 0 🟠 62 1.5 s
lumaMind 🔴 46 3.4 s 25,440 ms 0 n/a — NO_FCP

Repeating patterns:

  • Same CLS = 0.154 on three sites (Tarzana, Hillside, NoHo) — they share a Webflow template with a layout shift built in. Fix once, fix three times.
  • Render-blocking JavaScript plus 18–20 MB payloads on Tarzana and Hillside cause unrunnable mobile LCP (47 s, 92 s). The autoplaying YouTube hero on Tarzana and the heavy image gallery on Hillside both pile on top of jQuery and the Webflow runtime bundle.
  • Best Practices score 100 on MK and lumaMind, but mobile LCP still fails on MK (18.7 s) because the /recovery-cms list is inlined into the homepage. A page can be technically clean and still be too slow.
  • lumaMind is broken in production, not just slow. Real-user verification on 2026-05-13: the page times out before paint. Lighthouse desktop fails with NO_FCP; mobile reports 25 s of TBT and 39 s of main-thread CPU for a 6 KB stub. Treat as P0 — replace with a static coming-soon page this week, park, or sunset the domain.

7. Analytics coverage is uneven#

Site GTM GA4 (inferred via GTM) CallRail Meta Pixel
Tarzana Recovery GTM-KV2HJD37 verify
MK Adult Recovery
NoHo Recovery
Hillside Recovery GTM-MC744H3M verify
lumaMind

Two sites (MK, NoHo) currently cannot answer the question "how much traffic do we get?" — every visit and every call is invisible to attribution. This is the highest-priority fix in the entire portfolio.

8. CMS-content overlap between MK and NoHo#

Both mkbehavioralhealth.com and nohorecovery.com use the same /recovery-cms/* slug pattern with what appears to be the same program library (alumni-program, art-therapy, barbershop, boxing, brain-mapping, breathwork-and-meditation, car-wrapping, comedy-therapy, dual-diagnosis, family-day, MAT, mentorships, etc.). If the page content is duplicated verbatim, Google will treat one or both as thin or duplicate — diluting rankings on both sites.

Action: confirm whether copy is shared verbatim. If yes, pick a canonical home for each program and use rel=canonical from the duplicate, or substantially differentiate the copy.

9. Portfolio-level keyword cannibalization risk#

Tarzana Recovery, Hillside, NoHo, and MK all target overlapping queries in the Los Angeles / San Fernando Valley addiction-treatment space. Without an explicit keyword-territory map, they will compete with each other in the same SERPs.

Recommended split (illustrative; finalize after a keyword-gap pass):

Site Owns Avoids
Tarzana Recovery "luxury", "holistic", residential Outpatient-only terms
Hillside residential, "get away", retreat Outpatient, urban
NoHo Recovery "innovative", "creative", North Hollywood Generic "rehab los angeles"
MK Adult Recovery activity-based programs, MAT Generic "rehab los angeles"

The shared playbook (apply once per Webflow project)#

These changes should be made on every site in the portfolio in the same week.

  1. Enable Webflow sitemap auto-generation (Project Settings → SEO → Auto-generate sitemap.xml).
  2. Populate robots.txt with:
    User-agent: *
    Allow: /
    Sitemap: https://www.<domain>/sitemap.xml
    
  3. Enable canonical-tag auto-emit (Project Settings → SEO).
  4. Fill the per-page Title and Description fields on every page. Establish a 60-/160-character convention site-wide.
  5. Add a shared custom-code embed for JSON-LD (MedicalBusiness / LocalBusiness) per project, parameterized by NAP and license.
  6. Add OG and Twitter-card defaults at the project level with per-page overrides where needed. Use a standard 1200×630 social image.
  7. Verify Google Search Console (domain property) and Bing Webmaster Tools for each.
  8. Install GTM, GA4, and CallRail on every site that doesn't yet have them (MK, NoHo, lumaMind). Use a single GTM container per site with a documented event catalog.
  9. Set up GA4 conversion events for form submit, phone click, and insurance-verification submit.
  10. Take a baseline performance snapshot with PSI on the homepage + two inner pages, mobile + desktop, for each site. Store JSON exports under each site's content/assets/<slug>/.
  1. Week 1. measurement plumbing.. Install GTM/GA4/CallRail on MK, NoHo, lumaMind. Verify Search Console on all five.
  2. Week 1. technical baseline.. Apply the shared playbook (sitemap, robots, meta, OG, schema) across all five Webflow projects.
  3. Week 2. content cleanup.. Rewrite title tags + meta descriptions for top 10 pages on each site. Fix heading hierarchy.
  4. Week 2. Ahrefs deep-dive.. Pull headline metrics, top pages, keyword gaps, and competing domains per site. Build the portfolio keyword-territory map.
  5. Week 3. lumaMind decision.. Build out, park, or sunset.
  6. Week 4. performance pass.. Address PSI findings, especially the YouTube autoplay embed on Tarzana Recovery and any image-weight issues.

Data still to collect#

This portal is a living document. The items below should be backfilled as the data becomes available.

  • Ahrefs headline metrics for each site (Domain Rating, organic traffic, organic keywords, referring domains).
  • Ahrefs Top Pages, Top Keywords, Competing Domains for each.
  • Ahrefs Site Audit health score per site.
  • PSI scores (mobile + desktop) for homepage + 2 inner pages per site Needs a Google Cloud PSI API key in PSI_API_KEY.
  • Screaming Frog crawl per site to populate the per-page audit tables.
  • Verification of GA4 events firing and CallRail call attribution.

Drop raw exports in content/assets/<slug>/ and update the per-site markdown files.