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' }); + }); + } +}