From abf66d80177ef05b1d3791d73def12bbe0d40bde Mon Sep 17 00:00:00 2001 From: OpenClaw Date: Fri, 20 Feb 2026 11:02:11 +0000 Subject: [PATCH] feat: add SEO fundamentals (robots.txt, sitemap, OG tags, JSON-LD, canonical) and 404 page --- public/404.html | 53 ++++++++++++++++++++++++++++++++++++++++++++++ public/index.html | 31 +++++++++++++++++++++++++++ public/robots.txt | 4 ++++ public/sitemap.xml | 9 ++++++++ src/index.ts | 2 +- 5 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 public/404.html create mode 100644 public/robots.txt create mode 100644 public/sitemap.xml diff --git a/public/404.html b/public/404.html new file mode 100644 index 0000000..b3c5ade --- /dev/null +++ b/public/404.html @@ -0,0 +1,53 @@ + + + + + +404 — Page Not Found | SnapAPI + + + + + + +
+
+
404
+

Page Not Found

+

The page you're looking for doesn't exist or has been moved.

+ +
+
+ + + diff --git a/public/index.html b/public/index.html index ab79481..54938f4 100644 --- a/public/index.html +++ b/public/index.html @@ -193,6 +193,37 @@ footer{border-top:1px solid var(--border);padding:48px 24px 32px;background:var( .trust-badges{flex-direction:column;align-items:center;gap:12px} } + + + + + + + + + + diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..bd02298 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Allow: / +Disallow: /v1/ +Sitemap: https://snapapi.eu/sitemap.xml diff --git a/public/sitemap.xml b/public/sitemap.xml new file mode 100644 index 0000000..5511f6d --- /dev/null +++ b/public/sitemap.xml @@ -0,0 +1,9 @@ + + + https://snapapi.eu/weekly1.0 + https://snapapi.eu/docsmonthly0.8 + https://snapapi.eu/statusalways0.3 + https://snapapi.eu/impressum.htmlyearly0.2 + https://snapapi.eu/privacy.htmlyearly0.2 + https://snapapi.eu/terms.htmlyearly0.2 + diff --git a/src/index.ts b/src/index.ts index b1d4bc2..b9f1876 100644 --- a/src/index.ts +++ b/src/index.ts @@ -130,7 +130,7 @@ app.use((req, res) => { if (req.path.startsWith("/v1/") || req.path.startsWith("/api")) { res.status(404).json({ error: "Not Found: " + req.method + " " + req.path }); } else { - res.status(404).sendFile(path.join(__dirname, "../public/index.html")); + res.status(404).sendFile(path.join(__dirname, "../public/404.html")); } });