Skip to content

fix(marketing): tighten SEO meta lengths across 36 pages (audit #12-14) - #87

Merged
ejay-dev merged 1 commit into
mainfrom
fix/marketing-seo-meta-length
May 13, 2026
Merged

fix(marketing): tighten SEO meta lengths across 36 pages (audit #12-14)#87
ejay-dev merged 1 commit into
mainfrom
fix/marketing-seo-meta-length

Conversation

@ejay-dev

Copy link
Copy Markdown
Owner

Summary

Three related findings in docs/audit/2026-05-13-marketing-audit.md:

Each rewrite mirrors the page's existing positioning — no new claims, no scope shift. Where a page has separate openGraph/twitter description overrides, both were updated so social previews and SERP stay aligned.

After this PR: zero titles >60, zero descriptions >170, zero descriptions <100 across app/(marketing)/**.

Test plan

  • CI green
  • Spot-check a Vercel preview SERP-style view: title + description for /, /pricing, /healthcare-compliance-platform, /trust/sla
  • After merge, validate one or two with the Google URL Inspection tool to confirm the new strings show

, #14)

Three related findings from docs/audit/2026-05-13-marketing-audit.md:

- #12 MED: 20 page titles over 60 chars (Google truncates ~60)
- #13 MED: 13 meta descriptions over 170 chars (truncates ~155-160)
- #14 MED: 10 meta descriptions under 100 chars (wasted SERP)

Each rewrite mirrors the page's existing positioning - no new claims,
no scope shift. Approach per category:

- Long titles: collapse the brand suffix and the trailing qualifier
  ("Healthcare Compliance Platform - Clinical Governance &
  Accreditation | FormaOS" 78c -> "Healthcare Compliance Platform |
  FormaOS" 40c).
- Long descriptions: drop redundant trailing fluff while keeping the
  vertical-list and value claim (homepage 219c -> 151c).
- Short descriptions: expand from one-line summaries to ~130-150c
  using the page's actual content (trust/sla 89c -> 129c).

Where a page also had openGraph/twitter description overrides, both
were updated so social previews and SERP stay aligned.

Verified post-rewrite: zero titles >60, zero descriptions >170,
zero descriptions <100. tsc --noEmit clean.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 13, 2026 14:12
@vercel

vercel Bot commented May 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
forma-os Ready Ready Preview, Comment May 13, 2026 2:15pm

Request Review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c382802942

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread app/(marketing)/page.tsx
export const metadata: Metadata = {
title:
'FormaOS - Compliance Operating System for Australian Regulated Industries',
'Compliance Operating System for Regulated Industries',

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep the homepage title branded

Because the marketing layout uses title.template: '%s' (checked app/(marketing)/layout.tsx), this string is emitted exactly as the root page title. Removing FormaOS here means the homepage browser/search title and matching share metadata become a generic “Compliance Operating System…” label, unlike the rest of the marketing pages and the previous root title; root URL search/social snippets lose brand attribution in production.

Useful? React with 👍 / 👎.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR tightens SEO titles and meta descriptions across marketing pages to better fit SERP/social preview length targets while preserving page positioning.

Changes:

  • Shortens long marketing page titles across industry, comparison, pricing, and trust pages.
  • Expands short meta descriptions on trust/legal/action pages.
  • Updates some Open Graph and Twitter metadata to stay closer to page-level metadata.

Reviewed changes

Copilot reviewed 36 out of 36 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
app/(marketing)/page.tsx Shortens homepage SEO/social metadata.
app/(marketing)/pricing/page.tsx Shortens pricing title and updates description.
app/(marketing)/contact/page.tsx Shortens sales contact title.
app/(marketing)/features/page.tsx Rewrites features description.
app/(marketing)/integrations/page.tsx Tightens integrations description.
app/(marketing)/industries/page.tsx Shortens industries titles.
app/(marketing)/enterprise/page.tsx Shortens enterprise title/description.
app/(marketing)/our-story/page.tsx Expands story description.
app/(marketing)/roadmap/page.tsx Tightens roadmap description.
app/(marketing)/changelog/page.tsx Shortens changelog title.
app/(marketing)/terms/page.tsx Expands terms metadata description.
app/(marketing)/legal/page.tsx Expands legal metadata descriptions.
app/(marketing)/evaluate/page.tsx Expands Evaluate metadata descriptions.
app/(marketing)/prove/page.tsx Expands Prove metadata descriptions.
app/(marketing)/what-is-a-compliance-operating-system/page.tsx Tightens explainer description.
app/(marketing)/audit-evidence-management/page.tsx Shortens audit evidence title.
app/(marketing)/soc2-compliance-automation/page.tsx Shortens SOC 2 title.
app/(marketing)/iso-compliance-software/page.tsx Shortens ISO title.
app/(marketing)/ndis-providers/page.tsx Shortens NDIS provider titles.
app/(marketing)/ndis-compliance-system/page.tsx Shortens NDIS system title/description.
app/(marketing)/healthcare-compliance/page.tsx Shortens healthcare compliance titles.
app/(marketing)/healthcare-compliance-platform/page.tsx Shortens healthcare platform title/description.
app/(marketing)/financial-services-compliance/page.tsx Shortens finance compliance metadata.
app/(marketing)/construction-compliance/page.tsx Shortens construction compliance metadata.
app/(marketing)/childcare-compliance/page.tsx Shortens childcare compliance metadata.
app/(marketing)/customer-stories/page.tsx Shortens customer stories titles.
app/(marketing)/compare/page.tsx Rewrites comparison index description.
app/(marketing)/compare/6clicks/page.tsx Shortens 6clicks comparison titles.
app/(marketing)/compare/complispace/page.tsx Shortens CompliSpace comparison titles.
app/(marketing)/compare/healthmetrics/page.tsx Shortens HealthMetrics comparison titles.
app/(marketing)/compare/riskware/page.tsx Shortens Riskware comparison titles.
app/(marketing)/trust/data-handling/page.tsx Expands data handling descriptions.
app/(marketing)/trust/incident-response/page.tsx Expands incident response descriptions.
app/(marketing)/trust/procurement/page.tsx Expands procurement descriptions.
app/(marketing)/trust/sla/page.tsx Expands SLA descriptions.
app/(marketing)/trust/subprocessors/page.tsx Expands subprocessors descriptions.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

title: 'Compare FormaOS vs AU Compliance Platforms',
description:
'Compare FormaOS against Ideagen Policy Logic, Riskware, 6clicks, and HealthMetrics. See how operational compliance execution beats traditional GRC and clinical-reporting tools for NDIS, aged care, and healthcare.',
'Compare FormaOS to HealthMetrics, CompliSpace, Riskware, and 6clicks across pricing, frameworks, evidence integrity, and audit-readiness.',
@github-actions

Copy link
Copy Markdown

♿ Accessibility Test Results

PASSED - No critical accessibility issues found

Tests Performed:

  • WCAG 2.1 AA compliance validation
  • Cross-browser accessibility testing
  • Keyboard navigation testing
  • Screen reader compatibility
  • Color contrast validation

Artifacts: Download the accessibility reports from the "Artifacts" section for detailed results.

@ejay-dev
ejay-dev merged commit 212c46f into main May 13, 2026
33 checks passed
@ejay-dev
ejay-dev deleted the fix/marketing-seo-meta-length branch May 13, 2026 14:40
ejay-dev added a commit that referenced this pull request May 14, 2026
Final PR of the Phase D pricing redesign pass. Closes the
remaining §N+2 D-* findings from the marketing audit.

D-5 (real bug — hydration gap)
------------------------------
The hero's "View pricing" CTA points at #pricing-table. That id was
on a <section> inside PricingTiers, which is rendered behind a
DeferredSection IntersectionObserver — so the id was absent from
the initial SSR HTML and the anchor click had nothing to scroll
to until the user had already scrolled near the section. Fixed by
adding a stable <div id="pricing-table" scroll-mt-24 /> sibling
immediately before the DeferredSection in PricingPageContent. The
inner <section> drops its id to avoid duplicate-id violations and
carries a comment explaining where the anchor lives.

D-7 (no commercial change)
--------------------------
User chose to surface the existing "cancel anytime" framing as the
de-facto trial rather than invent a commercial trial that doesn't
exist (the FAQ explicitly says "No"). Two moves:

1. The per-tier trustNote string moved from a small 11px line
   below the price to a visible bordered chip with a check icon,
   placed between the price block and the CTA. Emerald check on
   the featured (Growth) tier, slate on the others.

2. The Enterprise tier's trustNote was rephrased from
   "Annual agreements · invoice billing · custom SLA" to
   "Sandbox walkthrough · security review pack · custom SLA" —
   surfacing the evaluation path that already exists in the
   FAQ (sandbox tenant + guided walkthrough for procurement)
   instead of leading with billing mechanics.

D-1, D-4, D-2, D-3 — verifications / annotations only
-----------------------------------------------------
- D-1 verified against live (`curl https://www.formaos.com.au/pricing`):
  $297 / $797 / $1,800 all in SSR HTML. Audit claim was stale.
- D-4 was already closed across #89 (hero version-badge strip) and
  #90 (comparison-table footer status). Annotation only.
- D-2 / D-3 already shipped in #87 (meta-length pass). Annotation only.
- D-6 (the "anchored to risk" CTA sentence) is preserved untouched
  through #89, #90, and this PR.

The audit doc §N+2 entries are annotated with each item's
resolution and the PR that closed it.

Co-authored-by: ejaz <ejaz@local>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants