From cac0c3e1b58fe66d4f82c9a397fb43633df5a363 Mon Sep 17 00:00:00 2001
From: PianoNic <79938743+Pianonic@users.noreply.github.com>
Date: Fri, 6 Nov 2026 15:06:10 +0100
Subject: [PATCH 1/3] Add web app title, description, noindex and robots.txt
---
src/Schuly.Frontend/public/robots.txt | 5 +++++
src/Schuly.Frontend/src/index.html | 4 +++-
2 files changed, 8 insertions(+), 1 deletion(-)
create mode 100644 src/Schuly.Frontend/public/robots.txt
diff --git a/src/Schuly.Frontend/public/robots.txt b/src/Schuly.Frontend/public/robots.txt
new file mode 100644
index 0000000..3538f13
--- /dev/null
+++ b/src/Schuly.Frontend/public/robots.txt
@@ -0,0 +1,5 @@
+User-agent: *
+Allow: /login
+Disallow: /
+
+Sitemap: https://schuly.dev/sitemap.xml
diff --git a/src/Schuly.Frontend/src/index.html b/src/Schuly.Frontend/src/index.html
index a026500..a9cb76c 100644
--- a/src/Schuly.Frontend/src/index.html
+++ b/src/Schuly.Frontend/src/index.html
@@ -2,7 +2,9 @@
- Schuly
+ Schuly – Web-App
+
+
From 61c07be2a9ae5b22e4cee5609858ddb96258366a Mon Sep 17 00:00:00 2001
From: PianoNic <79938743+Pianonic@users.noreply.github.com>
Date: Fri, 6 Nov 2026 15:18:42 +0100
Subject: [PATCH 2/3] Let search engines index the web app's public pages
---
src/Schuly.Frontend/public/robots.txt | 7 +++++--
src/Schuly.Frontend/src/index.html | 1 -
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/Schuly.Frontend/public/robots.txt b/src/Schuly.Frontend/public/robots.txt
index 3538f13..daa7485 100644
--- a/src/Schuly.Frontend/public/robots.txt
+++ b/src/Schuly.Frontend/public/robots.txt
@@ -1,5 +1,8 @@
User-agent: *
-Allow: /login
-Disallow: /
+Allow: /
+Disallow: /api/
+Disallow: /auth/
+Disallow: /mcp
+Disallow: /connect/
Sitemap: https://schuly.dev/sitemap.xml
diff --git a/src/Schuly.Frontend/src/index.html b/src/Schuly.Frontend/src/index.html
index a9cb76c..c0b559b 100644
--- a/src/Schuly.Frontend/src/index.html
+++ b/src/Schuly.Frontend/src/index.html
@@ -4,7 +4,6 @@
Schuly – Web-App
-
From 1f65d555ce15d49d3bbef60e202527f65ceab4d9 Mon Sep 17 00:00:00 2001
From: PianoNic <79938743+Pianonic@users.noreply.github.com>
Date: Fri, 6 Nov 2026 15:20:47 +0100
Subject: [PATCH 3/3] Keep pages behind the login out of search
---
src/Schuly.Frontend/public/robots.txt | 8 +++-----
src/Schuly.Frontend/src/app/app.ts | 19 ++++++++++++++++---
2 files changed, 19 insertions(+), 8 deletions(-)
diff --git a/src/Schuly.Frontend/public/robots.txt b/src/Schuly.Frontend/public/robots.txt
index daa7485..b971124 100644
--- a/src/Schuly.Frontend/public/robots.txt
+++ b/src/Schuly.Frontend/public/robots.txt
@@ -1,8 +1,6 @@
User-agent: *
-Allow: /
-Disallow: /api/
-Disallow: /auth/
-Disallow: /mcp
-Disallow: /connect/
+Allow: /login
+Allow: /register
+Disallow: /
Sitemap: https://schuly.dev/sitemap.xml
diff --git a/src/Schuly.Frontend/src/app/app.ts b/src/Schuly.Frontend/src/app/app.ts
index 9c4b330..c709d39 100644
--- a/src/Schuly.Frontend/src/app/app.ts
+++ b/src/Schuly.Frontend/src/app/app.ts
@@ -1,7 +1,11 @@
-import { Component } from '@angular/core';
-import { RouterOutlet } from '@angular/router';
+import { Component, inject } from '@angular/core';
+import { Meta } from '@angular/platform-browser';
+import { NavigationEnd, Router, RouterOutlet } from '@angular/router';
import { HlmToasterImports } from '@spartan-ng/helm/sonner';
+// Only the sign-in and register pages may show up in search; everything else is behind a login or a one-off link.
+const INDEXABLE = new Set(['/login', '/register']);
+
@Component({
selector: 'app-root',
imports: [RouterOutlet, HlmToasterImports],
@@ -10,4 +14,13 @@ import { HlmToasterImports } from '@spartan-ng/helm/sonner';
`,
})
-export class App {}
+export class App {
+ constructor() {
+ const meta = inject(Meta);
+ inject(Router).events.subscribe((e) => {
+ if (!(e instanceof NavigationEnd)) return;
+ const path = e.urlAfterRedirects.split(/[?#]/)[0];
+ meta.updateTag({ name: 'robots', content: INDEXABLE.has(path) ? 'index, follow' : 'noindex, nofollow' });
+ });
+ }
+}