Mockup — 2026-05-29. All data on this page is sample. Real data arrives once Norm's CLI POSTs to
/api/site-health/ingest on a schedule (target: Mon/Tue 2026-06-01). Bri: drop any "want this / hide that" feedback in the floating widget. Norm will align his POST body to whatever ships here.Analysis
Site Health
1,247 pages crawled · 86 issues to triage across 6 brands.
Critical
8
Fix today
High
24
Triage this week
Medium
41
Plan for next sprint
Low
13
Backlog
BrandSeverity
Issues by Brand
aceableagent.com31 issues / 412 pages
aceable.com18 issues / 287 pages
driversed.com17 issues / 244 pages
idrivesafely.com11 issues / 198 pages
insurance.aceable.com6 issues / 64 pages
mortgage.aceable.com3 issues / 42 pages
Suggested First Moves
- Fix 8 critical issues today — broken links + missing titles on high-traffic pages.
- Triage 24 high-severity this week — start with duplicate titles (cannibalization risk).
- Build out high-value linking opps — 2 flagged as high are on revenue-tied pages (TX exam-prep + INS pre-license).
- Decide orphan strategy — 1 high-traffic orphan (aceableagent.com career-center/texas/income-by-region 887 clicks/year, 1 inbound link) needs improve, not prune.
What we need from Norm's POST
Each scheduled crawl POSTs to /api/site-health/ingest with shared-secret auth. Body shape mirrors what's rendered above:
{
"ranAt": "<ISO 8601>",
"pagesCrawled": <number>,
"bySeverity": { "critical": n, "high": n, "medium": n, "low": n },
"byBrand": { "<domain>": { "pages": n, "issues": n }, ... },
"brokenLinks": [{ sourceUrl, brokenUrl, anchorText, status, brand, severity, detectedAt }],
"metadataIssues":[{ url, brand, issueType, current, detail, severity }],
"orphans": [{ url, brand, inboundLinks, organicTraffic12mo, lastUpdated, cluster, severity }],
"linkingOpps": [{ fromUrl, toUrl, brand, reason, anchorSuggestion, cluster, severity }]
}Severity tiers map to: critical = fix today (broken links on high-traffic pages, missing <title>), high = this week (duplicate titles, missing meta on indexed pages, orphan high-traffic pages, high-impact linking opps), medium = next sprint, low = backlog. Norm: feel free to push back on any of these — this is a starting point, not locked.