Files
deepstock/public/404.html
Dorian 425e56c0ca feat: SEO crawlability + on-brand copy
Make every served byte crawlable without executing JS, remove off-brand
copy, and cut third-party requests.

- Copy: replace off-brand terms (survival/crisis/collapse) in title, meta,
  OG/Twitter, JSON-LD and webmanifest with on-brand preparedness copy.
  Update App.vue i18n page_title/meta_description (EN+DE) too, since the app
  overwrites the head at runtime. Reconcile area count to the real 6.
- Prerender: vite-plugin-seo-snapshot injects a static <noscript> snapshot
  (real <h1>, content, <a href>) after #app. JS users ignore <noscript>, so
  the live app/UX is unchanged; curl/no-JS crawlers get real content.
- 404: nginx now returns true 404s on unknown paths (no soft-200 SPA
  fallback) with a branded 404 page.
- Sitemap: drop no-op hreflang alternates, add <lastmod>.
- Fonts: self-host Space Mono / DM Serif Display / Barlow (woff2, latin +
  latin-ext, font-display: swap); preload above-the-fold faces. No more
  fonts.googleapis/gstatic requests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 08:20:19 +01:00

36 lines
1.2 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="robots" content="noindex, follow"/>
<title>Page not found — Plan-B</title>
<link rel="icon" href="/images/favicon.svg" type="image/svg+xml"/>
<style>
:root { color-scheme: light; }
html, body { height: 100%; margin: 0; }
body {
display: flex; align-items: center; justify-content: center;
background: #FAFAFA; color: #2a3010;
font-family: "Barlow", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
text-align: center; padding: 2rem;
}
.wrap { max-width: 32rem; }
h1 { font-size: 3.5rem; margin: 0 0 .5rem; font-weight: 600; letter-spacing: -0.02em; }
p { font-size: 1.125rem; line-height: 1.6; margin: 0 0 1.75rem; color: #4a5340; }
a.home {
display: inline-block; padding: .75rem 1.5rem; border-radius: .5rem;
background: #5A9A78; color: #fff; text-decoration: none; font-weight: 500;
}
a.home:hover { background: #4d8567; }
</style>
</head>
<body>
<div class="wrap">
<h1>404</h1>
<p>This page isnt here. The plan still is — head back to the start and check your household readiness.</p>
<a class="home" href="/">Back to Plan-B</a>
</div>
</body>
</html>