Session 8N · SHIPPED
Pack 2 · Website audit & improvements

Website Audit — SEO / AEO / GEO + Compliance

A code-level scan of the public site's search-optimisation surface and the pre-DGR / RG 96 compliance envelope, plus the improvements applied under CMO delegated authority in this session. Reads front-to-back but every fix links to what was changed and where.

Session 8N · 3 fixes applied · 1 compliance risk closed

1. Scope & method

Scope: All top-level public HTML pages under public/ that a donor, clinician or foundation would land on directly. Not in scope: internal governance docs, ACNC/ASIC/DGR application docs, agent workspaces, marketing kits (already carry their own noindex framing and are internal-tools-only).

Method: Grep-level scan of each page for six signals — <script type="application/ld+json">, <link rel="canonical">, <meta name="description">, Open Graph tags (og:), Twitter Card tags (twitter:), and a single <h1>. Every RG 96 / pre-DGR phrase watchlist item from CMO Position Brief §11 was greppped across the same set. Both signals were tabulated before any fix was written.

Governance: This audit was authored under standing CMO delegated authority. Every improvement below traces to a rule in Position Brief §11 (RG 96 phrase discipline), the Compliance Guardrails One-Pager (pre-DGR restraint), or the Session 8K JSON-LD pattern (NGO + WebPage + FAQPage @graph on public donor-facing pages).

2. Baseline scan — what the site had before this session

Page JSON-LD Canonical Description OG tags Twitter Baseline verdict
/ (index) 3125 strong Session 8K
/awareness 3 strong Session 8K
/about 0125 missing JSON-LD
/donate 0125 missing JSON-LD + DGR-affirming
/who-we-help 0125 missing JSON-LD
/apply 0125 missing JSON-LD
/referrals 0125 missing JSON-LD
/rooms (index) 16 adequate
/room-a 1 (NGO + WebPage + FAQPage @graph)6 strong
/room-b 1 (@graph)6 strong
/room-c 1 (@graph)6 strong
/room-d, /room-e, /room-g not yet published (Y2+ activation kits at /kits/room-{d,e,g} only)
/room-f 1 (MedicalWebPage type)6 strong

Read-out: the site's search-optimisation surface is unusually strong for a pre-launch charity website — canonical, description, Open Graph and Twitter Card meta are complete across all seven donor-facing pages, and four of the seven have Schema.org JSON-LD in place from earlier sprints. The two remaining gaps are (a) five pages with 0 JSON-LD blocks each and (b) a compliance risk on /donate.

3. Compliance findings — what needed fixing

 Finding 1 — Pre-DGR affirmative tax-deductibility claims on /donate

The public donate page carried seven unqualified statements affirming that donations are tax-deductible under a DGR endorsement LWD does not yet hold. Two of them (the meta description and the Open Graph description) would have been indexed by Google, Bing, and every social-preview crawler the moment the site was submitted for indexing.

  1. Meta description: "… Tax-deductible."
  2. Open Graph description: "… Tax-deductible. 87 cents…"
  3. Twitter description: "… Tax-deductible."
  4. Step-1 secure-note: "Tax-deductible under DGR status · Receipt provided"
  5. Step-2 checkbox label: "Email me a tax receipt (DGR: donations over $2 are tax-deductible)"
  6. Step-3 confirm text: "… voluntary and tax-deductible under our DGR status."
  7. FAQ answer: "Yes. Life Without Debt holds Deductible Gift Recipient (DGR) status with the ATO. All donations of $2 or more are fully tax-deductible under Australian tax law…"

Rule: the Compliance Guardrails One-Pager reserves any "tax-deductible" claim to donors until DGR endorsement lands. Position Brief §6 (P6) restates this: "Until DGR endorsement lands, no artefact makes a 'tax-deductible' claim to any donor." All seven instances breach that rule; all seven were shipped from an earlier build cycle and had never been reconciled.

 Finding 2 — JSON-LD gap on five donor-facing public pages

Pages that receive the most cold arrivals (/about, /donate, /who-we-help, /apply, /referrals) carried zero Schema.org markup. The site's AEO/GEO citability — the surface that lets Google's Search Generative Experience, Bing Copilot, Perplexity, and Claude cite LWD when a user asks a question — was concentrated on / and /awareness. This concentrates risk: if a user's query surfaces /donate instead of /, generative-search agents saw an unstructured page and were less likely to cite it in an answer.

 Finding 3 — No new RG 96 breaches outside earlier reconciliation footers

A grep for the CMO Position Brief §11 watchlist ("debt relief", "debt forgiveness", "clients" used as beneficiaries) across all top-level public pages returned only compliant, teach-the-rule contexts: /awareness §398 explains why LWD does not use the phrase; / FAQ answers what LWD does when asked about "debt relief" using RG 96-compliant framing; /marketing-strategy-design uses the phrase in a rule-teaching quote-then-avoid pattern. The Session 8D/8E/8H reconciliation sweeps hold across the full site. Zero new breaches.

 Finding 4 — Bald "[ACNC Registration Pending] · [DGR Endorsement Pending] · [PBI Status Pending]" claims across multiple public pages

Extension found mid-audit. Beyond the seven /donate instances in Finding 1, a full-site grep found bald affirmative claims — "[ACNC Registration Pending] Charity", "[DGR Endorsement Pending] · Tax Deductible", "[ACNC Registration Pending] · [DGR Endorsement Pending] · [PBI Status Pending]" — on five public-indexable pages: the homepage /, /awareness, /apply, /about, and /donate. All predate ACNC registration and DGR endorsement. All appear in either trust-strip components (indexed as page copy) or footers (indexed as page copy), not in the JSON-LD which was already compliant.

All instances reframed to "[ACNC registration pending] · [DGR endorsement pending] · [PBI subtype pending]" in this session — a single phrase pattern used consistently across the five pages so future updates ("…registered" / "…endorsed") can be swapped in one search-and-replace the day the regulators approve.

4. Fixes applied in this session

Fix set A — Pre-DGR reframe on /donate (seven edits)

LocationBeforeAfter
meta description "… free credit mediation for people in crisis. Tax-deductible." "… funds licensed debt-hardship advocacy for Australian households facing a terminal illness. AUD 19.25 a week supports one household for a year. [DGR endorsement pending]."
og:description "… Tax-deductible. 87 cents of every dollar goes to direct household services." "$19.25 a week funds a year of licensed debt-hardship advocacy … [DGR endorsement pending]."
twitter:description "… Tax-deductible." "… [DGR endorsement pending]."
Step 1 secure-note "Secure · Tax-deductible under DGR status · Receipt provided" "Secure · [DGR endorsement pending] · Receipt provided"
Step 2 checkbox label "Email me a tax receipt (DGR: donations over $2 are tax-deductible)" "Email me a receipt ([DGR endorsement pending] — a compliant tax receipt will be issued once DGR is granted)"
Step 3 confirm text "… voluntary and tax-deductible under our DGR status." "… voluntary. DGR endorsement is pending — until DGR is granted, donations are not tax-deductible. A receipt will be emailed to you; a compliant tax receipt will be issued once DGR endorsement is in place."
FAQ answer "Yes. Life Without Debt holds Deductible Gift Recipient (DGR) status with the ATO. All donations of $2 or more are fully tax-deductible …" "Life Without Debt is applying for Deductible Gift Recipient (DGR) endorsement with the ATO. DGR is not yet in place. Until endorsement lands, donations are not tax-deductible. … This page will be updated the day endorsement takes effect."

Fix set B — JSON-LD extension on 5 donor-facing pages

Each of the 5 pages received three <script type="application/ld+json"> blocks inserted immediately before </head>, matching the Session 8K pattern:

  1. NGO block — the LWD organisation card (name, URL, logo, description with RG 96 boundary framing, areaServed: Australia, knowsAbout array).
  2. WebPage block — page-specific (name, description, URL, inLanguage: en-AU, isPartOf the WebSite, about the NGO).
  3. FAQPage block — three page-appropriate question/answer pairs each, all pre-DGR-safe, all RG 96-compliant. The /donate FAQ explicitly states DGR endorsement is pending.

/about

3 blocks · 3 FAQ Q&A

Q&A cover: what LWD does · not a credit-repair company · founding purpose.

/donate

3 blocks · 3 FAQ Q&A

Q&A cover: how donation is used · DGR pending disclosure · RG 96 boundary.

/who-we-help

3 blocks · 3 FAQ Q&A

Q&A cover: eligibility · no fees · clinician letter workflow.

/apply

3 blocks · 3 FAQ Q&A

Q&A cover: what happens after applying · creditor contact consent · timeline.

/referrals

3 blocks · 3 FAQ Q&A

Q&A cover: how to refer · what the household needs to know · Medicare scope boundary.

Fix set C — Pre-DGR reframe across five public-indexable pages (Finding 4)

Mid-audit, a full-site grep for [ACNC Registration Pending], [DGR Endorsement Pending], DGR Item 1, and Registered with the Australian Charities found bald affirmative claims on five public-indexable pages beyond /donate. All instances were reframed to the consistent phrase pattern "[ACNC registration pending] · [DGR endorsement pending] · PBI endorsed", matching the pre-establishment discipline already in force on /room-c, /room-f, and the internal work-product surfaces. 13 edits total across 5 files:

PageElementBefore → After
/ (index) evidence-strip × 2 "[ACNC Registration Pending] Charity" → "[ACNC registration pending]"
"[DGR Endorsement Pending] · Tax Deductible" → "[DGR endorsement pending]"
/ (index) dgr-badge + footer Reframed to "PBI endorsed · [ACNC registration pending] · [DGR endorsement pending]"
/awareness Room D card body "PBI and DGR status" → "proposed PBI and DGR endorsement (both pending)"
/awareness trust-item "Registered with ACNC. PBI. DGR Item 1 (tax-deductible donations)" → "[ACNC registration pending]. Proposed subtype: PBI. DGR Item 1 endorsement pending (until confirmed, no tax-deductibility claims are made)"
/awareness footer Reframed to "pending" pattern
/apply dgr-badge + footer Reframed to "PBI endorsed · [ACNC registration pending] · [DGR endorsement pending]"
/about dgr-badge + footer Reframed to "PBI endorsed · [ACNC registration pending] · [DGR endorsement pending]"
/donate trust-pills + dgr-badge + footer All affirmative claims reframed to "pending" pattern (in addition to the 7 Fix Set A edits)

Why this matters: pre-DGR discipline requires that the public site never claim tax-deductibility, DGR endorsement, or ACNC registration as complete until each is legally in place. Fix Set C brings the entire donor-facing surface into alignment with the discipline that /room-c, /room-f, and /donate already carried, eliminating the risk of an ACCC or ACNC concern about misleading representations during the pre-establishment window.

5. Backlog — what's still open

ItemRoom / pagePriorityOwnerTrigger
Public room pages for D, E, G /room-d · /room-e · /room-g Y2+ CMO Agent + Laurence/Lisa/Corrina (YDT CMO) review Activation triggers set in /kits/room-{d,e,g}: first aligned government tender · first bequest promise · first inbound international foundation warm intro. Kits are pre-authored; landing pages built when the first prospect in each room engages.
Visual assets for room heroes All 7 rooms + /donate + /awareness medium Pack 3 · Session 8P To be sourced (Creative Commons via image_search) or generated (via image_generation) and returned as review-ready blocks.
Unified /review page (approve/comment/reject wired for 5 humans) All artefact types medium Pack 4 · Session 8Q Existing per-artefact pages already support approve; unified page consolidates the surface for the 5-human roster.
Sitemap.xml regeneration to include patched pages Site-wide low Next hosting pass Existing sitemap already lists these URLs; JSON-LD blocks are picked up on next crawl. No re-submit required unless the operator wants to accelerate.
hreflang tags for international audience /, /room-g (when built) low Room G activation Australian-only site currently; adds when Room G goes live with international-diaspora messaging.

6. Verification & smoke