KI beibringen, meine Website zu lesen: Ein praktischer Leitfaden zur LLM-Optimierung
Warum ich über LLM-Optimierung nachdenke
Ich habe in letzter Zeit darauf geachtet, wie KI-Systeme Webinhalte konsumieren. Es wird immer klarer, dass eine saubere, schnelle Website mit semantischem HTML allein nicht mehr ausreicht. Die Art und Weise, wie LLMs Websites parsen und verstehen, unterscheidet sich von traditionellen Suchmaschinen, und ehrlich gesagt, bin ich immer noch dabei herauszufinden, was am besten funktioniert.
Als ich KI-Assistenten mit meiner Seite getestet habe, waren die Ergebnisse nicht konsistent. Manchmal haben sie meinen Hintergrund richtig erfasst, manchmal fehlten wichtige Details, manchmal schienen sie verwirrt darüber zu sein, was ich eigentlich mache. Es ist nicht so, dass meine Seite kaputt ist, sondern dass ich sie nicht für diese neue Art der Content-Erkennung optimiert habe.
Was möglicherweise fehlt
So wie ich das sehe, brauchen KI-Systeme, die Websites crawlen, Kontext, genau wie Menschen. Sie wollen wissen, wer ich bin, was ich mache und was meine Seite enthält. Ohne klare Signale müssen sie alleine anhand des Seiteninhalts raten.
Meine Seite deckt die Grundlagen ab:
- Sauberes semantisches HTML
- Richtige Überschriften-Hierarchie
- Gute Barrierefreiheit
- Schnelle Ladezeiten
Aber mir fehlen wahrscheinlich Metadaten, die der KI helfen, das große Ganze zu verstehen. Das sind die Bereiche, die ich verbessern möchte.
Dinge, die ich gerade ausprobiere
1. Open Graph & Twitter Cards (Die “Visitenkarte”)
Open Graph Tags sind der Standardweg, um jedem (Mensch oder Maschine) zu sagen, was eine Seite enthält. Sie erstellen die Rich Previews, wenn man Links teilt. Ich implementiere diese, um KI-Systemen klareren Kontext über jede Seite zu geben.
<!-- Open Graph -->
<meta property="og:title" content="KI beibringen, meine Website zu lesen: Ein praktischer Leitfaden zur LLM-Optimierung">
<meta property="og:description" content="Wie ich mein Portfolio für KI-Systeme lesbar gemacht habe mit Open Graph Tags, JSON-LD strukturierten Daten und Sitemaps. Einfache Techniken, die Maschinen helfen, deinen Inhalt zu verstehen.">
<meta property="og:image" content="https://milos.oroz.space/images/blog/home-page.png">
<meta property="og:url" content="https://milos.oroz.space/de/blog/llm-crawling-optimization-de/">
<meta property="og:type" content="article">
<meta property="og:site_name" content="milos oroz">
<meta property="og:locale" content="de_DE">
<!-- Twitter Cards -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="KI beibringen, meine Website zu lesen: Ein praktischer Leitfaden zur LLM-Optimierung">
<meta name="twitter:description" content="Wie ich mein Portfolio für KI-Systeme lesbar gemacht habe mit Open Graph Tags, JSON-LD strukturierten Daten und Sitemaps.">
<meta name="twitter:image" content="https://milos.oroz.space/images/blog/home-page.png">
Warum ich das ausprobiere: Diese Tags bieten strukturierte, definitive Beschreibungen, anstatt der KI zu überlassen, aus dem Seiteninhalt zu raten.
2. JSON-LD Strukturierte Daten (Das “Nährwertlabel”)
JSON-LD erlaubt es dir, einer Maschine explizit zu sagen: “Das ist eine Person” oder “Das ist ein Blog-Beitrag.” Es formatiert den Inhalt in strukturierte Daten, die Maschinen einfacher parsen können als HTML allein.
Für den Blog-Index:
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Projekte - milos oroz",
"description": "Portfolio von milos oroz - Projekte in Cloud, DevOps und Automatisierung",
"url": "https://milos.oroz.space/de/blog/",
"author": {
"@type": "Person",
"name": "Milos Oroz",
"url": "https://milos.oroz.space/contact"
}
}
Für diesen Blog-Beitrag:
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "KI beibringen, meine Website zu lesen: Ein praktischer Leitfaden zur LLM-Optimierung",
"description": "Wie ich mein Portfolio für KI-Systeme lesbar gemacht habe mit Open Graph Tags, JSON-LD strukturierten Daten und Sitemaps. Einfache Techniken, die Maschinen helfen, deinen Inhalt zu verstehen.",
"datePublished": "2026-01-15",
"dateModified": "2026-01-15",
"url": "https://milos.oroz.space/de/blog/llm-crawling-optimization-de/",
"image": "https://milos.oroz.space/images/blog/home-page.png",
"author": {
"@type": "Person",
"name": "Milos Oroz",
"url": "https://milos.oroz.space/contact"
},
"publisher": {
"@type": "Person",
"name": "Milos Oroz",
"url": "https://milos.oroz.space"
}
}
Warum ich das ausprobiere: Das sollte KI-Systemen ein klareres Verständnis von Inhaltstyp, Autorschaft und Entitätsbeziehungen geben. Schema.org Markup bietet strukturierten Kontext, der Maschinen hilft, Inhalte genauer zu parsen.
3. Automatische Sitemaps (Die “Karte”)
Eine Sitemap sagt im Grunde: “Hier ist eine Liste von allem auf meiner Seite.” Ohne eine müssen Crawler Links folgen, um Inhalte zu entdecken. Ich verwende @astrojs/sitemap, um diese automatisch zu generieren.
<url>
<loc>https://milos.oroz.space/de/blog/llm-crawling-optimization-de/</loc>
<lastmod>2026-01-15</lastmod>
</url>
Warum ich das ausprobiere: Crawler sollten nicht raten müssen, welche Seiten existieren. Das gibt ihnen ein komplettes Verzeichnis. Es ist eine grundlegende SEO-Praxis, die noch wichtiger werden könnte, wenn LLMs aggressiver crawlen.
4. Hreflang für zweisprachige Inhalte (Der “Übersetzer”)
Meine Seite hat sowohl englische als auch deutsche Versionen, also füge ich hreflang-Tags hinzu. Ohne sie könnte die KI denselben Inhalt in verschiedenen Sprachen sehen und verwirrt sein, welche Version sie verwenden soll.
<link rel="alternate" hreflang="en" href="https://milos.oroz.space/en/blog/">
<link rel="alternate" hreflang="de" href="https://milos.oroz.space/de/blog/">
<link rel="alternate" hreflang="x-default" href="https://milos.oroz.space/en/blog/">
Warum ich das ausprobiere: Das sollte der KI helfen zu verstehen, dass es sich um Übersetzungen handelt, nicht um doppelten Inhalt. Wichtig für eine zweisprachige Seite.
5. Canonical URLs & Article Meta (Die “Wahrheitsquelle”)
Canonical URLs sagen Crawlern, welche Version einer Seite die autoritative ist. Article Meta Tags liefern Zeitstempel für Blog-Beiträge.
<!-- Canonical URL -->
<link rel="canonical" href="https://milos.oroz.space/de/blog/llm-crawling-optimization-de/">
<!-- Article-spezifische Meta (für diesen Blog-Beitrag) -->
<meta property="article:published_time" content="2026-01-15T00:00:00.000Z">
<meta property="article:modified_time" content="2026-01-15T00:00:00.000Z">
<meta property="article:author" content="Milos Oroz">
Warum ich das ausprobiere: Das sind Standard-SEO-Praktiken, die LLMs helfen könnten, Content-Aktualität und Autorität zu verstehen.
6. llms.txt (Die “KI-README”)
Ich experimentiere mit einer llms.txt-Datei im Root-Verzeichnis meiner Website. Es ist im Grunde eine “KI-README” – eine einfache Textdatei, die erklärt, worum es auf der Website geht, wer ich bin und wie man meine Inhalte zitieren kann.
Die Idee ist, dass KI-Crawler schnell Kontext bekommen könnten, ohne das gesamte HTML parsen zu müssen. Es ist eine Ergänzung mit geringem Aufwand, die KI-Systemen besseren Kontext geben könnte. Ob es tatsächlich hilft, wird die Zeit zeigen.
Warum ich das ausprobiere: Es ist ein neues Muster, das einige Entwickler ausprobieren. Es lohnt sich zu testen, ob es einen Unterschied macht.
Technische Implementierungsdetails (zum Aufklappen klicken)
Bei der Implementierung in Astro bin ich auf ein paar spezifische Stolpersteine gestoßen:
Dynamische Meta-Generierung: Da dies eine statische Website ist, müssen alle Meta-Tags zur Build-Zeit generiert werden. Ich habe mein Astro-Layout aktualisiert, um Props für Titel, Beschreibung, Bilder, Daten und Autor zu akzeptieren. Das Layout konstruiert dann sowohl Open Graph Tags als auch Twitter Cards aus diesen Props, um Konsistenz über alle Plattformen hinweg sicherzustellen.
Bedingte Article Meta:
Blog-Beiträge benötigen artikel-spezifische Meta-Tags (article:published_time, etc.), während reguläre Seiten diese nicht brauchen. Ich rendere diese bedingt nur wenn der type Prop auf “article” gesetzt ist.
Absolute vs. Relative Pfade:
Open Graph und Twitter Card Bilder erfordern absolute URLs (z.B. https://...), keine relativen Pfade (/images/...). Relative Pfade funktionieren für Browser, brechen aber Link-Previews und verwirren externe Crawler. Ich hänge die Domain an alle Bildpfade an.
Tailwind CSS Opazitäts-Konflikt:
Ich hatte versehentlich sowohl opacity-50 als auch opacity-100 Klassen gleichzeitig in meinen dynamischen Komponenten angewendet. Die Lösung war ein Ternary-Operator, um sicherzustellen, dass nur eine Klasse zur Render-Zeit existiert.
JSON-LD Publisher Feld:
Der Schema.org BlogPosting Typ profitiert von einem publisher Feld zusätzlich zum author Feld. Da dies eine persönliche Website ist, zeigen beide auf mich, aber beide zu haben bietet bessere Entitätserkennung für LLMs.
Worauf ich achte
Ich habe diese Änderungen implementiert, aber ich behaupte noch keinen Erfolg. Hier ist, worauf ich achten werde:
- Fassen KI-Assistenten meine Seite genauer zusammen?
- Erfassen sie die richtigen Expertisebereiche?
- Verwirrt sie die zweisprachige Struktur weniger?
Ich muss im Laufe der Zeit testen und sehen, was tatsächlich funktioniert. Das LLM-Verhalten ändert sich ständig, also was heute effektiv ist, könnte morgen schon wieder anders sein.
Warum das wichtig ist
KI-Systeme werden zu einer primären Art und Weise, wie Menschen Inhalte entdecken. Ich möchte, dass meine Seite von diesen Systemen korrekt verstanden wird, nicht nur von Menschen. Das bedeutet, auf die Metadaten und strukturierten Daten-Standards zu achten, die wir seit Jahren haben – sie könnten jetzt noch wichtiger sein.
Es geht nicht darum, einen Algorithmus auszutricksen. Es geht darum, sicherzustellen, dass KI-Systeme, wenn sie meine Seite crawlen, auch wirklich verstehen, was ich eigentlich sage.