## Summary - Closes the public-page gaps from #124: each route gets its own title, description, canonical, heading, links, and JSON-LD, and unknown URLs have a real 404 document. - Adds HeyCatch and the Google tag (`G-V12DLRLPWR`) only on the production site and the iOS and Android apps. Tianji still loads on beta. - Needs the server-infra change that stops serving the app shell for missing paths. ## Test plan - [ ] Build production and confirm `/` and `/pricing/` HTML include a unique title, description, canonical, one h1, social tags, related links, and Organization JSON-LD. - [ ] Confirm a nonsense path is served as `404.html` once the nginx change is deployed. - [ ] Confirm beta and local web do not load HeyCatch or gtag, and that a production or native build does. - [ ] Open the live site after deploy and click around, then mark HeyCatch installed in its dashboard. Reviewed-on: #125
49 lines
2.3 KiB
HTML
49 lines
2.3 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<title>The page is not found — Hesychia</title>
|
|
<meta name="description" content="The page is not found. This address is not a Hesychia page. Open the home page to read what the product does, what it costs, and how to start an account." />
|
|
<meta property="og:title" content="The page is not found — Hesychia" />
|
|
<meta property="og:description" content="The page is not found. This address is not a Hesychia page. Open the home page to read what the product does, what it costs, and how to start an account." />
|
|
<meta property="og:url" content="https://hesychia.ai/404.html" />
|
|
<meta property="og:image" content="https://hesychia.ai/og-image.png" />
|
|
<meta property="og:image:width" content="1200" />
|
|
<meta property="og:image:height" content="630" />
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
<meta name="twitter:title" content="The page is not found — Hesychia" />
|
|
<meta name="twitter:description" content="The page is not found. This address is not a Hesychia page. Open the home page to read what the product does, what it costs, and how to start an account." />
|
|
<meta name="twitter:image" content="https://hesychia.ai/og-image.png" />
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@graph": [
|
|
{
|
|
"@type": "WebPage",
|
|
"headline": "The page is not found — Hesychia",
|
|
"url": "https://hesychia.ai/404.html",
|
|
"mainEntityOfPage": "https://hesychia.ai/404.html"
|
|
},
|
|
{
|
|
"@type": "Organization",
|
|
"name": "Hesychia",
|
|
"url": "https://hesychia.ai",
|
|
"logo": "https://hesychia.ai/apple-touch-icon.png",
|
|
"parentOrganization": {
|
|
"@type": "Organization",
|
|
"name": "AI ML Operations, LLC",
|
|
"url": "https://www.aimloperations.com"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<h1>Not Found</h1>
|
|
<p>The page is not found, and this address is not a Hesychia page.</p>
|
|
<p>Open the home page to read what the product does, what it costs, and how to start an account.</p>
|
|
<nav aria-label="Related pages"><a href="/">What Hesychia is</a><a href="/pricing/">Hesychia pricing — $10/month, no ads</a><a href="/privacy/">What Hesychia stores and does not sell</a><a href="/changelog/">Dated Hesychia product updates</a></nav>
|
|
</body>
|
|
</html>
|