diff --git a/public/llms.txt b/public/llms.txt
new file mode 100644
index 0000000..811d219
--- /dev/null
+++ b/public/llms.txt
@@ -0,0 +1,51 @@
+# Antonio Ledebuhr
+
+Fullstack and DevOps engineer in Tangermünde. The public site documents a curated set of stations, four service areas, and a local mailto briefing. German is the default language; English is the full second version.
+
+## Profile
+
+- https://antoniolede.de/
+- https://antoniolede.de/en
+- https://antoniolede.de/ueber-mich
+- https://antoniolede.de/en/about
+
+## Services
+
+- https://antoniolede.de/leistungen
+- https://antoniolede.de/en/services
+- https://antoniolede.de/leistungen/software
+- https://antoniolede.de/en/services/software
+- https://antoniolede.de/leistungen/hardware-netzwerk
+- https://antoniolede.de/en/services/hardware-network
+- https://antoniolede.de/leistungen/cluster
+- https://antoniolede.de/en/services/clusters
+- https://antoniolede.de/leistungen/ai-integration
+- https://antoniolede.de/en/services/ai-integration
+
+## Projects
+
+- https://antoniolede.de/projekte
+- https://antoniolede.de/en/projects
+- https://antoniolede.de/projekte#innofocus
+- https://antoniolede.de/en/projects#innofocus
+- https://antoniolede.de/projekte#roesterei
+- https://antoniolede.de/en/projects#roesterei
+- https://antoniolede.de/projekte#myspa
+- https://antoniolede.de/en/projects#myspa
+- https://antoniolede.de/projekte#hdi
+- https://antoniolede.de/en/projects#hdi
+
+## Contact, stack and legal
+
+- https://antoniolede.de/kontakt
+- https://antoniolede.de/en/contact
+- https://antoniolede.de/stack
+- https://antoniolede.de/en/stack
+- https://antoniolede.de/impressum
+- https://antoniolede.de/en/legal-notice
+- https://antoniolede.de/datenschutz
+- https://antoniolede.de/en/privacy
+
+## Languages
+
+German URLs are unprefixed. English URLs live under `/en`. Each public page exists in both locales.
diff --git a/public/robots.txt b/public/robots.txt
new file mode 100644
index 0000000..f813705
--- /dev/null
+++ b/public/robots.txt
@@ -0,0 +1,4 @@
+User-agent: *
+Allow: /
+
+Sitemap: https://antoniolede.de/sitemap.xml
diff --git a/public/sitemap.xml b/public/sitemap.xml
new file mode 100644
index 0000000..d9beeed
--- /dev/null
+++ b/public/sitemap.xml
@@ -0,0 +1,147 @@
+
+
+
+ https://antoniolede.de/
+
+
+
+
+
+ https://antoniolede.de/leistungen
+
+
+
+
+
+ https://antoniolede.de/leistungen/software
+
+
+
+
+
+ https://antoniolede.de/leistungen/hardware-netzwerk
+
+
+
+
+
+ https://antoniolede.de/leistungen/cluster
+
+
+
+
+
+ https://antoniolede.de/leistungen/ai-integration
+
+
+
+
+
+ https://antoniolede.de/projekte
+
+
+
+
+
+ https://antoniolede.de/stack
+
+
+
+
+
+ https://antoniolede.de/ueber-mich
+
+
+
+
+
+ https://antoniolede.de/kontakt
+
+
+
+
+
+ https://antoniolede.de/impressum
+
+
+
+
+
+ https://antoniolede.de/datenschutz
+
+
+
+
+
+ https://antoniolede.de/en
+
+
+
+
+
+ https://antoniolede.de/en/services
+
+
+
+
+
+ https://antoniolede.de/en/services/software
+
+
+
+
+
+ https://antoniolede.de/en/services/hardware-network
+
+
+
+
+
+ https://antoniolede.de/en/services/clusters
+
+
+
+
+
+ https://antoniolede.de/en/services/ai-integration
+
+
+
+
+
+ https://antoniolede.de/en/projects
+
+
+
+
+
+ https://antoniolede.de/en/stack
+
+
+
+
+
+ https://antoniolede.de/en/about
+
+
+
+
+
+ https://antoniolede.de/en/contact
+
+
+
+
+
+ https://antoniolede.de/en/legal-notice
+
+
+
+
+
+ https://antoniolede.de/en/privacy
+
+
+
+
+
diff --git a/src/app/app.config.ts b/src/app/app.config.ts
index 1dd33b8..1a09aed 100644
--- a/src/app/app.config.ts
+++ b/src/app/app.config.ts
@@ -1,9 +1,15 @@
import { ApplicationConfig, provideBrowserGlobalErrorListeners } from '@angular/core';
-import { provideRouter, withComponentInputBinding, withInMemoryScrolling } from '@angular/router';
import { provideClientHydration, withEventReplay } from '@angular/platform-browser';
+import {
+ provideRouter,
+ TitleStrategy,
+ withComponentInputBinding,
+ withInMemoryScrolling,
+} from '@angular/router';
+import { routes } from './app.routes';
import { SITE_CONTENT } from './core/content/content.token';
import { SITE_CONTENT_DATA } from './core/content/site-content';
-import { routes } from './app.routes';
+import { SeoTitleStrategy } from './core/seo/seo-title.strategy';
export const appConfig: ApplicationConfig = {
providers: [
@@ -18,5 +24,6 @@ export const appConfig: ApplicationConfig = {
),
provideClientHydration(withEventReplay()),
{ provide: SITE_CONTENT, useValue: SITE_CONTENT_DATA },
+ { provide: TitleStrategy, useClass: SeoTitleStrategy },
],
};
diff --git a/src/app/app.html b/src/app/app.html
index a2f466b..ce3b096 100644
--- a/src/app/app.html
+++ b/src/app/app.html
@@ -1,21 +1,24 @@
{{ shell().skipLink }}
-