TL;DR
robots.txt sagt Crawlern, welche Pfade sie abrufen dürfen, es ist kein Privacy-Tool (dafür noindex + Auth). Im Next.js App Router generieren Sie es mit app/robots.ts (MetadataRoute.Robots), verweisen auf die Sitemap und begrenzen bewusst /api/, Staging und Admin. Ein versehentliches Disallow: / in Produktion oder blockiertes CSS/JS zerstört Indexierung und Rendering. Unten: Crawl-Budget für Service-Sites, sichere vs. gefährliche Regeln, Staging vs. Produktion auf DevStudioIT Cloud und eine Search-Console-Checkliste.
Für wen
- Next.js-(App-Router-)Entwickler mit technischem SEO
- Firmen nach Migration/Redesign oder mit „Discovered, not indexed“
- Teams mit getrenntem Staging und Produktion
- SEOs, die Crawl-Budget bei wachsendem Blog/Katalog steuern
- Alle, die ein Tutorial-
Disallow: /auf Live gelassen haben
Keyword (SEO)
robots.txt nextjs app router, crawl budget google 2026, disallow robots.txt fehler, metadataroute robots, search console robots.txt, staging noindex
Was robots.txt kann, und nicht kann
| Kann | Kann nicht |
|---|---|
| Pfade zum Überspringen vorschlagen | Privatsphäre garantieren (böswillige Bots ignorieren es) |
| Sitemap-Location bekannt geben | HTML-noindex ersetzen |
| Crawl-Budget auf Junk-URLs sparen | Bereits indexierte URLs löschen |
| Pro User-agent wirken | Menschen im Browser blocken |
Eine URL kann trotz Disallow im Index erscheinen (z. B. über Backlinks), oft ohne Snippet. Entfernung: noindex und optional GSC Removals.
Crawl-Budget, muss ein Dienstleister sich sorgen?
Bei 50–500 URLs (Angebot + Blog + Case Studies) ist Crawl-Budget selten der Engpass. Relevant wird es bei:
- Query-Parametern (
?utm_, Filter, Sortierung) als eigene URLs - Facetten-Navigation über Leistungen / Städte
- CMS mit tausenden Tags und paginierten Archiven
- Staging/Preview, das ins öffentliche Internet leakt
- APIs und Assets, die wie HTML-Seiten gecrawlt werden
Ziel von robots.txt: Crawls nicht an /api/, Preview, Admin, Parameter-Duplikate verschwenden, damit Google häufiger Angebot, Blog und Landings besucht.
Dynamische Inhalte (Case Studies aus PostgreSQL in Branchly) gehören trotzdem in die Sitemap, robots erfindet diese URLs nicht.
Next.js App Router, app/robots.ts
import type { MetadataRoute } from 'next';
const BASE = 'https://devstudioit.com';
const allowIndexing = process.env.ALLOW_INDEXING === 'true';
export default function robots(): MetadataRoute.Robots {
if (!allowIndexing) {
return {
rules: { userAgent: '*', disallow: '/' },
// keine Sitemap auf Staging
};
}
return {
rules: [
{
userAgent: '*',
allow: '/',
disallow: ['/api/', '/admin/', '/draft/', '/preview/'],
},
],
sitemap: `${BASE}/sitemap.xml`,
host: BASE,
};
}ALLOW_INDEXING=true nur in Produktion (DevStudioIT Cloud). Staging: Disallow: / und robots: { index: false } in Metadata, Defense in Depth.
Disallow-Regeln, sicher vs. Fallen
Sicher (typische Unternehmenssite)
User-agent: *
Allow: /
Disallow: /api/
Disallow: /admin/
Disallow: /draft/
Sitemap: https://devstudioit.com/sitemap.xmlGefährlich
| Regel | Wirkung |
|---|---|
Disallow: / in Produktion |
Gesamte Site für Crawler gesperrt |
Disallow: /*.js$ / CSS |
Schlechtes Rendering → schwaches SEO |
Disallow: /_next/ |
Next.js-Bundle weg, Rendering-Katastrophe |
Disallow: /de bei Allow nur anderer Locale |
Sprache aus dem Index |
Schlechte Wildcards (Disallow: *) |
Unvorhersehbare Matches |
Next.js liefert JS/CSS unter /_next/static/.... /_next/ nie blocken.
Trailing Slash und Locales
Ist das Canonical https://example.com/de/leistungen (ohne Slash), erfinden Sie keine Disallow-only-Logik für Slash-Varianten, nutzen Sie 301 + Canonical. robots.txt löst keine PL/EN/DE-Duplikate.
robots.txt und Sitemap
Die Zeile Sitemap: beschleunigt Discovery, aber:
- Sitemap-URLs überschreiben Disallow nicht, gesperrte URLs dürfen nicht in der Sitemap stehen
- Prüfen, dass Staging-Sitemaps nicht von Produktion verlinkt sind
- Nach großem Republish: GSC → Sitemaps → discovered URLs prüfen
Verifikation in Google Search Console
- Indexierungsgründe auf „Blocked by robots.txt“ prüfen
- URL Inspection → gecrawlte Seite / robots-Zeile
- Pfade testen:
/,/api/health,/de/blog/... - Nach Regeländerungen Re-Crawl abwarten; Indexierung nur für Kern-URLs beantragen
| GSC-Symptom | Typische Ursache |
|---|---|
| Blocked by robots.txt | Disallow zu breit |
| Crawled, not indexed | Qualität/Duplikat, nicht robots |
| Discovered, not indexed | Budget / schwache interne Links |
| Alternate page with proper canonical | Duplikate, nicht robots |
robots.txt, Middleware und Locales
Bei [locale]-Middleware mit Redirect / → /de sicherstellen:
- robots.txt ist unter der Domain-Root erreichbar (
https://domain/robots.txt) app/robots.tsliefert die Datei außerhalb des Locale-Präfixes- Sie sperren keine Locale-Pfade, die indexiert werden sollen
Cached das CDN auf DevStudioIT Cloud robots.txt, nach Regeländerungen purgen, sonst sieht Googlebot lange die alte Version.
Staging-Subdomain
# staging.example.com/robots.txt
User-agent: *
Disallow: /Nie 1:1 auf Produktion kopieren. ALLOW_INDEXING + eigene Staging-Domain verhindert Index-Leaks nach Redesigns.
Produktions-Checkliste
ALLOW_INDEXING=truenur auf Prodapp/robots.tserlaubt Site, sperrt/api/, Admin, Draft- Kein Disallow auf
/_next/ Sitemap:zeigt auf Produktions-/sitemap.xml- Staging: Disallow all + noindex + eigene Domain
- Keine gesperrten URLs in der Sitemap
- GSC: keine kritischen robots-Blocks auf Angebot/Blog
- Nach Deploy:
curl https://domain/robots.txtund manuell prüfen - CDN-Cache für
/robots.txtnach Änderungen purgen /pl,/en,/desind Allow
FAQ
Reicht robots.txt für das Kundenportal?
Nein. Portal braucht Auth + noindex + Disallow. Secrets gehören nie ins HTML.
UTMs in robots.txt sperren?
Besser UTMs kanonikalisieren (Canonical ohne Parameter) und interne Links ohne UTM. Disallow: /*?* ist oft zu aggressiv.
Googlebot vs. andere Bots
Sie können User-agent: Googlebot trennen, aber * reicht meist. Überdifferenzierung erschwert Debug.
Was ist mit AI-Crawlern (GPTBot usw.)?
Geschäftliche Policy: Allow/Disallow separat. Nicht mit Google-Search-Crawling verwechseln.
CTA
Audit von robots.txt, Sitemap und Next.js-Indexierung in Produktion?
- Crawl-/GSC-Audit buchen, robots.ts, Staging vs. Prod, DevStudioIT Cloud
Über den Autor
Wir bauen schnelle Websites, Web/Mobile-Apps, KI-Chatbots und Hosting — mit Fokus auf SEO und Conversion.
Empfohlene Links
Von Theorie zu Produktion — Branchly, Hosting-Stack und Referenzen.
