# /admin/ mit Schrägstrich ist nicht SvelteKit, sondern der SI-Connect-Passthrough
# zum Webhost (docs/architecture/si-connect.md). Der antwortet dort mit 403, also
# kann die Route kein ausliefern wie der Rest der
# NOINDEX_PREFIXES in src/lib/seo/robots.ts (Ausgabe in src/routes/+layout.svelte).
# Googlebot hat /admin/ dreimal
# gecrawlt (31.08., 02.09., 05.09.2026) und die 403 als Indexierungsfehler in der
# Search Console gemeldet. Der Disallow nimmt den Anlass weg. Nur mit
# Schrägstrich: /admin ohne Slash geht an SvelteKit und behält sein noindex.
#
# Zwei Fallen, beide beim Bauen dieser Datei aufgelaufen:
# 1. Keine Leerzeile zwischen User-agent und Disallow. Eine Leerzeile beendet die
# Gruppe, der Disallow gehörte dann zu keinem User-agent mehr.
# 2. Kein "Allow: /" mehr. Google wertet die spezifischste Regel aus und käme mit
# Allow klar, aber Parser nach dem Erst-Treffer-Prinzip (u.a. Pythons
# urllib.robotparser) nehmen "Allow: /" und erlauben damit auch /admin/.
# Ohne die Zeile ist ohnehin alles erlaubt, was kein Disallow trifft.
#
# /auth/login?redirect= und /auth/signup?redirect= (10.10.2026): die
# Anmeldeseiten mit Rücksprungziel. Bis dahin hängte das Max-Widget auf jeder
# Seite zwei Links mit ?redirect= an, auf den Anmeldeseiten selbst
# verschachtelte sich das endlos, und Metas Crawler holte in 14 Tagen rund
# 320.000 Mal Login und Signup. Die Ursache ist im Code behoben
# (authReturnPath), die Regel hält den Raum auch dann zu, wenn wieder jemand
# einen solchen Link baut. Bewusst nicht /auth/ ganz: die nackten Seiten bleiben
# abrufbar, damit Google ihr noindex weiter sieht. Bewusst mit "redirect=" und
# nicht nur mit "?": Parser, die das Muster normalisieren (u.a. Pythons
# urllib.robotparser), werfen ein leeres "?" weg und sperren dann auch die
# nackte Seite. Reine Präfixe ohne Platzhalter.
User-agent: *
Disallow: /admin/
Disallow: /auth/login?redirect=
Disallow: /auth/signup?redirect=
Sitemap: https://stein.investments/sitemap.xml