# Live-site audit (July 2026, re-measured 2026-09-02)

The evidence base for the rebuild of equinoxbusinesslaw.com: what the live site is, what is
wrong with it, what is good, and what the client has already decided to change. First audited
2026-07-27..31 for the proposal (sent 2026-07-30, accepted 2026-08-13); re-measured by direct
inspection of the live site on 2026-09-02. Where the two disagree, the 2026-09-02 figure is used
and the difference is written out.

Date key: "July audit" = 2026-07-27..31. "2026-09-02" = the re-measurement (page source, Yoast
sitemaps, REST API). Tags: `[CLIENT DECISION 2026-08-27]` = already decided by the client, see
the last section; `[TBC: who]` = unknown, with the person who confirms it.

Naming: the lead-capture tool is "the Business Legal Health Assessment (name to be confirmed)",
then "the assessment". Team = 9 bios (8 live + Nicole Farahdel). Posts = 513 published as of
2026-09-02. States: Washington first, Oregon secondary, Colorado retained; DC and VA removed.

Commercial reasoning from the internal notes is deliberately omitted; this file is evidence only.

---

## 1. Platform

| Item | Finding | Evidence / date |
|---|---|---|
| Theme | `html5blank` plus a child theme. A bare starter theme: no design system, no template controls, nothing an editor can safely change. | July audit; confirmed 2026-09-02 |
| Page builder | Beaver Builder (`bb-plugin`) plus UABB (Ultimate Addons). Every page is a Beaver Builder layout; page content lives in builder meta, not blocks, and is not portable. | July audit named BB PowerPack; 2026-09-02 saw `bb-plugin` + UABB. Use UABB; PowerPack presence `[TBC: Rian, from the exported site]` |
| Posts | 513 published, stored as plain classic HTML (not builder, not Gutenberg). They migrate cleanly. | REST `X-WP-Total` = 513, 2026-09-02; storage format from the July audit |
| Tags | 1,004 tags registered. | REST `X-WP-Total`, 2026-09-02 |
| SEO plugin | Yoast SEO. All live SEO meta and every sitemap are Yoast's. | 2026-09-02 |
| Forms | Gravity Forms; forms 1, 2 and 3 seen (newsletter and contact). | 2026-09-02 |
| Filtering | Search & Filter Pro installed (57 asset references on the home page) but not filtering the blog index. Client-owned licence; load-bearing for the sold blog filtering. | 2026-09-02; July audit |
| Lazy load | Rocket Lazy Load present. May not survive the migration; lazy loading must be re-established. | 2026-09-02 |
| Cookie consent | Usercentrics via Termageddon. Client-owned subscription; re-attach after migration. | 2026-09-02 |
| REST API | Open and responding 200. AISV's OpenForge publishing depends on it. Do not break it. | July audit; every REST call on 2026-09-02 returned 200 |
| Custom taxonomy | `article-type` is empty (no posts) but still emits a Yoast sitemap with 4 term URLs. Retire it. | July audit; recount 2026-09-02 |
| Other plugins seen in page source | Site Kit (`google-site-kit` assets load; whether it is what emits the hard-coded Google tag `[TBC: Rian, from the exported site]`); Termageddon + Usercentrics plugin 1.13.0 (settings id `a64YOmRJxHylNS`); a WP Armour honeypot field (`wpa_`); a Constant Contact signup-widget script (`static.ctctcdn.com`). | Home-page capture 2026-09-02; re-verify at the tag audit. Dispositions in `.logs/planning/tracking-conversion.md` |

Why this is a rebuild rather than patches (proposal, 2026-07-30): the platform blocks AISV's
Phase 02 publishing engine. Content drafted straight into WordPress by OpenForge arrives
unstyled next to Beaver Builder pages; on a block-based framework new content inherits the
design.

---

## 2. SEO and entity layer

### 2.1 Titles and headings

- Home `<title>` is exactly "Home - Equinox Law Group". Nothing else. (July audit; 2026-09-02.)
- Two `<h1>` on every page (2026-09-02; the July audit said "on the homepage"). One `<h1>` is
  the logo link wrapping commented-out image markup, which renders as a stray `-->`; the other
  is the real heading. On the homepage the visible hero line ("Strategic legal counsel for
  entrepreneurs") sits in an `<h2>`. The planning session corrected the proposal's first draft:
  the defect is the two H1s, not "hero in a subheading".
- Homepage visible copy is roughly 400 words: thin for the queries AISV wants to win. A content
  problem, not a platform problem. (Measured 2026-07-27..31.)
- All practice areas share one URL, one title and one meta description (see 3.5).
- Site-wide title and metadata findings from the 2026-09-03 crawl are in 2.7; they extend this
  section from "the home title" to "every title on the site".

### 2.2 JSON-LD state (Yoast default graph, 2026-09-02)

- Graph types present: `Organization`, `WebPage`, `BreadcrumbList`, `WebSite`. On posts Yoast
  also emits an author `Person` node (2.3).
- Brand-name conflict inside the graph: `WebSite.name` = "Equinox Law Group";
  `Organization.name` = "Equinox Business Law Group". Two entity names for one firm.
- `Organization.sameAs` = LinkedIn and YouTube only.
- Absent entirely: address, telephone, `areaServed`, `LegalService`, `ProfessionalService`,
  `Attorney`, `LocalBusiness`, `Person` entities for the team, `Service`, `FAQPage`.
- Name variants visible on the site: footer copyright "Equinox Law Group PLLC"; Gravity Forms
  consent text "Equinox Business Law Group PLLC"; email signature "Equinox Business Law Group".
  The canonical legal entity to use is Equinox Business Law Group PLLC `[TBC: client, via Alicia
  Wimmer]`.
- Rule for the rebuild: no hand-written JSON-LD. Schema is `bw-ai-schema-pro` configured; see
  `.logs/planning/schema-entity-plan.md`, `/srv/projects/standards/wordpress.md` and
  `/srv/apps/bw-plugins/wp-content/plugins/bw-ai-schema-pro/docs/SPEC-team-survey.md`.

### 2.3 Author entities

- Michelle Bomberger's author `Person` (July audit): Gravatar mystery-man placeholder image, no
  `jobTitle`, no `sameAs`, no `worksFor`; its `url` points to `/blog/author/michelle/` (a bare
  WordPress archive), not to her bio at `/about-us/legal-team/michelle-bomberger/`.
- Author archives are bare WordPress defaults (July audit).
- Attribution is wrong on at least some posts. One random sample in the July audit,
  `/blog/know-what-you-dont-know/`, credits guest author David Heyting of Hersman Serles Almond
  in the body copy while the schema credits Michelle. With 513 posts this is assumed systemic;
  the proposal caps the fix as "audit and correct where text and data disagree", not "fix every
  post".
- Alicia Wimmer: a bio URL `/about-us/legal-team/alicia-megrath/` was recorded on 2026-09-02 in
  one place, while the Yoast page sitemap lists `/about-us/legal-team/alicia-wimmer/`; her author
  slug is `aliciam`. A name change. The new site uses one canonical slug and redirects the
  other; `alicia-wimmer` is the default `[TBC: Alicia Wimmer]`, with a redirect from
  `alicia-megrath`. Whether both URLs resolved on 2026-09-02 was not checked `[TBC: Rian, from
  the exported site]`.

### 2.4 FAQ

- No FAQ content anywhere on the live site (July audit).
- Google stopped showing FAQ rich results in Search on 2026-05-07. FAQ content on the new site
  is built for AI answer engines and for buyers, not for rich snippets. AISV's Phase 01 plan
  still describes FAQ schema as a search-surfacing tactic; flag to AISV, do not repeat the claim.
- Ready content exists: the brand story's objection-handling section is four Q&A pairs ("We
  Only Call a Lawyer When Something Comes Up", "We Cannot Justify Hiring In-House Legal
  Counsel", "We Are Worried About Unpredictable Legal Bills", "Nothing Is Wrong Right Now").

### 2.5 Sitemaps (Yoast, recount 2026-09-02)

| Sitemap | URL count | Note |
|---|---|---|
| `page-sitemap.xml` | 32 | Full list in 3.1 |
| `author-sitemap.xml` | 7 | List in 3.3 |
| `category-sitemap.xml` | 51 | 51 with posts; 68 registered, see 3.4 |
| `article-type-sitemap.xml` | 4 | Empty taxonomy still emitting URLs; retire |

### 2.6 Breadcrumbs — schema only, nothing visible (2026-09-03)

- **No visible breadcrumb trail anywhere.** Checked on Home, `/contact/`,
  `/our-approach/general-counsel/` and `/practice-areas-industry/`: no breadcrumb element, no
  `aria-label="breadcrumb"`, nothing rendered above the page title. A visitor two levels deep
  has no indication of where they are or how to get back up.
- **Yoast nonetheless emits a correct `BreadcrumbList` in the JSON-LD graph on every one of
  those pages** (General Counsel: Home > Our Approach > General Counsel Solutions). The
  structured data therefore describes a navigation aid the site does not have. Every
  "breadcrumb" string in the source is inside the JSON-LD, not in the markup.
- Breadcrumbs are sold and already planned: a visible Kadence trail on every template except
  Home (`.logs/planning/site-architecture.md`, `.logs/planning/build-plan.md`), with
  `BreadcrumbList` emitted by `bw-ai-schema-pro` and Yoast's graph switched off
  (`.logs/planning/schema-entity-plan.md`, "Breadcrumbs and headings"). This entry is the
  measured "before" for that deliverable.

### 2.7 Titles, metadata and the internal link graph (98-page crawl, 2026-09-03)

Source: `notes/crawl/context_crawler_equinoxbusinesslaw.com_2026-09-03T11-53-54.json`, a
link-following crawl captured 2026-09-03T11:53Z — 98 URLs, 64,065 words. **It is a partial
crawl** (71 of 513 posts) and it is a *sample*, not an inventory: never quote its page or post
counts. Two of its own summary fields are wrong about the site and are corrected below. Every
claim in this section was re-verified against raw page source before being written down.

**Titles carry the wrong firm name, site-wide.** All 96 titled pages end in "- Equinox Law
Group": "Home - Equinox Law Group", "Contact - Equinox Law Group", "About Us - Equinox Law
Group", and so on. The July audit and 2.1 recorded this for the home page only; it is in fact
the entire title layer. Together with `WebSite.name` (2.2) that is two separate site-wide
surfaces naming the firm "Equinox Law Group", against `Organization.name` and the form consent
text saying "Equinox Business Law Group". This is the strongest single piece of evidence for the
canonical-entity deliverable (`.logs/planning/schema-entity-plan.md`).

**Every page emits two `<meta name="description">` tags: an empty one, then Yoast's real one.**
Verified in raw source on `/`, `/contact/`, `/our-approach/general-counsel/` and
`/practice-areas-industry/`: `<meta name="description" content="">` appears first, followed by a
populated Yoast tag (home: "Equinox Business Law for Entrepreneurs and Small Business in the
state of Washington offers a fixed monthly cost..."). The theme (`html5blank`) hard-codes the
empty one. **Correction to the crawl:** its `pages_with_description: 0` is an artifact of reading
the first tag only — the site is not missing descriptions, it is emitting conflicting duplicates.
The sold deliverable ("a unique title and meta description" per URL,
`.logs/planning/build-plan.md`) must therefore *remove a duplicate*, not just write copy.
Likewise `pages_with_schema: 0` is an artifact: Yoast's JSON-LD graph is present on every page
(2.2, 2.6).

**Correction to the crawl on headings.** It reports 259 `H1`s across 96 pages (66 pages with
three). Raw source says otherwise: `/`, `/our-approach/general-counsel/` and
`/practice-areas-industry/` have **two** `<h1>`, `/contact/` has **three**. The crawler
over-counts. 2.1 stands as written; contact is the one page above two.

**The primary navigation is five items.** From the home page's rendered nav: About Us · Our
Approach · Our Team · Blog · Legal Health Check (plus the broken logo link that renders `-->`,
2.1). Contact sits in a separate top bar. **Neither the practice areas nor the general counsel
offer appears in the primary navigation at all** — the proposal's nav requirement, measured.

**The General Counsel page is effectively orphaned.** `/our-approach/general-counsel/` returns
200 and has a real description ("Our fixed-fee General Counsel Service offers your business the
support of in-house counsel..."), but: it is not in the navigation; it received **zero inbound
internal links across all 98 crawled pages**; the link-following crawl never reached it; and the
only legacy route toward it, `/general-counset/`-style shortcut `/general-counsel/`, **301s to
`/our-approach/` — the parent, not the page**. One blog post
(`/blog/the-platinum-rule-of-company-culture/`) links `/general-counsel`, so a reader who clicks
it lands on Our Approach and never sees the offer. The firm's core service, and the subject of
AISV's whole 12-month plan, cannot be reached by a visitor who does not already know its URL.

**Header strapline, live on 2026-09-03:** "Strategic Legal Counsel for Businesses located in WA,
OR, CO, VA & DC!" — still naming VA and DC after the client's 2026-08-27 instruction to remove
them (the live site is the client's and is not touched before launch; recorded here as the
"before"). Confirms the strapline exists and what it says, which the header state-list question
(`.logs/planning/design-direction.md`, Open inputs) turns on.

**The four policy pages are Termageddon JavaScript embeds, not page content.**
`/privacy-policy/`, `/cookie-policy/`, `/terms-of-service/` and `/disclaimer/` carry 21-23 words
of HTML each; the body reads "Please wait while the policy is loaded. If it does not load, please
click here to view the policy." Consequence for the sold "4 policy pages migrated directly"
(`.logs/planning/scope.md`): migrating them means **re-embedding the client's Termageddon
policies, not copying text** — there is no text in the database to copy. Second consequence: no
policy text is visible to search engines or AI answer engines today, and will not be after
migration either. That is normal for Termageddon and is not a defect to fix.

**Broken and legacy URLs found in the live link graph** (all for the redirect map,
`.logs/planning/site-architecture.md`):

| URL | Status 2026-09-03 | Note |
|---|---|---|
| `/about-us/team` | **404**, linked from `/our-approach/legal-health-check/` | A live broken internal link on the assessment page — the site's front door |
| `/general-counsel/` | 301 → `/our-approach/` | Lands on the parent, not the General Counsel page. Linked from one blog post |
| `/events/` | 301 → `/` | Events is gone; a page the inventory still lists to audit |
| `/about-us/legal-team/alicia-megrath/` | 301 → `/about-us/legal-team/alicia-wimmer/` | **Resolves the open question** in `.memory/naming-conflicts.md`: both URLs work, the old one already redirects. `/about-us/legal-team/` still links the `alicia-megrath` URL |
| `/blog-archive/` + `/blog-archive/page/2` … `/page/57` | 200 | A second blog index alongside `/blog/`, with all 57 pagination pages linked. Both need a disposition in the redirect map |
| `/danica-paddock/` | 200, 2 inbound links | Confirms the root-level bio noted in 3.1 |
| `/our-approach/a-la-carte-solutions/`, `/eula/`, `/newsletter-sign-up/` | 200, never reached by the crawl | Not linked from any of the 98 crawled pages; treat as orphan candidates and confirm from the exported site |

**Thin pages, by the crawl's word count** (its extraction method, so comparable within the crawl
only): `/about-us/legal-team/` 72 words · `/contact/` 80 · home 273 · `/danica-paddock/` 299 ·
`/our-approach/testimonials/` 360. The bios run 186-255. The home figure is the crawler's count
of extracted body text and does not contradict the July audit's "roughly 400 words"; both say
the same thing, which is that the home page is thin for the queries AISV wants to win.

---

## 3. Content and authors

### 3.1 Live page inventory (32 URLs, Yoast page sitemap, 2026-09-02)

Grouped the way `.logs/planning/site-architecture.md` disposes them (the plan owns
dispositions): 1 + 10 + 9 + 5 + 7 = 32.

Home (1)
- `/`

Core pages (10) (proposal: "8 to 10 core pages")
- `/about-us/`
- `/our-approach/`
- `/our-approach/general-counsel/`
- `/our-approach/legal-health-check/` (the assessment page)
- `/our-approach/a-la-carte-solutions/`
- `/our-approach/testimonials/`
- `/practice-areas-industry/`
- `/blog/`
- `/events/`
- `/contact/`

Team index and bios (9: index + 8 live) (one bio template; Mandy Bowen's bio is already absent
from the sitemap)
- `/about-us/legal-team/` (team index)
- `/about-us/legal-team/michelle-bomberger/`
- `/about-us/legal-team/laura-doehle/`
- `/danica-paddock/` (sits at root, not under the team; give it the team URL and redirect)
- `/about-us/legal-team/dominique-zett/`
- `/about-us/legal-team/devon-maxwell/`
- `/about-us/legal-team/leaf-ekaika/`
- `/about-us/legal-team/alicia-wimmer/` (see 2.3 on the `alicia-megrath` variant)
- `/about-us/legal-team/pamela-franklin/`

Policy and legal pages (5) (proposal counted 4; the sitemap has 5; migrate directly)
- `/terms-of-service/`
- `/privacy-policy/`
- `/cookie-policy/`
- `/disclaimer/`
- `/eula/`

Legacy / orphan pages (7) (proposal: "audit of roughly 6"; the plan adds `/newsletter-sign-up/`,
which is neither core nor orphan; migrate or retire with a redirect, one decision per page)
- `/newsletter-sign-up/` (recommended keep; see `.logs/planning/site-architecture.md`)
- `/covid-19-the-resources-your-business-needs/`
- `/recommendations-summary-form/`
- `/recommendations-summary-download/`
- `/business-health-assessment-download/` (probably the assessment's results/download step;
  confirm before retiring `[TBC: Rian with AISV]`)
- `/categories/`
- `/go-boldy-with-equinox/` ("Go Boldy" is also the firm's email-signature tagline; whether the
  spelling is intentional `[TBC: client]`)

Not in the page sitemap but present: the blog index paginates to 57 pages (July audit); author
archives (3.3); category archives (3.4).

### 3.2 Navigation, footer, social, logo (2026-09-02)

- Main nav: Home, About Us, Our Approach, Our Team, Blog, Legal Health Check, Contact. Services
  and the general counsel offer are not in the navigation at all (July audit). The proposal
  sells a navigation that surfaces both.
- Footer "Explore Equinox": Home, Our Approach, Testimonials, Practice Areas & Industry, Blog,
  About Us, Team, Contact.
- Footer "Community Involvement": EO Seattle, EO Portland, Women's Presidents Organization,
  Women in Finance, Seattle U Family Business Exchange, Bellevue LifeSpring, CFO Leadership
  Council. `[CLIENT DECISION 2026-08-27]` remove EO Portland and Women in Finance; five remain.
- Social links: twitter.com/equinoxlaw, facebook.com/Equinoxbusinesslaw,
  linkedin.com/company/equinox-business-law-group-pllc,
  youtube.com/channel/UCTEE4EFZH16GE-1zkiEvFUg. `[CLIENT DECISION 2026-08-27]` remove all
  mentions of Twitter and Facebook (links, icons, `sameAs`). LinkedIn and YouTube stay.
- Logo: the live logo is a 20th-anniversary variant. `[CLIENT DECISION 2026-08-27]` replace with
  the logo from the Brand Kit (SharePoint folder shared 2026-08-27; a person with SharePoint
  access pulls the assets into `notes/source/brand-kit/`).

### 3.3 Team and authors

Team page roster, live order with titles (2026-09-02), 8 people:

| # | Name | Title |
|---|---|---|
| 1 | Michelle Bomberger | CEO & Managing Attorney |
| 2 | Laura Doehle | COO & Integrator |
| 3 | Danica Paddock | Corporate Counsel |
| 4 | Dominique Zett | Director of Operations & Project Manager |
| 5 | Devon Maxwell | Corporate Paralegal |
| 6 | Leaf E'kaika | Operations Administrator |
| 7 | Alicia Wimmer | Sales & Marketing Operations Coordinator |
| 8 | Pamela Franklin | Sales & Customer Experience Officer |

`[CLIENT DECISION 2026-08-27]` remove Mandy Bowen (already absent from the sitemap; check the
exported database for a draft/private bio and a user account); add Nicole Farahdel, Corporate
Paralegal, no headshot or bio yet, placeholder acceptable. New site = 9 bios. The July audit's
"9 bios" included Mandy Bowen, so the proposal's "9 team bio pages" line is still the right
number.

Author archives in the Yoast author sitemap (7, 2026-09-02): `michelle`, `aliciam`,
`jessica-mcgarvie`, `danica-paddock`, `katie-robinson`, `johnequinoxbusinesslaw-com` (John
Butler), `andrew-shaw` (Andrew Shaw, Intern).

Users exposed by REST `/wp/v2/users` with public post counts (9, 2026-09-02):

| User | Posts |
|---|---|
| Alicia Wimmer | 43 |
| Andrew Shaw | 29 |
| Danica Paddock | 36 |
| Jessica McGarvie | 37 |
| John Butler | 31 |
| Katie Robinson | 35 |
| Michelle Bomberger | 20 |
| Pat Martinez | 39 |
| Ryan van Buuren | 42 |

Those counts sum to 312 of 513 posts; the remaining roughly 200 posts belong to accounts REST
does not list (or REST's counts differ from the database). Only three of the nine (Michelle
Bomberger, Danica Paddock, Alicia Wimmer) are on the current team.

Reconciliation, author counts: the proposal (2026-07-30) counts 14 authors with published
posts, 9 current team bios and 20 user accounts in total (July audit, method not recorded). On 2026-09-02
the sitemap shows 7 author archives and REST shows 9 users. None of these is the migration
roster. The exact roster (every account, role, post count, former/current) comes from the
exported database at migration time `[TBC: Rian]`; the client then decides per person whether
to keep the byline, reassign the posts, or retire the account. See
`.logs/planning/content-migration.md`.

Reconciliation, post count: proposal 510 (July; corrected from an earlier 511 by REST at the
time), strategy notes 511, 2026-09-02 REST 513. AISV has published since July and keeps
publishing, so a content freeze / sync plan is required (proposal "Content freeze" term).

Content age: much of the archive dates from 2010-2015 (SBA lending, the 2012 Seattle sick leave
ordinance). Pruning is AISV Phase 04 and is not in this scope. Migrate everything.

### 3.4 Blog categories

On 2026-09-02 the REST recount found 68 categories registered, of which 51 have a nonzero
public post count and 51 appear in the Yoast category sitemap; the other 17 are empty. (An
earlier draft of the ground truth said 52; 51 is the corrected figure.) Plan the migration
review against all 68.

The 51 with posts (slug, public post count, 2026-09-02):

| Slug | Posts | Slug | Posts |
|---|---|---|---|
| business-planning | 282 | data-security | 5 |
| entrepreneurship | 281 | cybersecurity | 4 |
| leadership | 212 | diversity-equity-and-inclusion | 4 |
| employment | 174 | facilities | 4 |
| corporate-governance | 75 | risk-management | 4 |
| general-counsel | 38 | finance | 3 |
| contracts | 28 | insurance | 3 |
| tax | 19 | ai | 2 |
| business-sale | 17 | family-business | 2 |
| intellectual-property | 16 | immigration | 2 |
| covid | 14 | oregon-law | 2 |
| data-privacy | 14 | remote-work | 2 |
| human-resources | 13 | website | 2 |
| washington-law | 12 | workplace-safety | 2 |
| legal-strategy | 11 | acquisition-2 | 1 |
| employer | 9 | business-transactions | 1 |
| case-studies | 7 | cash-flow | 1 |
| employment-law | 7 | ceo | 1 |
| business | 6 | estate-planning | 1 |
| community-service | 6 | hiring | 1 |
| company-culture | 6 | innovation | 1 |
| lease | 6 | interstate-commerce-2 | 1 |
| real-estate | 6 | operations | 1 |
| | | policies-procedures | 1 |
| | | sale-of-business | 1 |
| | | sales-business | 1 |
| | | training | 1 |
| | | uncategorized | 1 |

The 17 empty categories: ada-compliance, banking, charity-donations, compensation-2,
exit-planning, financing, franchise, fundraiser, joint-employment, manufacturing, marketing,
negotiation, patent-intellectual-property, seattle-city-ordinance, succession-planning,
trademark-intellectual-property, will.

What the numbers say:
- Four catch-all categories (business-planning, entrepreneurship, leadership, employment) carry
  most of the archive; posts are multi-categorised (counts sum far past 513), so category
  archives are near-duplicates of each other and of the blog index.
- Near-duplicate sets to merge or map: `employment` / `employment-law` / `employer`;
  `business-sale` / `sale-of-business`; `patent-intellectual-property` /
  `trademark-intellectual-property` / `intellectual-property`; `data-privacy` /
  `data-security` / `cybersecurity`. Slugs ending `-2` (`acquisition-2`,
  `interstate-commerce-2`, `compensation-2`) indicate a prior duplicate that was deleted.
- Two category names are double-encoded in the database ("Charity &amp;Amp; Donations",
  "Policies &amp;Amp; Procedures" as stored); fix the names on import.
- `uncategorized` and `covid` are live categories with posts.
- Category consolidation is NOT a sold deliverable. The proposal sells migration with
  categories intact and search plus category filtering on the index. Merging or mapping the
  near-duplicates above is an architecture recommendation to put to AISV (they own content
  strategy); any merge that changes a category URL must be covered by the redirect map (which
  is sold). Settle the taxonomy with AISV before blog filtering is built.

### 3.5 Practice-area page structure (single URL `/practice-areas-industry/`, 2026-09-02)

- "Services we offer" (6): Buying and Selling a Business/M&A; Contract Negotiation and
  Maintenance; Intellectual Property; Real Estate; Starting a Business; Succession and
  Transition Planning.
- Five service groups with sub-lists (47 items): Corporate Strategy (21), Sales (7), Human
  Resources (11), Property (4), Purchasing/Vendor Management (4).
- "Industries we serve" is rendered as images; no text extracted. The July audit said 5
  industries. Names `[TBC: Rian, from the exported site or the images]`.
- One URL, one title, one meta description for all of it. No individual practice-area pages.

Reconciliation, "nine practice areas": the proposal and strategy notes say "nine service areas
and five industries"; the 2026-09-02 structure is 6 headline services plus 5 grouped sub-lists.
Same page, different cut; use the 2026-09-02 structure.

Three cuts of the service taxonomy exist and are unreconciled: brand story = 4 groupings; live
site = practice areas plus industries; AISV deck = Owner / CFO / HR persona hubs. Settle with
AISV before any hub or practice-area architecture is built. The Practice Area and Topic Hub
Architecture add-on was not accepted on 2026-08-13; the base scope still includes `Service`
schema on practice-area content and a navigation that surfaces services.

**What the single URL costs (observed 2026-09-03).** Every service exists only as a heading
inside that one page: the six services are `h4`s and the five groups `h3`s. No service has its
own URL, title, meta description, internal-link target or schema node, so nothing per-service
can rank, be linked from a post, be pointed at by a campaign, or be entered from search — one
door for a dozen distinct buying intents. The page's own title, "Practice Areas & Industry", is
an `h2`; the `h1` is the logo link, which renders as `-->` (2.1). Per-service pages are the
Practice Area and Topic Hub Architecture add-on, which was **not accepted**
(`.memory/add-on-status.md`), so the base scope rebuilds this as one page and surfaces services
through the navigation. Recorded here because it is the structural reason the site cannot
support AISV's keyword and persona-hub plans; if that becomes the blocker, it is Rian's scope
conversation with the client, never a quiet addition.

### 3.6 General Counsel page (`/our-approach/general-counsel/`, 2026-09-02)

Three tiers, with no figures shown: Signature General Counsel, Legal Maintenance, Advisor. Two
levels deep under "Our Approach". This is the raw material for the Fractional General Counsel
Landing Page with Tiered Pricing add-on (client "interested, discuss further" on 2026-08-13;
pending, not yet accepted). Any tier figures come from the client; none appear in project docs.

---

## 4. Conversion and contact

### 4.1 Primary CTA and booking link

- Site-wide primary CTA is "Schedule a Meeting", linking to an Outlook `bookwithme` URL
  (`outlook.office.com/bookwithme/user/...@equinoxbusinesslaw.com`). One offer, maximum
  commitment, no intermediate step, no conversion event beyond whatever GTM catches. (July
  audit; 2026-09-02.)
- Sold replacement (proposal): paired CTAs site-wide. "Book a Consultation" = direct; "Take the
  Business Legal Health Assessment" = transitional. The brand story defines this pairing; the
  AISV deck calls the assessment "the front door"; both are right, carry both. Reusable CTA
  blocks, persistent header CTA, end-of-post CTAs, and separate GTM events for the two paths.
  See `.logs/planning/tracking-conversion.md`.
- **Re-verified 2026-09-03.** The home page still carries exactly one CTA, "Schedule a Meeting",
  pointing at the Outlook `bookwithme` URL. One button, one destination, off-site.
- **Recommendation (Adi, 2026-09-03): the direct CTA should submit an on-site consultation form
  with its own thank-you destination, not link out to Outlook.** The reason is measurement. An
  outbound link can only ever be measured as a *click*: the booking completes on Microsoft's
  domain, so there is no thank-you page to fire a conversion on and no way to separate a click
  that became a booked consultation from one that bounced off the scheduler. An on-site form
  gives a real conversion event on the Gravity Forms confirmation (`form_submit_contact`), plus
  the source attribution and light qualification that are already sold for clean Pipedrive
  routing — and AISV's Phase 01 "Instrument the pipeline" and weekly numbers review depend on
  exactly that. Trade-off the client owns: they lose Outlook's self-serve calendar picker, so
  someone has to reply to book the slot. **Not our decision to make** — it is open question 4 in
  `.logs/planning/tracking-conversion.md` (Direct CTA destination), which already encodes both
  branches; Rian puts the recommendation to Alicia Wimmer / Michelle Bomberger at the mockup
  review call. The design does not depend on the answer: the button is the same either way.

### 4.2 The assessment (`/our-approach/legal-health-check/`, 2026-09-02)

- Platform: a Typeform embed, `data-tf-widget="QIIINVqG"`, iframe title "BHA Survey", inside
  `id="bha-form"`. The page's CTAs link to the `#bha-form` anchor. This resolves the July
  audit's open question "what powers the form".
- Framing on the page: three pillars, Spirit / Mind / Body.
- Disclaimer wording on the page: the firm "is licensed to practice law in Washington, Idaho,
  and Oregon."
- Naming: "Legal Health Check" (site nav and URL), "Business Health Assessment" / "BHA" (AISV
  deck, iframe title), "Business Legal Health Assessment" (brand story). One name everywhere
  (nav, CTAs, page title, schema) `[TBC: AISV with the client]`.
- Related legacy pages: `/business-health-assessment-download/`,
  `/recommendations-summary-form/`, `/recommendations-summary-download/` (3.1). Whether
  Typeform delivers results to these pages `[TBC: Rian with AISV]`.
- Scope boundary: place, embed and instrument the existing Typeform as the front door.
  Rebuilding it as an interactive AI tool (AISV Creative Concept 03, "Smart BHA") is not in
  scope.

### 4.3 Contact page and location signals

- Contact page (July audit): no physical address, no map, no location content. One generic
  Gravity Form (name, email, company, subject, message), no routing or qualification. Form
  consent text names "Equinox Business Law Group PLLC". Phone on the site and signature:
  425-250-0205; general mailbox contact@equinoxbusinesslaw.com.
- Header/site-wide copy says the firm serves "WA, OR, CO, VA & DC" (July audit; the email
  signature read "WA, OR, CO, DC, and VA" through 2026-08-24). `[CLIENT DECISION 2026-08-27]`
  remove any mention of DC and VA; the signature changed to "WA, OR and CO", so Colorado stays.
  The proposal offered to drop CO too; the answer is keep WA, OR, CO.
- Licensing discrepancy to raise before writing any licensing language: the assessment page
  says Washington, Idaho and Oregon; the signature says WA, OR and CO. Idaho vs Colorado
  `[TBC: client, via Alicia Wimmer]`. Do not carry either sentence over unverified.
- The attorney-client-privilege disclaimer on the contact form is correct and carries over
  (proposal).
- Sold: rebuilt contact page with address and map, service-area presentation Washington-first,
  Gravity Forms rebuilt with light qualification and a source field so leads route cleanly into
  Pipedrive, `LocalBusiness`/`LegalService` schema with address and service area. Firm street
  address and hours `[TBC: client]` (not on the live site).
- **Verified 2026-09-03.** Fetched `/contact/`: no street address in the rendered page, and no
  `PostalAddress`, `streetAddress`, `addressLocality`, `addressRegion` or `postalCode` anywhere
  in its JSON-LD. The only "Bellevue" on the page is the footer's Bellevue LifeSpring community
  link. Beyond the phone number, the firm publishes no location at all.
- **Open question raised 2026-09-03 (Adi): does the firm have a client-facing office?**
  `[TBC: client, via Alicia Wimmer]` Every plan so far assumes the address merely has not been
  supplied yet. It may not exist — a remote-first or appointment-only firm has no street address
  to publish, and a law firm's registered agent address is not a visitor address. The answer
  changes three things: whether the Contact page gets a real address block and map at all;
  whether the schema entity is a `LegalService` with `address` and `geo` or one carrying
  `areaServed` only (`.logs/planning/schema-entity-plan.md`, Firm entity, records `address` as
  "to obtain from the client" and assumes it arrives); and how much Washington-first local signal
  the site can honestly carry. Ask it together with the canonical legal name and the billing
  address, both already outstanding since 2026-08-24. Never invent a street.

### 4.4 Blog index

57 pages of pagination, no search, no category filter, no author on cards (July audit). Search &
Filter Pro is installed and licensed but not doing this job. Sold: search plus category
filtering on the index, author display, end-of-post CTAs.

### 4.5 Design direction from the client `[CLIENT DECISION 2026-08-27]`

- "We find our current website visually busy and somewhat dated. We're looking for a more
  elevated, simplified look and feel."
- Remove team photos from the homepage. Keep at most one or two team photos across the whole
  site; remove elsewhere where design allows. Stock images are fine; no stock photos of people.
- Inputs: SharePoint Brand Kit and 2026 Brand Photo Shoot folders (shared 2026-08-27). The
  Design Mockup and Review Round was accepted 2026-08-13; Rian promised an initial mockup within
  a week of receiving inputs, then a review call. Nothing mocked up as of 2026-09-02. See
  `.logs/planning/design-direction.md`.

---

## 5. Performance

| Measure | Value | Evidence / date |
|---|---|---|
| Script tags on home | 64 `<script>` tags in total | 2026-09-02 |
| External scripts on home | 33 | July audit (external `<script src>` only) |
| Stylesheets on home | 19 (July audit said 18) | 2026-09-02 |
| jQuery | loaded | July audit |
| Search & Filter Pro assets | 57 references on the home page, where no filtering exists | 2026-09-02 |
| Lazy loading | Rocket Lazy Load | 2026-09-02 |

Reconciliation, scripts: 33 (July) vs 64 (2026-09-02) is a counting-method difference, not
growth. Quote both with their definitions; use 64 scripts / 19 stylesheets as the "before"
baseline for the Core Web Vitals report the proposal promises (home, a practice-area page, a
blog post; before and after; measured, not promised). Gravity Forms is the heaviest retained
asset; the proposal keeps it and promises conditional loading so form and filter assets load
only where used.

No Lighthouse / Core Web Vitals scores were recorded in any source `[TBC: Adi or Rian, measure
on the live site before migration starts and record here]`.

---

## 6. Tracking

IDs on the live site (2026-09-02):

| Tool | ID / marker |
|---|---|
| Google Tag Manager | container `GTM-TGTVD37` |
| Google tag | `GT-55KZDRZS` |
| GA4 stream | `G-PTGQ1K61M6` ("Equinox Website") |
| Hotjar | site id `3664447` |
| RB2B | reb2b script present |
| Meta pixel | connect.facebook.net present |
| Consent | Usercentrics via Termageddon; settings id `a64YOmRJxHylNS`, plugin 1.13.0 |

- The AISV deck (Phase 04 AI solutions) says "Reconnect Hotjar to see where visitors click", so
  at least one tag is misconfigured. Which, and whether fixing it is in scope `[TBC: AISV
  reports; Rian decides scope]`. The proposal's line is "we'll flag what we find".
- Sold: audit every tag before migration, re-implement and verify each on the new site, confirm
  data flowing post-launch before closing; CTA click and form submission events in GTM, tracked
  separately for the direct and transitional CTA paths.
- Access status (2026-08-27): Google Analytics granted; Google Search Console granted; Google
  Tag Manager blocked by "This tag's users are controlled by Google Analytics" (user access for
  that Google tag is managed from the GA4 admin, not the Tag page). Requested for
  rian@plusroi.com, adi@plusroi.com, plusroi@gmail.com. GTM access `[TBC: Alicia Wimmer]`.
- Meta pixel: the client asked to remove all mentions of Facebook (links, icons). Whether the
  Meta pixel itself stays for AISV's paid testing `[TBC: AISV]`; do not drop it silently.

---

## 7. What is good

- 513 posts are clean classic HTML. Not locked in the page builder; they migrate intact with
  categories, tags, dates and featured images.
- The REST API was open and healthy on 2026-09-02; AISV's OpenForge can publish into it as-is.
- The tracking stack is already in place (GTM, Google tag, GA4, Hotjar, RB2B, Meta pixel,
  consent). The project preserves and verifies; it does not build analytics from scratch.
- The heavy lifting is only 32 pages, 8 of them team bios off one template and 5 policy pages
  that migrate directly.
- Finished homepage copy exists in the brand story: hero, problem, stakes, guide, value
  proposition, three-step plan (Assess / Prioritize / Protect and Grow), transformation,
  before-and-after, who it's for, objection handling, assessment, final CTA, footer line. The
  homepage is built to real copy, not placeholders. It is roughly 12 sections, larger than the
  current home, and needs 3-4 patterns the site lacks (before/after comparison,
  objection-handling accordion, three-step process, grouped value proposition).
- FAQ content is ready on day one: the four objection-handling Q&A pairs.
- The assessment already exists and is embedded (Typeform `QIIINVqG`); the work is placement
  and instrumentation, not building a tool.
- The three general counsel tiers already exist on the General Counsel page; the landing-page
  add-on has raw material if taken.
- Licences worth reusing: Gravity Forms, Search & Filter Pro, Termageddon (client-owned; assumed
  active and transferable; if any lapsed, flag in week one `[TBC: Rian, week one]`).
- The attorney-client-privilege disclaimer on the contact form is correct; carry it over.
- The client is decisive and aligned: the audit findings "align closely with what we suspected"
  (acceptance 2026-08-13); the 2026-08-27 email answered every onboarding question the same day
  as the call.
- The community relationships are real: the AISV deck names EO Seattle, WPO, CFO Council and
  the Family Business Exchange; the footer list matches (minus the two the client is removing).

---

## 8. Already-decided changes (Alicia Wimmer, 2026-08-27; binding)

| # | Decision | Where it lands in the build |
|---|---|---|
| 1 | Remove all mentions of Twitter and Facebook | Social icons, footer, `Organization.sameAs`, any share buttons |
| 2 | Remove links to EO Portland and Women in Finance | Footer "Community Involvement" (5 remain) |
| 3 | Remove any mention of serving businesses in DC and VA; keep WA, OR, CO | Header, footer, contact page, `areaServed`, body copy |
| 4 | Replace the 20th-anniversary logo with the Brand Kit logo | Header, footer, favicon, `Organization.logo` |
| 5 | Team page: remove Mandy Bowen; add Nicole Farahdel, Corporate Paralegal (placeholder OK) | Team index, bio template, Person schema (9 bios) |
| 6 | "More elevated, simplified look and feel" | Design mockup round |
| 7 | No team photos on the homepage; at most one or two site-wide; stock OK but no stock photos of people | Design mockup, media plan |
| 8 | Hosting: the client chose PlusROI hosting (the Hosting add-on) | Launch target is PlusROI-managed hosting on this server |
| 9 | DNS to Cloudflare (agreed 2026-08-18; waiting on the client's web/email vendor as of 2026-08-27) | Rian gets super administrator at rian@rian.ca; domain move by Rian if given registrar access |

Also decided by acceptance on 2026-08-13: base scope plus the Hosting add-on plus the Design
Mockup and Review Round. Pending: the Fractional General Counsel Landing Page with Tiered
Pricing (interested, discuss further). Not accepted: the Practice Area and Topic Hub
Architecture (not mentioned).

---

## 9. Reconciliation summary

| Topic | Older figure | 2026-09-02 figure | Use |
|---|---|---|---|
| Published posts | 510 (proposal), 511 (strategy notes), both July | 513 (REST) | "513 as of 2026-09-02" |
| Pages | ~33 (July) | 32 in the Yoast page sitemap | 32, listed in 3.1 |
| Team bios | 9 (July, incl. Mandy Bowen) | 8 live; +1 Nicole Farahdel | 9 on the new site |
| Authors | 14 with posts / 20 accounts (July) | 7 author archives; 9 REST users (sum 312 of 513) | Roster from the exported DB at migration |
| Categories | 52 (earlier draft, superseded) | 51 with posts / 68 registered (17 empty) | 51 with posts; review all 68 |
| Scripts | 33 external (July) | 64 total `<script>` tags | Both, with definitions; 64 is the baseline |
| Stylesheets | 18 (July) | 19 | 19 |
| Practice areas | 9 service areas + 5 industries (July) | 6 services + 5 groups (21/7/11/4/4); industries as images | 2026-09-02 structure |
| Two H1s | "on the homepage" (July) | on every page | every page |
| Assessment platform | unknown (July) | Typeform `QIIINVqG` | Typeform |
| States | WA, OR, CO, VA, DC (live) | client: WA, OR, CO | WA first, OR secondary, CO retained; DC/VA removed |
| Page-builder addon | BB PowerPack (July) | UABB | UABB; PowerPack `[TBC: Rian, from the exported site]` |

## 10. Open items, with who confirms

| Item | Who |
|---|---|
| Canonical legal entity name for schema ("Equinox Business Law Group PLLC") | Client via Alicia Wimmer |
| Idaho vs Colorado licensing wording | Client via Alicia Wimmer |
| Firm street address and hours for the contact page and `LocalBusiness` schema | Client |
| One name for the assessment | AISV with the client |
| Final service taxonomy (4 groupings vs practice areas vs Owner/CFO/HR hubs) | AISV with the client; needed before nav and Service schema |
| Category consolidation: whether AISV wants any merges before launch (not in the sold scope; redirects for changed category URLs are) | AISV (content strategy) with Rian |
| Exact author/user roster, per-person keep/reassign/retire | Rian produces the list from the exported DB; client decides |
| Whether `alicia-megrath` and `alicia-wimmer` bio URLs both resolve | Rian, from the exported site |
| Industries list (rendered as images) | Rian, from the exported site |
| Which tag is misconfigured ("reconnect Hotjar") and whether the fix is in scope | AISV reports; Rian decides |
| Meta pixel retained after Facebook mentions are removed | AISV |
| GTM access | Alicia Wimmer (managed from the GA4 admin) |
| Licence status: Gravity Forms, Search & Filter Pro, Termageddon | Rian, week one |
| Typeform account ownership and whether results feed the download/summary pages | Rian with AISV |
| "Go Boldy" spelling | Client |
| Core Web Vitals baseline on the live site | Adi or Rian, before migration |
| Fractional General Counsel landing page add-on: accepted or not | Client (interested as of 2026-08-13) |
| Content freeze / sync plan with AISV during the build | Rian with AISV |
