Infrastruktur — Cache, Fehler, Redirects
Was ist „Infrastruktur"?
Die Gruppe „Infrastruktur" umfasst grundlegendes HTTP-Verhalten, das bestimmt, ob Agenten zuverlässig mit deinem Origin interagieren können. Nichts davon ist protokollspezifisch — es gilt für jede Website, egal ob sie einen MCP-Endpoint, eine OpenAPI-Spezifikation oder nur statische Inhalte ausliefert.
HTTPS-Redirect
Wenn ein Mensch yourdomain.com in einen Browser eintippt, versucht der Browser zuerst HTTPS und landet meist unbemerkt dort. Agenten tun das nicht. Sie folgen exakt der URL, die man ihnen gegeben hat — und wenn diese URL http://yourdomain.com lautet und dein Server nicht umleitet, verweigert die HTTP-Bibliothek des Agenten entweder den Request (die meisten modernen KI-Clients blockieren reines HTTP) oder sendet ihn unverschlüsselt (ältere Clients). So oder so erreicht der Agent deine echte Website nie.
Fix: Antworte mit 301 oder 308 von http://yourdomain.com/* auf denselben Pfad unter HTTPS. Die meisten Plattformen erledigen das für dich (Cloudflare, Vercel, Heroku, build.io). Wenn du selbst hostest, füge einen nginx-server-Block hinzu, der auf Port 80 lauscht und den Redirect ausgibt.
Sitemap.xml
Agenten entdecken deine URL-Oberfläche über /sitemap.xml. Ohne sie sind die einzigen Pfade, die ein Agent erreichen kann, die von deiner Homepage verlinkten oder in der llms.txt deklarierten — typischerweise ein kleiner Bruchteil deiner echten Inhalte.
Fix: Liefere eine XML-Sitemap unter /sitemap.xml aus. Frameworks wie Next.js, Hugo, Jekyll und Wordpress generieren automatisch eine. Für eine handgeschriebene Sitemap:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url><loc>https://yourdomain.com/</loc></url>
<url><loc>https://yourdomain.com/docs</loc></url>
</urlset>
Cache-Header
Jeder gut konfigurierte Server sendet mindestens einen der Header Cache-Control, ETag oder Last-Modified mit seinen Antworten. Ohne sie haben Agenten keine Möglichkeit zu wissen, ob sie neu laden oder eine gecachte Kopie verwenden sollen — sie laden entweder jedes Mal alles neu herunter (langsam, teuer) oder cachen für immer veraltete Daten (falsch).
Fix: Die meisten Web-Frameworks setzen diese Header für statische Dateien standardmäßig. Für dynamische Antworten setze Cache-Control explizit:
// Express — for content that changes occasionally
res.set('Cache-Control', 'public, max-age=3600');
// For never-cache responses (still satisfies the check):
res.set('Cache-Control', 'no-store');
no-store zählt als gültiger Cache-Header — er sagt dem Agenten „cache das nicht", was selbst eine nützliche Information ist. Der Check schlägt fehl, wenn gar kein Cache-Header vorhanden ist.
Strukturierte Fehler (JSON-404)
Wenn ein Agent eine falsche URL trifft, verschwendet eine HTML-404-Seite (mit Navigation, Footer, Suchfeld usw.) Tokens und kann einen verwirrten Agenten glauben lassen, er hätte echte Inhalte bekommen. Ein JSON-404 liefert einen kleinen, parsbaren Fehler:
{ "error": "not_found", "path": "/wrong-url" }
Fix: Nutze Content Negotiation in deinem 404-Handler. Gib JSON zurück, wenn der Client Accept: application/json sendet, sonst HTML. Express-Beispiel:
app.use((req, res) => {
res.status(404);
res.format({
'application/json': () => res.json({ error: 'not_found', path: req.path }),
'text/html': () => res.send('<h1>404 Not Found</h1>'),
default: () => res.json({ error: 'not_found', path: req.path }),
});
});
Diese Änderung ist für Menschen unsichtbar (Browser senden Accept: text/html und bekommen HTML), aber für Agenten transformativ (sie senden Accept: application/json und bekommen JSON, das sie parsen können).
Rate-Limit-Header (optional)
Wenn dein Dienst Requests limitiert, mache den Zustand über X-RateLimit-Remaining, X-RateLimit-Reset oder Retry-After sichtbar. Agenten, die ans Limit stoßen, können dann die richtige Zeit warten und es erneut versuchen, statt zu scheitern.
Dieser Check ist optional, weil die meisten Websites gar kein Rate Limiting haben — nur API-Anbieter und SaaS-Apps. Statische Websites haben nichts offenzulegen.
Warum diese Checks Pflicht sind
Nichts davon macht eine Website für Menschen kaputt. Eine Website ohne Cache-Header lädt trotzdem im Browser; eine Website mit HTML-404s zeigt trotzdem eine freundliche Fehlerseite; eine Website ohne Sitemap rankt trotzdem bei Google. Genau deshalb werden sie leicht übersehen — Menschen spüren das Problem nicht.
Agenten schon. Jeder dieser Punkte macht den Unterschied zwischen „der Agent bekommt die Daten" und „der Agent bekommt Rauschen, verschwendet Tokens oder gibt auf". Sie als Pflicht zu markieren ist unser Weg, zu verhindern, dass sie stillschweigend übersprungen werden.