Area: Cross-cutting infra (audit p14) · Surface: PageController render calls + legal/db-page.php + seo-head.php · Dimension: improve-existing · Severity: minor
For a public-facing community, the About page and any custom landing page are prime SEO real estate. Competitors that let owners build pages also let them set the page's meta description, social-share (OG) image, and indexability — Circle, Mighty, and Discourse all expose per-page SEO. Mobieus already has the rendering plumbing (seo-head.php reads $pageDescription/$jsonLd/$noIndex) but the page editors expose none of it and store none of it, so every CMS/legal page inherits the theme-level default OG card and a generic description. A tenant cannot make their About page share nicely on social or rank for their niche.
Evidence
seo-head.php supports per-page meta (seo-head.php:51 `$ogDesc = $pageDescription ...`, :26 `$noIndex`, :28 `$jsonLd`) but the page controllers never pass them. PageController.php:84-89 renderLegalPage passes only breadcrumbs/pageTitle/bodyHtml/updatedAt — no pageDescription, no ogImage, no robots. about() (PageController.php:27-35) hard-codes pageDescription to a generic string and ignores any per-page value. The legal_pages/site_pages tables (both migrations) have no meta_description/og_image/robots columns.
Suggested fix. Add meta_description, og_image, and robots columns to site_pages/legal_pages, add the fields to the editors, and pass them through in PageController so seo-head.php emits per-page meta and social cards.
Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.
Patrick Bass
@mobieus