Symptom

Google Sites Performance / Lighthouse audits of https://krillswarm.com flagged a cluster of issues that depressed the SEO and best-practices scores: the viewport meta tag disabled pinch-zoom, every page made a 404 request for a missing favicon-32x32.png, the PWA web manifest declared icon dimensions that did not match the file it pointed at, the <meta name="theme-color"> was hard-coded to #ffffff for both light and dark modes, and the SMTP-email-alerts post had no description: front-matter so its <meta> and og:description fell back to a truncated body excerpt. On top of that, every page fired GA4 page_view twice (once via analytics/google.html, once via analytics/firebase.html) because both blocks loaded gtag.js with the same measurement ID.

Root cause

Each finding traced to a single line of template / config drift that slipped past the GH-Pages deploy because Pages does not run Lighthouse or schema validation:

Fix

Patches are minimal and contained to docs/:

A regression-guard DocsSeoTest lives in server/src/jvmTest/ and asserts each of the bad shapes (literal user-scalable=no, the missing PNG link, the white theme-color override, the wrong manifest sizes, the duplicate GA4 id, and posts missing description:) is gone. The PR Verify workflow runs :server:jvmTest, so a regression on any of these fails CI before GH Pages deploys.

Prevention