[object Object]

← back to Fabricut Internal

SEO: dynamic sitemap on public + noindex robots on internal

e200a18a976b1bfe1261571b7705f19e3c701fb2 · 2026-08-20 11:02:31 -0700 · Steve Abrams

Files touched

Diff

commit e200a18a976b1bfe1261571b7705f19e3c701fb2
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu Aug 20 11:02:31 2026 -0700

    SEO: dynamic sitemap on public + noindex robots on internal
---
 server.js | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/server.js b/server.js
index bcc7d21..1cdcc37 100644
--- a/server.js
+++ b/server.js
@@ -15,6 +15,9 @@ app.use(require('compression')());
 // Unauthenticated health probe (deploy smoke test + uptime monitors) — BEFORE the auth gate.
 app.get('/healthz', (_req, res) => res.json({ ok: true, products: SNAP.products.length, dataMtime: LAST_REFRESH }));
 
+// Internal site — NEVER index. robots served pre-auth so crawlers see the Disallow.
+app.get('/robots.txt', (_req, res) => res.type('text/plain').send('User-agent: *\nDisallow: /\n'));
+
 // HTTP Basic Auth — internal-only gate (username + password). Override via
 // BASIC_AUTH="user:pass"; defaults to the DW standard admin / DW2024!.
 const [AUTH_USER, AUTH_PASS] = (process.env.BASIC_AUTH || 'admin:DW2024!').split(':');

← 99da24c Fabricut microsite (fabricut-internal): DW-branded self-cont  ·  back to Fabricut Internal  ·  Internal admin cards: add created date+time chip (Steve stan dba7a17 →