PDF

Vollständiger Berichtharborcyclery.example

Die KI sieht nur 0 % deiner Inhalte. Sie liest eine fast leere Seite.

Analysiert am 24. September 2026 um 20:17 · 25 Probleme · 36 Prüfungen

Was ein Mensch sieht und was eine KI bekommt

0%Übereinstimmung

Sagen beide Spalten dasselbe, ist alles gut. Was rot markiert ist, steht auf deinem Bildschirm, kommt aber nie beim Crawler an.

Screenshot von harborcyclery.example, so wie die Seite im Browser aussieht
Screenshot von harborcyclery.example mit deaktiviertem JavaScript, so wie ein KI-Crawler die Seite bekommt
Was ein Mensch sieht160 WörterWas eine KI bekommt0 Wörter
Dieselbe Seite, auf der einen Seite der Linie mit JavaScript, auf der anderen ohne. Was weiß bleibt, kommt beim Crawler nie an.

Punktzahl nach Bereich

  • KI-Zugang83/100

    Kommen die Crawler von ChatGPT, Claude, Perplexity und Gemini überhaupt auf deine Website? · Gewicht 26 % · 2 Probleme

  • Für KI sichtbarer Inhalt15/100

    Kommt das, was ein Mensch auf dem Bildschirm sieht, auch beim Crawler an, der kein JavaScript ausführt? · Gewicht 26 % · 4 Probleme

  • Struktur und Semantik25/100

    Kann das Modell die Seite verstehen und in zitierfähige Abschnitte zerlegen? · Gewicht 15 % · 6 Probleme

  • Strukturierte Daten14/100

    Sagst du der KI, wer du bist und was du anbietest, in einem Format, bei dem sie nicht raten muss? · Gewicht 15 % · 5 Probleme

  • Inhalt, der antwortet5/100

    Gibt es konkrete Antworten, die eine KI unverändert übernehmen und zitieren kann? · Gewicht 12 % · 6 Probleme

  • Technik71/100

    Geschwindigkeit, Übertragung und grundlegende Server-Hygiene. · Gewicht 6 % · 2 Probleme

Zugang für KI-Suchmaschinen

KI-Suchmaschinerobots.txtServer
ChatGPT SearchOAI-SearchBotErlaubtHTTP 200
ChatGPT (Live-Browsing)ChatGPT-UserErlaubtHTTP 200
OpenAI GPTBotGPTBotBlockiertDisallow: /HTTP 200
Anthropic ClaudeBotClaudeBotErlaubtHTTP 200
Claude SearchClaude-SearchBotErlaubtHTTP 200
Claude (Live-Browsing)Claude-UserErlaubtHTTP 200
PerplexityPerplexityBotErlaubtHTTP 200
Google GeminiGoogle-ExtendedErlaubtHTTP 200
Apple IntelligenceApplebot-ExtendedErlaubtHTTP 200
Meta AImeta-externalagentErlaubtHTTP 200
Copilot / Bing (Quelle vieler KIs)BingbotErlaubtHTTP 200

Was Google auf deiner Website misst

Lighthouse · PageSpeed Insights · Mobil

Leistung
38
Barrierefreiheit
91
Best Practices
100
SEO
83
Größtes sichtbares Element (LCP)
4,1 s
Erster sichtbarer Inhalt (FCP)
2,6 s
Gesamte Blockierzeit (TBT)
620 ms
Layout-Verschiebung (CLS)
0,02
Speed Index
5,8 s

Diese Werte schwanken mit Netz und Server. Sie dienen dem Vergleich vor und nach einer Änderung, nicht der Jagd nach einer glatten 100. In deine Punktzahl für KI-Sichtbarkeit fließen sie nicht ein.

Alle 25 Probleme und wie du sie behebst

Kritisch

Die KI sieht nur 0 % deiner Website

Ein Mensch liest 160 Wörter auf dem Bildschirm; ein KI-Crawler bekommt 0. Der Unterschied ist Inhalt, der erst im Browser entsteht.

Warum es dir schadet

Wenn ein Modell entscheidet, wen es zitiert, vergleicht es die Inhalte, die es lesen konnte. Fehlt ihm die Hälfte deiner Seite, trittst du mit der Hälfte deiner Argumente an.

So behebst du es

Stell den Hauptinhalt auf serverseitiges Rendering um: Texte, Preise, Produktdetails, FAQs und Navigationslinks. Im Client bleibt nur, was interaktiv ist (Warenkorb, Filter, Karten).

Kritisch

Nur 0 Wörter kommen bei der KI an

Das HTML, das der Server ausliefert, enthält 0 Wörter echten Text, gegenüber 160, die ein Mensch auf dem Bildschirm sieht.

Warum es dir schadet

Modelle brauchen Text, um daraus eine Antwort zu ziehen und dich zu zitieren. Mit weniger als 300 Wörtern haben sie kaum etwas in der Hand.

So behebst du es

Rendere den Inhalt auf dem Server (SSR/SSG) oder prerendere das HTML: Die KI muss den Text fertig geschrieben in der Antwort bekommen, nicht einen leeren Container.

Kritisch

Es gibt Inhalte, die die KI nie zu lesen bekommt

Diese Texte sind auf dem Bildschirm zu sehen, fehlen aber im HTML, das ein Crawler bekommt: • Bike repair in Portland • Full service in 24 hours. • We collect your bike from home and bring it back ready to ride. • Gear and brake adjustment, wheel truing, lubrication and a bolt check. • New 11 or 12-speed chain, with a check of cassette wear. • Bleed on both brakes, new pads and lever adjustment. • We assemble it and set it up for your size. • Over 3,000 bikes serviced since 2016.

Warum es dir schadet

GPTBot, ClaudeBot und PerplexityBot lesen das HTML so, wie es ankommt. Sie warten nicht, bis dein JavaScript gelaufen ist. Alles oben Aufgeführte ist für sie buchstäblich unsichtbar.

So behebst du es

Liefere diesen Inhalt vom Server aus. Je nach Stack: • Next.js: Nutze Server Components oder getStaticProps/generateStaticParams statt useEffect + fetch. • Nuxt: ssr: true und useAsyncData statt onMounted. • Reine React/Vue-SPA: Füge Prerendering hinzu (vite-plugin-prerender, react-snap) oder steig auf SSR um. • CMS mit JS-Widgets: Ersetze das Widget durch statisches HTML oder schreib den Text direkt in den Inhalt. Prüf das Ergebnis mit: curl -s http://harborcyclery.example/ | grep -i "ein Stück aus dem Text"

Was wir auf deiner Website gefunden haben
Bike repair in Portland
---
Full service in 24 hours.
---
We collect your bike from home and bring it back ready to ride.
---
Gear and brake adjustment, wheel truing, lubrication and a bolt check.
---
New 11 or 12-speed chain, with a check of cassette wear.

Schwer

Keine H1-Überschrift

Der HTML-Quelltext enthält kein <h1>.

Warum es dir schadet

Die H1 sagt dem Modell, was das Hauptthema ist. Ohne sie (oder mit mehreren) verliert die Seite ihren Fokus, und das Modell weiß nicht, was es eigentlich zusammenfasst.

So behebst du es

Füge genau ein <h1> mit dem Hauptthema der Seite ein, so formuliert, wie es ein Kunde sagen würde.

Schwer

Die Seite hat keine Überschriften

Im ausgelieferten HTML wurde keine H1–H6 gefunden.

Warum es dir schadet

An den Überschriften zerschneidet ein Modell die Seite in zitierfähige Abschnitte. Ohne sie ist dein Inhalt eine einzige Textwand: Er wird ganz zitiert oder gar nicht.

So behebst du es

Gliedere den Inhalt mit einer H1 und mehreren H2/H3, jeweils formuliert als die Frage, die der Abschnitt beantwortet.

Schwer

Du hast keine strukturierten Daten

Das HTML enthält kein <script type="application/ld+json"> mit schema.org.

Warum es dir schadet

JSON-LD ist der Steckbrief, den ein Modell ohne Missverständnisse liest: Name, Leistungen, Preise, Öffnungszeiten, Bewertungen. Ohne ihn muss die KI aus dem Text raten, liegt öfter daneben oder ignoriert dich und zitiert jemanden, der es ihr leichter macht.

So behebst du es

Füge in den <head> einen Block wie diesen ein und passe die Werte an dein Unternehmen an:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "DEINE MARKE",
  "url": "http://harborcyclery.example",
  "logo": "http://harborcyclery.example/logo.png",
  "description": "Was du machst, für wen und wo, in einem Satz.",
  "sameAs": ["https://www.linkedin.com/company/…", "https://www.instagram.com/…"],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer service",
    "email": "hello@harborcyclery.example",
    "availableLanguage": ["en"]
  }
}
</script>

Schwer

Die Website nutzt kein HTTPS

http://harborcyclery.example/ wird unverschlüsselt ausgeliefert.

Warum es dir schadet

Ohne HTTPS verlierst du in klassischen Suchmaschinen an Ranking, und mehrere Crawler verwerfen die Domain von vornherein als vertrauenswürdige Quelle.

So behebst du es

Installiere ein TLS-Zertifikat (Let's Encrypt ist kostenlos), leite den gesamten HTTP-Verkehr per 301 auf HTTPS um und aktiviere HSTS.

Mittel

Keine sitemap.xml

http://harborcyclery.example/sitemap.xml antwortet nicht, und die robots.txt gibt keine an.

Warum es dir schadet

Ohne Sitemap findet ein Crawler nur, was von der Startseite aus verlinkt ist. Tiefere Seiten, also genau die, die konkrete Fragen beantworten, werden nie indexiert.

So behebst du es

Erzeuge eine sitemap.xml mit allen öffentlichen URLs und ihrem echten <lastmod>, veröffentliche sie unter http://harborcyclery.example/sitemap.xml und trag sie mit dieser Zeile in die robots.txt ein:

Sitemap: http://harborcyclery.example/sitemap.xml

Mittel

Kein Ersatzinhalt ohne JavaScript

Die Seite hängt von JS ab und hat kein <noscript> mit dem wesentlichen Inhalt.

Warum es dir schadet

Solange du am serverseitigen Rendering arbeitest, gibt ein ordentliches <noscript> der KI wenigstens den Haupttext statt gar nichts.

So behebst du es

Als vorübergehender Behelf: Pack die Überschrift, die zwei oder drei wichtigsten Absätze und die Hauptlinks in <noscript>. Die eigentliche Lösung bleibt, gerendertes HTML auszuliefern.

Mittel

Der Titel ist nicht optimiert

Der <title> ist 14 Zeichen lang: „Harbor Cyclery“.

Warum es dir schadet

Der Titel ist das Erste, was ein Modell liest, um zu entscheiden, worum es auf der Seite geht und ob sie die Frage des Nutzers beantwortet.

So behebst du es

Schreib einen Titel mit 50–60 Zeichen nach dem Muster „Dein Angebot | Marke“ und nimm die Begriffe, die deine Kunden eintippen würden, wenn sie eine KI fragen.

Was wir auf deiner Website gefunden haben
Harbor Cyclery

Mittel

Die Meta-Description fehlt

Im HTML fehlt <meta name="description">.

Warum es dir schadet

Viele KI-Systeme nehmen die Beschreibung als maßgebliche Zusammenfassung der Seite, noch bevor sie den eigentlichen Inhalt lesen.

So behebst du es

Füge eine Beschreibung mit 140–160 Zeichen ein, die in einem Satz sagt, was du machst, für wen und wo:

<meta name="description" content="…">

Mittel

Die Seite nutzt kein semantisches HTML

Kein <main>, <article>, <nav> oder <header>: Alles ist ein <div>.

Warum es dir schadet

Semantische Tags zeigen dem Extraktor, was Inhalt ist und was Menü oder Footer. Ohne sie vermischt sich dein Text mit der Navigation, und das Modell zitiert dich schlechter.

So behebst du es

Pack den Hauptinhalt in <main>, jeden eigenständigen Block in <article>, das Menü in <nav> und den Footer in <footer>. Du ersetzt nur divs durch Tags mit Bedeutung, an den Styles änderst du nichts.

Mittel

Keine Links im ausgelieferten HTML

Das Dokument enthält kein einziges <a href>.

Warum es dir schadet

Wenn die Navigation per JavaScript erzeugt wird, findet ein KI-Crawler den Rest deiner Website nicht: Er indexiert nur diese eine Seite.

So behebst du es

Liefere das Menü als echte <a href>-Links im HTML aus, nicht als Buttons mit onClick.

Mittel

Die KI weiß nicht, wer du bist

Es gibt kein Schema vom Typ Organization, LocalBusiness oder Person.

Warum es dir schadet

KIs empfehlen Entitäten, keine einzelnen URLs. Wenn du Name, Tätigkeitsbereich und Kontaktdaten nicht angibst, ordnen sie dich weder deiner Branche noch deiner Stadt zu.

So behebst du es

Füge einen Organization-Block hinzu (oder LocalBusiness, wenn du Kunden an einer festen Adresse empfängst), mit name, url, logo, description, sameAs (deine Social-Media-Profile) und, falls zutreffend, address und areaServed.

Mittel

Deine Zwischenüberschriften beantworten nicht die Fragen, die Menschen stellen

Die Seite hat keine H2/H3-Zwischenüberschriften.

Warum es dir schadet

KIs suchen das Textstück, das die Frage des Nutzers wörtlich beantwortet. Eine H2 wie „Unsere Leistungen“ passt auf nichts; „Was kostet eine Badsanierung in München?“ passt auf eine echte Frage.

So behebst du es

Formuliere mindestens 3 Zwischenüberschriften als genau die Frage, die dir ein Kunde stellen würde, und antworte im ersten Absatz darunter in 2–3 Sätzen. Beispiel: „## Wie lange dauert eine Badsanierung?“, gefolgt von „Zwei bis drei Wochen für ein Standardbad mit 5 m²…“.

Mittel

Keine direkte Antwort in den ersten Zeilen

Die Seite beginnt ohne einen Absatz, der zusammenfasst, worum es geht.

Warum es dir schadet

Ein Modell zitiert meist die ersten 40–60 Wörter, die die Anfrage beantworten. Wenn du mit Werbefloskeln einsteigst, findet es nichts, was es herausziehen kann.

So behebst du es

Beginne die Seite mit einem Absatz von 40–70 Wörtern, der wörtlich antwortet: was es ist, für wen, was es kostet oder wie lange es dauert. Die Ausschmückungen kommen danach.

Mittel

Kein Block mit häufigen Fragen

Es wurde kein Bereich mit häufigen Fragen erkannt.

Warum es dir schadet

Eine FAQ mit strukturierten Daten ist das Frage-Antwort-Format, das KI-Suchmaschinen direkt verarbeiten: Jedes Paar ist eine fertige Antwort, mit deiner Marke daneben.

So behebst du es

Füge 5–8 echte Kundenfragen mit Antworten hinzu (je 2–4 Sätze) und zeichne sie so aus:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "Was kostet die Leistung?",
    "acceptedAnswer": {"@type": "Answer", "text": "Ab 300 € für ein Standardprojekt…"}
  }]
}
</script>

Nimm die Fragen, die du schon per E-Mail oder WhatsApp bekommst: Genau die tippen die Leute in eine KI.

Gering

Keine llms.txt-Datei

http://harborcyclery.example/llms.txt existiert nicht.

Warum es dir schadet

llms.txt ist ein aufkommender Standard (noch nutzen ihn nicht alle Suchmaschinen), mit dem du einem Modell sagst, welche deiner Seiten wichtig sind und in welcher Reihenfolge es sie lesen soll. Das kostet zehn Minuten, und du bist vorbereitet, wenn er sich durchsetzt.

So behebst du es

Erstelle http://harborcyclery.example/llms.txt in Markdown:

# harborcyclery.example

> Ein Satz, der beschreibt, was dein Unternehmen macht und für wen.

## Wichtigste Seiten
- [Leistungen](http://harborcyclery.example/services): was du genau anbietest.
- [Preise](http://harborcyclery.example/pricing): Tarife und Pakete.
- [Kontakt](http://harborcyclery.example/contact): wie man dich beauftragt.

Gering

Open-Graph-Metadaten fehlen

Fehlende Tags: og:title, og:description, og:image.

Warum es dir schadet

Mehrere Assistenten nutzen Open Graph als Kurzzusammenfassung, wenn sie deinen Link in einer Antwort anzeigen.

So behebst du es

Ergänze im <head>:

<meta property="og:title" content="…">
<meta property="og:description" content="…">
<meta property="og:image" content="http://harborcyclery.example/cover.jpg">
<meta property="og:url" content="http://harborcyclery.example/">
<meta property="og:type" content="website">

Gering

Deinen Links fehlt die Vorschaukarte

Es wurde kein <meta name="twitter:card"> gefunden.

Warum es dir schadet

Wenn jemand deinen Link in X, Slack, WhatsApp oder Discord einfügt, erscheint er ohne Karte als graue Textzeile, die niemand anklickt. Mit Bild nimmt er zehnmal so viel Platz ein und wird viel häufiger geteilt.

So behebst du es

Ergänze im <head>:

<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="…">
<meta name="twitter:description" content="…">
<meta name="twitter:image" content="http://harborcyclery.example/twitter-image.png">

Das Bild muss 1200×630 px groß sein. Mit Next.js kannst du es per Code erzeugen, mit einer opengraph-image.tsx und einer twitter-image.tsx. So veraltet es nie.

Gering

Die kanonische URL fehlt

Die Seite gibt kein <link rel="canonical"> an.

Warum es dir schadet

Ohne Canonical zählt derselbe Inhalt unter mehreren URLs (mit und ohne www, mit Parametern, http und https) als verschiedene Seiten, und deine Autorität verteilt sich auf alle.

So behebst du es

Ergänze im <head>: <link rel="canonical" href="http://harborcyclery.example/">

Gering

Wenig Inhalt in Listen oder Tabellen

Die Seite hat nur 0 Listenpunkte und 0 Tabellen.

Warum es dir schadet

Listen und Tabellen übernimmt ein Modell am genauesten, weil sie schon in vergleichbare Einheiten zerlegt sind (Preise, Schritte, Merkmale).

So behebst du es

Mach aus deinen Arbeitsschritten und aus dem, was jede Leistung umfasst, Listen und aus deinem Paket- oder Preisvergleich eine Tabelle. Du formatierst nur um, was du schon geschrieben hast.

Gering

Der Inhalt nennt keine konkreten Zahlen

Auf der ganzen Seite wurden nur 0 Zahlen mit Einheit gefunden.

Warum es dir schadet

KIs zitieren lieber überprüfbare Aussagen. „Wir sind Branchenführer“ lässt sich nicht zitieren; „wir liefern in 48 Stunden, und die Installation kostet 149 €“ schon, und die Zahl nimmt deine Marke mit.

So behebst du es

Nenn echte Zahlen: Preise ab, Lieferzeiten, Jahre am Markt, abgeschlossene Projekte, prozentuale Ersparnis. Eine Zahl pro Abschnitt.

Gering

Der Inhalt wirkt veraltet

Es gibt keine Datumsangaben und keinen Bezug auf das aktuelle Jahr.

Warum es dir schadet

Sagen zwei Quellen dasselbe, zitieren KI-Suchmaschinen die, die belegt, dass sie aktuell ist. Eine Seite ohne Zeitangaben gilt als alt.

So behebst du es

Überprüfe und aktualisiere den Inhalt, zeig das Datum der letzten Prüfung auf der Seite an und aktualisiere „dateModified“ im JSON-LD. Auch wenn sich deine Angaben selten ändern, schreib „Aktualisiert 2026“ dazu, wo es stimmt, aber nie, wenn du nichts überprüft hast. Analysierte Seite: /

Gering

Das HTML wird unkomprimiert gesendet

Die Antwort hat keinen Content-Encoding-Header.

Warum es dir schadet

Komprimierung macht HTML um 70–80 % kleiner. Weniger Bytes heißen weniger Ladezeit pro Seite und mehr gecrawlte Seiten beim selben Budget.

So behebst du es

Aktiviere gzip oder brotli auf deinem Server (Nginx: gzip on; Apache: mod_deflate) oder stell ein CDN davor, das es für dich übernimmt.

Und deine Konkurrenz?

Wenn jemand eine KI nach deiner Branche fragt, tritt deine Website nicht gegen ein Ideal an, sondern gegen die aller anderen. Analysiere zwei und sieh selbst. Im Bericht enthalten.

WebsitePunkte
1bristolbikeworks.example588 Wörter (95%) · keine KI-Suchmaschine blockiert79/100 · B
2quaysidecycles.example231 Wörter (68%) · 1 KI-Suchmaschine blockiert55/100 · C
3harborcyclery.exampledu0 Wörter (0%) · keine KI-Suchmaschine blockiert36/100 · F

Du landest auf Platz 3 von 3. Bei derselben Frage hat eine KI 2 andere Websites, die sie besser liest als deine.

Nimm es mit

Zwei Wege, es zu beheben

Option A · du und deine KI

Du behebst es selbst, ohne weitere Kosten

Kopiere den Prompt unten und füge ihn in Claude, ChatGPT, Cursor oder Copilot ein. Er enthält die komplette Diagnose, die KI muss deine Website also nicht sehen: Sie sagt dir, welche Datei du anfassen musst, und endet mit den Befehlen, mit denen du prüfst, ob es funktioniert hat.

Option B · wir machen es

Wir beheben es gemeinsam

Wenn du dich nicht mit SSR, Schemas und robots.txt herumschlagen willst, schick uns diesen Bericht, und wir setzen ihn um. Vorher sagen wir dir, was wir tun würden und was es kostet.

Schreib uns an hello@gettarsier.com

Gib das deiner KI und lass sie alles beheben

Dieser Prompt enthält die komplette Diagnose: den Kontext deiner Website, die Probleme nach Wirkung sortiert, die Anleitung zur Behebung und die Befehle, mit denen du prüfst, ob es funktioniert hat. Die KI muss deine Website nicht sehen.

Welchen nehmen:In deiner Sprache liest er sich natürlicher; auf Englisch braucht er rund 25 % weniger Tokens. Das hilft, wenn deine KI nach Verbrauch abrechnet oder ihr der Kontext ausgeht.

Prompt für deine KI562 Zeilen
> Antworte auf Deutsch und schreib auch alle Kommentare im Code auf Deutsch.

# Aufgabe: Meine Website für KI-Suchmaschinen lesbar machen

Du bist Experte für technisches SEO und GEO (Generative Engine Optimization, also Optimierung für generative Suchmaschinen: ChatGPT Search, Claude, Perplexity, Google AI Overviews, Copilot).

## Kontext

- Analysierte Website: http://harborcyclery.example/
- Datum der Analyse: 24.9.2026
- Aktuelle Punktzahl für KI-Sichtbarkeit: 36/100 (Note F)
- Parität Mensch/KI: Ein Besucher sieht 160 Wörter, ein KI-Crawler erhält 0 (0 %).
- Aktueller Seitentitel: "Harbor Cyclery"
- Vorhandene strukturierte Daten: keine

## Punktzahl nach Bereich

- Zugriff für KI-Crawler: 83/100
- Für KI sichtbare Inhalte: 15/100
- Struktur und Semantik: 25/100
- Strukturierte Daten: 14/100
- Inhalte, die Fragen beantworten: 5/100
- Technik: 71/100

## Die Konkurrenz

Bei derselben Frage wählt eine KI zwischen diesen Websites. Die Zahlen stammen aus einer echten Analyse nach denselben Kriterien:

- bristolbikeworks.example: 79/100, 588 lesbare Wörter
- quaysidecycles.example: 55/100, 231 lesbare Wörter
- harborcyclery.example (meine Website): 36/100, 0 lesbare Wörter

## Was du tun sollst

Behebe die Probleme aus der folgenden Liste **in der Reihenfolge, in der sie stehen** (sie sind danach sortiert, wie stark sie beeinflussen, ob eine KI mich überhaupt zitieren kann).
Für jedes Problem:

1. Finde in meinem Projekt die Datei oder das Template, in dem es entsteht.
2. Setz die Änderung passend zu meinem tatsächlichen Stack um (kopiere die Beispiele nicht wörtlich, nimm sie als Vorlage).
3. Erklär mir in einem Satz, was du geändert hast und warum.
4. Sag mir, wie ich prüfe, ob es funktioniert hat.

Arbeite in Phasen, nicht alles auf einmal: zuerst die Blocker. Fasse nach jeder Phase zusammen, was du geändert hast und was die Prüfungen ergeben haben, und warte auf meine Bestätigung, bevor du weitermachst.

Die Technik der Website konnte ich von außen nicht erkennen. Bevor du etwas änderst, sieh im Projekt nach (package.json, Konfigurationsdateien) und sag sie mir; wenn du keinen Zugriff auf den Code hast, frag mich und warte auf meine Antwort.

Achtung: Das ausgelieferte HTML ist fast leer, und viele Punkte der Liste (H1, Überschriften, Links, semantisches HTML, Meta-Tags) können eine Folge davon sein. Sobald der Inhalt auf dem Server gerendert wird, prüf das ausgelieferte HTML erneut und behebe nur, was dann noch fehlschlägt. Falls die Liste den <noscript>-Notbehelf enthält, überspring ihn: Mit gerendertem HTML ist er überflüssig.

Wenn etwas eine geschäftliche Entscheidung braucht (Preise, Werbetexte, echte Kontaktdaten), erfinde nichts: Frag mich.

## Blocker (solange die bestehen, zählt nichts anderes)

### 1. Die KI sieht nur 0 % deiner Website

**Schweregrad:** Kritisch

**Was passiert:** Ein Mensch liest 160 Wörter auf dem Bildschirm; ein KI-Crawler bekommt 0. Der Unterschied ist Inhalt, der erst im Browser entsteht.

**Warum es wichtig ist:** Wenn ein Modell entscheidet, wen es zitiert, vergleicht es die Inhalte, die es lesen konnte. Fehlt ihm die Hälfte deiner Seite, trittst du mit der Hälfte deiner Argumente an.

**Was zu tun ist:**

Stell den Hauptinhalt auf serverseitiges Rendering um: Texte, Preise, Produktdetails, FAQs und Navigationslinks. Im Client bleibt nur, was interaktiv ist (Warenkorb, Filter, Karten).

### 2. Nur 0 Wörter kommen bei der KI an

**Schweregrad:** Kritisch

**Was passiert:** Das HTML, das der Server ausliefert, enthält 0 Wörter echten Text, gegenüber 160, die ein Mensch auf dem Bildschirm sieht.

**Warum es wichtig ist:** Modelle brauchen Text, um daraus eine Antwort zu ziehen und dich zu zitieren. Mit weniger als 300 Wörtern haben sie kaum etwas in der Hand.

**Was zu tun ist:**

Rendere den Inhalt auf dem Server (SSR/SSG) oder prerendere das HTML: Die KI muss den Text fertig geschrieben in der Antwort bekommen, nicht einen leeren Container.

### 3. Es gibt Inhalte, die die KI nie zu lesen bekommt

**Schweregrad:** Kritisch

**Was passiert:** Diese Texte sind auf dem Bildschirm zu sehen, fehlen aber im HTML, das ein Crawler bekommt:

• Bike repair in Portland
• Full service in 24 hours.
• We collect your bike from home and bring it back ready to ride.
• Gear and brake adjustment, wheel truing, lubrication and a bolt check.
• New 11 or 12-speed chain, with a check of cassette wear.
• Bleed on both brakes, new pads and lever adjustment.
• We assemble it and set it up for your size.
• Over 3,000 bikes serviced since 2016.

**Warum es wichtig ist:** GPTBot, ClaudeBot und PerplexityBot lesen das HTML so, wie es ankommt. Sie warten nicht, bis dein JavaScript gelaufen ist. Alles oben Aufgeführte ist für sie buchstäblich unsichtbar.

**Was zu tun ist:**

Liefere diesen Inhalt vom Server aus. Je nach Stack:
• Next.js: Nutze Server Components oder getStaticProps/generateStaticParams statt useEffect + fetch.
• Nuxt: ssr: true und useAsyncData statt onMounted.
• Reine React/Vue-SPA: Füge Prerendering hinzu (vite-plugin-prerender, react-snap) oder steig auf SSR um.
• CMS mit JS-Widgets: Ersetze das Widget durch statisches HTML oder schreib den Text direkt in den Inhalt.
Prüf das Ergebnis mit: curl -s http://harborcyclery.example/ | grep -i "ein Stück aus dem Text"

<details><summary>Auf der Website gefundener Ausschnitt</summary>

```
Bike repair in Portland
---
Full service in 24 hours.
---
We collect your bike from home and bring it back ready to ride.
---
Gear and brake adjustment, wheel truing, lubrication and a bolt check.
---
New 11 or 12-speed chain, with a check of cassette wear.
```

</details>

## Wichtig

### 1. Keine H1-Überschrift

**Schweregrad:** Hoch

**Was passiert:** Der HTML-Quelltext enthält kein <h1>.

**Warum es wichtig ist:** Die H1 sagt dem Modell, was das Hauptthema ist. Ohne sie (oder mit mehreren) verliert die Seite ihren Fokus, und das Modell weiß nicht, was es eigentlich zusammenfasst.

**Was zu tun ist:**

Füge genau ein <h1> mit dem Hauptthema der Seite ein, so formuliert, wie es ein Kunde sagen würde.

### 2. Die Seite hat keine Überschriften

**Schweregrad:** Hoch

**Was passiert:** Im ausgelieferten HTML wurde keine H1–H6 gefunden.

**Warum es wichtig ist:** An den Überschriften zerschneidet ein Modell die Seite in zitierfähige Abschnitte. Ohne sie ist dein Inhalt eine einzige Textwand: Er wird ganz zitiert oder gar nicht.

**Was zu tun ist:**

Gliedere den Inhalt mit einer H1 und mehreren H2/H3, jeweils formuliert als die Frage, die der Abschnitt beantwortet.

### 3. Du hast keine strukturierten Daten

**Schweregrad:** Hoch

**Was passiert:** Das HTML enthält kein <script type="application/ld+json"> mit schema.org.

**Warum es wichtig ist:** JSON-LD ist der Steckbrief, den ein Modell ohne Missverständnisse liest: Name, Leistungen, Preise, Öffnungszeiten, Bewertungen. Ohne ihn muss die KI aus dem Text raten, liegt öfter daneben oder ignoriert dich und zitiert jemanden, der es ihr leichter macht.

**Was zu tun ist:**

Füge in den <head> einen Block wie diesen ein und passe die Werte an dein Unternehmen an:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "DEINE MARKE",
  "url": "http://harborcyclery.example",
  "logo": "http://harborcyclery.example/logo.png",
  "description": "Was du machst, für wen und wo, in einem Satz.",
  "sameAs": ["https://www.linkedin.com/company/…", "https://www.instagram.com/…"],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer service",
    "email": "hello@harborcyclery.example",
    "availableLanguage": ["en"]
  }
}
</script>

### 4. Die Website nutzt kein HTTPS

**Schweregrad:** Hoch

**Was passiert:** http://harborcyclery.example/ wird unverschlüsselt ausgeliefert.

**Warum es wichtig ist:** Ohne HTTPS verlierst du in klassischen Suchmaschinen an Ranking, und mehrere Crawler verwerfen die Domain von vornherein als vertrauenswürdige Quelle.

**Was zu tun ist:**

Installiere ein TLS-Zertifikat (Let's Encrypt ist kostenlos), leite den gesamten HTTP-Verkehr per 301 auf HTTPS um und aktiviere HSTS.

## Weitere Verbesserungen

### 1. Keine sitemap.xml

**Schweregrad:** Mittel

**Was passiert:** http://harborcyclery.example/sitemap.xml antwortet nicht, und die robots.txt gibt keine an.

**Warum es wichtig ist:** Ohne Sitemap findet ein Crawler nur, was von der Startseite aus verlinkt ist. Tiefere Seiten, also genau die, die konkrete Fragen beantworten, werden nie indexiert.

**Was zu tun ist:**

Erzeuge eine sitemap.xml mit allen öffentlichen URLs und ihrem echten <lastmod>, veröffentliche sie unter http://harborcyclery.example/sitemap.xml und trag sie mit dieser Zeile in die robots.txt ein:
Sitemap: http://harborcyclery.example/sitemap.xml

### 2. Kein Ersatzinhalt ohne JavaScript

**Schweregrad:** Mittel

**Was passiert:** Die Seite hängt von JS ab und hat kein <noscript> mit dem wesentlichen Inhalt.

**Warum es wichtig ist:** Solange du am serverseitigen Rendering arbeitest, gibt ein ordentliches <noscript> der KI wenigstens den Haupttext statt gar nichts.

**Was zu tun ist:**

Als vorübergehender Behelf: Pack die Überschrift, die zwei oder drei wichtigsten Absätze und die Hauptlinks in <noscript>. Die eigentliche Lösung bleibt, gerendertes HTML auszuliefern.

### 3. Der Titel ist nicht optimiert

**Schweregrad:** Mittel

**Was passiert:** Der <title> ist 14 Zeichen lang: „Harbor Cyclery“.

**Warum es wichtig ist:** Der Titel ist das Erste, was ein Modell liest, um zu entscheiden, worum es auf der Seite geht und ob sie die Frage des Nutzers beantwortet.

**Was zu tun ist:**

Schreib einen Titel mit 50–60 Zeichen nach dem Muster „Dein Angebot | Marke“ und nimm die Begriffe, die deine Kunden eintippen würden, wenn sie eine KI fragen.

<details><summary>Auf der Website gefundener Ausschnitt</summary>

```
Harbor Cyclery
```

</details>

### 4. Die Meta-Description fehlt

**Schweregrad:** Mittel

**Was passiert:** Im HTML fehlt <meta name="description">.

**Warum es wichtig ist:** Viele KI-Systeme nehmen die Beschreibung als maßgebliche Zusammenfassung der Seite, noch bevor sie den eigentlichen Inhalt lesen.

**Was zu tun ist:**

Füge eine Beschreibung mit 140–160 Zeichen ein, die in einem Satz sagt, was du machst, für wen und wo:
<meta name="description" content="…">

### 5. Die Seite nutzt kein semantisches HTML

**Schweregrad:** Mittel

**Was passiert:** Kein <main>, <article>, <nav> oder <header>: Alles ist ein <div>.

**Warum es wichtig ist:** Semantische Tags zeigen dem Extraktor, was Inhalt ist und was Menü oder Footer. Ohne sie vermischt sich dein Text mit der Navigation, und das Modell zitiert dich schlechter.

**Was zu tun ist:**

Pack den Hauptinhalt in <main>, jeden eigenständigen Block in <article>, das Menü in <nav> und den Footer in <footer>. Du ersetzt nur divs durch Tags mit Bedeutung, an den Styles änderst du nichts.

### 6. Keine Links im ausgelieferten HTML

**Schweregrad:** Mittel

**Was passiert:** Das Dokument enthält kein einziges <a href>.

**Warum es wichtig ist:** Wenn die Navigation per JavaScript erzeugt wird, findet ein KI-Crawler den Rest deiner Website nicht: Er indexiert nur diese eine Seite.

**Was zu tun ist:**

Liefere das Menü als echte <a href>-Links im HTML aus, nicht als Buttons mit onClick.

### 7. Die KI weiß nicht, wer du bist

**Schweregrad:** Mittel

**Was passiert:** Es gibt kein Schema vom Typ Organization, LocalBusiness oder Person.

**Warum es wichtig ist:** KIs empfehlen Entitäten, keine einzelnen URLs. Wenn du Name, Tätigkeitsbereich und Kontaktdaten nicht angibst, ordnen sie dich weder deiner Branche noch deiner Stadt zu.

**Was zu tun ist:**

Füge einen Organization-Block hinzu (oder LocalBusiness, wenn du Kunden an einer festen Adresse empfängst), mit name, url, logo, description, sameAs (deine Social-Media-Profile) und, falls zutreffend, address und areaServed.

### 8. Deine Zwischenüberschriften beantworten nicht die Fragen, die Menschen stellen

**Schweregrad:** Mittel

**Was passiert:** Die Seite hat keine H2/H3-Zwischenüberschriften.

**Warum es wichtig ist:** KIs suchen das Textstück, das die Frage des Nutzers wörtlich beantwortet. Eine H2 wie „Unsere Leistungen“ passt auf nichts; „Was kostet eine Badsanierung in München?“ passt auf eine echte Frage.

**Was zu tun ist:**

Formuliere mindestens 3 Zwischenüberschriften als genau die Frage, die dir ein Kunde stellen würde, und antworte im ersten Absatz darunter in 2–3 Sätzen. Beispiel: „## Wie lange dauert eine Badsanierung?“, gefolgt von „Zwei bis drei Wochen für ein Standardbad mit 5 m²…“.

### 9. Keine direkte Antwort in den ersten Zeilen

**Schweregrad:** Mittel

**Was passiert:** Die Seite beginnt ohne einen Absatz, der zusammenfasst, worum es geht.

**Warum es wichtig ist:** Ein Modell zitiert meist die ersten 40–60 Wörter, die die Anfrage beantworten. Wenn du mit Werbefloskeln einsteigst, findet es nichts, was es herausziehen kann.

**Was zu tun ist:**

Beginne die Seite mit einem Absatz von 40–70 Wörtern, der wörtlich antwortet: was es ist, für wen, was es kostet oder wie lange es dauert. Die Ausschmückungen kommen danach.

### 10. Kein Block mit häufigen Fragen

**Schweregrad:** Mittel

**Was passiert:** Es wurde kein Bereich mit häufigen Fragen erkannt.

**Warum es wichtig ist:** Eine FAQ mit strukturierten Daten ist das Frage-Antwort-Format, das KI-Suchmaschinen direkt verarbeiten: Jedes Paar ist eine fertige Antwort, mit deiner Marke daneben.

**Was zu tun ist:**

Füge 5–8 echte Kundenfragen mit Antworten hinzu (je 2–4 Sätze) und zeichne sie so aus:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "Was kostet die Leistung?",
    "acceptedAnswer": {"@type": "Answer", "text": "Ab 300 € für ein Standardprojekt…"}
  }]
}
</script>

Nimm die Fragen, die du schon per E-Mail oder WhatsApp bekommst: Genau die tippen die Leute in eine KI.

### 11. Keine llms.txt-Datei

**Schweregrad:** Niedrig

**Was passiert:** http://harborcyclery.example/llms.txt existiert nicht.

**Warum es wichtig ist:** llms.txt ist ein aufkommender Standard (noch nutzen ihn nicht alle Suchmaschinen), mit dem du einem Modell sagst, welche deiner Seiten wichtig sind und in welcher Reihenfolge es sie lesen soll. Das kostet zehn Minuten, und du bist vorbereitet, wenn er sich durchsetzt.

**Was zu tun ist:**

Erstelle http://harborcyclery.example/llms.txt in Markdown:

# harborcyclery.example

> Ein Satz, der beschreibt, was dein Unternehmen macht und für wen.

## Wichtigste Seiten
- [Leistungen](http://harborcyclery.example/services): was du genau anbietest.
- [Preise](http://harborcyclery.example/pricing): Tarife und Pakete.
- [Kontakt](http://harborcyclery.example/contact): wie man dich beauftragt.

### 12. Open-Graph-Metadaten fehlen

**Schweregrad:** Niedrig

**Was passiert:** Fehlende Tags: og:title, og:description, og:image.

**Warum es wichtig ist:** Mehrere Assistenten nutzen Open Graph als Kurzzusammenfassung, wenn sie deinen Link in einer Antwort anzeigen.

**Was zu tun ist:**

Ergänze im <head>:
<meta property="og:title" content="…">
<meta property="og:description" content="…">
<meta property="og:image" content="http://harborcyclery.example/cover.jpg">
<meta property="og:url" content="http://harborcyclery.example/">
<meta property="og:type" content="website">

### 13. Deinen Links fehlt die Vorschaukarte

**Schweregrad:** Niedrig

**Was passiert:** Es wurde kein <meta name="twitter:card"> gefunden.

**Warum es wichtig ist:** Wenn jemand deinen Link in X, Slack, WhatsApp oder Discord einfügt, erscheint er ohne Karte als graue Textzeile, die niemand anklickt. Mit Bild nimmt er zehnmal so viel Platz ein und wird viel häufiger geteilt.

**Was zu tun ist:**

Ergänze im <head>:
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="…">
<meta name="twitter:description" content="…">
<meta name="twitter:image" content="http://harborcyclery.example/twitter-image.png">

Das Bild muss 1200×630 px groß sein. Mit Next.js kannst du es per Code erzeugen, mit einer opengraph-image.tsx und einer twitter-image.tsx. So veraltet es nie.

### 14. Die kanonische URL fehlt

**Schweregrad:** Niedrig

**Was passiert:** Die Seite gibt kein <link rel="canonical"> an.

**Warum es wichtig ist:** Ohne Canonical zählt derselbe Inhalt unter mehreren URLs (mit und ohne www, mit Parametern, http und https) als verschiedene Seiten, und deine Autorität verteilt sich auf alle.

**Was zu tun ist:**

Ergänze im <head>: <link rel="canonical" href="http://harborcyclery.example/">

### 15. Wenig Inhalt in Listen oder Tabellen

**Schweregrad:** Niedrig

**Was passiert:** Die Seite hat nur 0 Listenpunkte und 0 Tabellen.

**Warum es wichtig ist:** Listen und Tabellen übernimmt ein Modell am genauesten, weil sie schon in vergleichbare Einheiten zerlegt sind (Preise, Schritte, Merkmale).

**Was zu tun ist:**

Mach aus deinen Arbeitsschritten und aus dem, was jede Leistung umfasst, Listen und aus deinem Paket- oder Preisvergleich eine Tabelle. Du formatierst nur um, was du schon geschrieben hast.

### 16. Der Inhalt nennt keine konkreten Zahlen

**Schweregrad:** Niedrig

**Was passiert:** Auf der ganzen Seite wurden nur 0 Zahlen mit Einheit gefunden.

**Warum es wichtig ist:** KIs zitieren lieber überprüfbare Aussagen. „Wir sind Branchenführer“ lässt sich nicht zitieren; „wir liefern in 48 Stunden, und die Installation kostet 149 €“ schon, und die Zahl nimmt deine Marke mit.

**Was zu tun ist:**

Nenn echte Zahlen: Preise ab, Lieferzeiten, Jahre am Markt, abgeschlossene Projekte, prozentuale Ersparnis. Eine Zahl pro Abschnitt.

### 17. Der Inhalt wirkt veraltet

**Schweregrad:** Niedrig

**Was passiert:** Es gibt keine Datumsangaben und keinen Bezug auf das aktuelle Jahr.

**Warum es wichtig ist:** Sagen zwei Quellen dasselbe, zitieren KI-Suchmaschinen die, die belegt, dass sie aktuell ist. Eine Seite ohne Zeitangaben gilt als alt.

**Was zu tun ist:**

Überprüfe und aktualisiere den Inhalt, zeig das Datum der letzten Prüfung auf der Seite an und aktualisiere „dateModified“ im JSON-LD. Auch wenn sich deine Angaben selten ändern, schreib „Aktualisiert 2026“ dazu, wo es stimmt, aber nie, wenn du nichts überprüft hast. Analysierte Seite: /

### 18. Das HTML wird unkomprimiert gesendet

**Schweregrad:** Niedrig

**Was passiert:** Die Antwort hat keinen Content-Encoding-Header.

**Warum es wichtig ist:** Komprimierung macht HTML um 70–80 % kleiner. Weniger Bytes heißen weniger Ladezeit pro Seite und mehr gecrawlte Seiten beim selben Budget.

**Was zu tun ist:**

Aktiviere gzip oder brotli auf deinem Server (Nginx: gzip on; Apache: mod_deflate) oder stell ein CDN davor, das es für dich übernimmt.

## Inhalte, die die KI heute nicht lesen kann

Diese Texte sind im Browser sichtbar, stehen aber NICHT im HTML, das der Server ausliefert. Sorg dafür, dass sie am Ende alle im initialen HTML stehen:

- "Bike repair in Portland"
- "Full service in 24 hours."
- "We collect your bike from home and bring it back ready to ride."
- "Gear and brake adjustment, wheel truing, lubrication and a bolt check."
- "New 11 or 12-speed chain, with a check of cassette wear."
- "Bleed on both brakes, new pads and lever adjustment."
- "We assemble it and set it up for your size."
- "Over 3,000 bikes serviced since 2016."
- "A fixed quote before we touch anything."
- "Six-month guarantee on every repair."

## So baust du das Bild, das beim Teilen des Links erscheint

Dein Link braucht ein Bild mit 1200×630 px für Open Graph (Facebook, LinkedIn, WhatsApp, Slack) und eines für die Twitter Card (X). Es darf dieselbe Datei sein.

**Wenn das Projekt Next.js (App Router) nutzt, erzeuge die Bilder per Code**, damit sie nie veralten. Lege `app/opengraph-image.tsx` an:

```tsx
import { ImageResponse } from "next/og";

export const alt = "Harbor Cyclery";
export const size = { width: 1200, height: 630 };
export const contentType = "image/png";

export default function Image() {
  return new ImageResponse(
    (
      <div
        style={{
          width: "100%",
          height: "100%",
          display: "flex",
          flexDirection: "column",
          justifyContent: "center",
          padding: "80px",
          // Ein diagonaler Verlauf gibt Tiefe, ganz ohne Bilder.
          background: "linear-gradient(135deg, #0b1020 0%, #1b1038 60%, #2a1458 100%)",
          color: "#ffffff",
          fontFamily: "sans-serif",
        }}
      >
        <div style={{ fontSize: 26, opacity: 0.75 }}>harborcyclery.example</div>
        <div style={{ marginTop: 32, fontSize: 64, fontWeight: 700, lineHeight: 1.08, letterSpacing: -2 }}>
          DEINE HAUPTAUSSAGE, DIESELBE WIE IN DER H1
        </div>
        <div style={{ marginTop: 34, fontSize: 28, color: "#c4b5fd", maxWidth: 940 }}>
          Eine ergänzende Zeile: was du anbietest und für wen.
        </div>
      </div>
    ),
    size,
  );
}
```

Lege dann `app/twitter-image.tsx` an, das dasselbe re-exportiert, damit beide Karten übereinstimmen:

```tsx
export { default, alt, size, contentType } from "../opengraph-image";
```

Next erzeugt die Tags `og:image` und `twitter:image` dann selbst. Setze `metadataBase: new URL("https://DEINE-DOMAIN")` im Root-Layout, damit die URLs absolut sind: Relative URLs ignorieren die meisten Crawler.

**Wenn das Projekt kein Next.js nutzt**, exportiere ein PNG mit 1200×630 und unter 1 MB, leg es unter `/og-image.png` ab und trag die Tags von Hand ein:

```html
<meta property="og:title" content="…">
<meta property="og:description" content="…">
<meta property="og:image" content="https://DEINE-DOMAIN/og-image.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:url" content="https://DEINE-DOMAIN/">
<meta property="og:type" content="website">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="…">
<meta name="twitter:description" content="…">
<meta name="twitter:image" content="https://DEINE-DOMAIN/og-image.png">
```

Regeln, die den Unterschied machen:

- Genau 1200×630 px. Andere Seitenverhältnisse werden beschnitten, und der Text geht verloren.
- Auch als Vorschaubild lesbar: die Hauptaussage in 60 px oder größer, höchstens drei Zeilen.
- Das Bild wiederholt das Versprechen der Seite. Es ist kein Logo auf einem Hintergrund.
- Absolute URLs mit Protokoll. Ein relativer Pfad scheitert, ohne dass du es merkst.
- Unter 1 MB, als PNG oder JPEG. WebP lesen noch nicht alle Scraper.
- Prüf es unter https://cards-dev.twitter.com/validator und indem du den Link in einen Slack- oder WhatsApp-Chat mit dir selbst einfügst.

## So prüfst du, ob alles behoben ist

Wenn du fertig bist, führ diese Prüfungen aus und zeig mir das Ergebnis:

```bash
# 1. Das sieht ein KI-Crawler WÖRTLICH (ohne JavaScript auszuführen).
curl -sL "http://harborcyclery.example/" | sed 's/<script[^>]*>.*<\/script>//g; s/<[^>]*>//g' | tr -s ' \n' | head -60

# 2. Der Server darf KI-Bots nicht blockieren (erwartet: überall 200).
curl -sL -o /dev/null -w "OAI-SearchBot: %{http_code}\n" -A "OAI-SearchBot" "http://harborcyclery.example/"
curl -sL -o /dev/null -w "Claude-SearchBot: %{http_code}\n" -A "Claude-SearchBot" "http://harborcyclery.example/"
curl -sL -o /dev/null -w "PerplexityBot: %{http_code}\n" -A "PerplexityBot" "http://harborcyclery.example/"

# 3. robots.txt darf kein Disallow enthalten, das diese Agents betrifft.
curl -s "http://harborcyclery.example/robots.txt"
```

Ziel ist, dass der Text aus Schritt 1 alle wichtigen Inhalte der Seite enthält. Was dort nicht steht, existiert für die KI nicht.

---

Bericht erstellt von Tarsier · http://harborcyclery.example/ · 36/100

So prüfst du, ob es funktioniert hat

Beheben ist die halbe Arbeit. Mit diesen Schritten weißt du, dass jede Lösung angekommen ist. Sie stehen in der sinnvollen Reihenfolge, und es sind nur die, die deine Analyse verlangt. Jeder endet mit einer Zeile, die zeigt, wie es aussieht, wenn alles stimmt: Siehst du das, hakst du den Schritt ab.

  1. Melde deine Website in der Google Search Console und in den Bing Webmaster Tools an

    Das sind die beiden Fenster, durch die du deine Website so siehst wie die Suchmaschinen. Fast jede Prüfung weiter unten läuft über eines davon, und beide sind kostenlos.

    1. Geh auf search.google.com/search-console und klick auf „Property hinzufügen“.
    2. Wähle „Domain“ (nicht „URL-Präfix“): So deckt die Property die Website mit und ohne www ab, über http und https.
    3. Google gibt dir einen TXT-Eintrag. Trag ihn in der DNS-Zone deiner Domain ein, im Kundenbereich des Anbieters, bei dem du sie gekauft hast, und klick auf „Bestätigen“. Das kann ein paar Minuten dauern.
    4. Danach wählst du auf bing.com/webmasters den Import aus der Google Search Console. Die Bestätigung läuft dann automatisch, und du musst nichts doppelt machen. Bing ist der Index, aus dem Copilot schöpft.

    So soll es aussehen Beide Konsolen zeigen deine Domain als bestätigt.

  2. Deine Inhalte kommen ohne JavaScript an

    Das ist das gravierendste Problem deiner Analyse: Was ein Mensch heute auf deiner Website liest, steht nicht im HTML, das der Crawler bekommt.

    1. Dieser Satz stammt von deiner Website und erreicht die KI heute nicht: „Bike repair in Portland“. Der Befehl unten sucht ihn im ausgelieferten HTML, ohne Browser.
    2. Öffne in der Search Console die „URL-Prüfung“, füge deine Adresse ein und klick auf „Live-URL testen“.
    3. Wenn der Test fertig ist: „Getestete Seite anzeigen“ → Tab „HTML“. Such mit Strg+F nach einem Satz von deiner Seite: Er muss dort stehen.
    Im Terminal
    curl -s http://harborcyclery.example/ | grep -c -F "Bike repair in Portland"

    So soll es aussehen Der Befehl gibt 1 oder mehr aus. Gibt er 0 aus, kommt der Satz immer noch nicht an.

  3. Es gibt eine Sitemap, und die Suchmaschinen haben sie gelesen

    Deine Website hat keine sitemap.xml. Ohne sie finden Suchmaschinen deine Seiten irgendwann, aber nicht dann, wenn du sie veröffentlichst.

    1. Deine Plattform kann das mit ziemlicher Sicherheit schon: WordPress erzeugt sie automatisch unter /wp-sitemap.xml, Shopify und Wix unter /sitemap.xml.
    2. Füg am Ende deiner robots.txt eine Zeile hinzu: „Sitemap: http://harborcyclery.example/sitemap.xml“ (oder die Adresse, die dir deine Plattform nennt).
    3. In der Search Console unter „Sitemaps“ die Adresse einfügen → „Senden“. In den Bing Webmaster Tools genauso unter „Sitemaps“.
    Im Terminal
    curl -s -o /dev/null -w "%{http_code}\n" http://harborcyclery.example/sitemap.xml

    So soll es aussehen Der Befehl gibt 200 aus, und in der Search Console hat die Sitemap den Status „Erfolgreich“ und eine Zahl gefundener Seiten.

  4. llms.txt antwortet mit deinen Inhalten

    Du hast keine llms.txt: die Zusammenfassung deiner Website, mit der eine KI sie versteht, ohne sie komplett durchsuchen zu müssen.

    1. Lade sie ins Hauptverzeichnis hoch, neben die robots.txt. Sie muss als Text ausgeliefert werden, nicht als Seite deiner Website.
    Im Terminal
    curl -s http://harborcyclery.example/llms.txt | head -5

    So soll es aussehen Die erste Zeile beginnt mit „# “ und dem Namen deines Unternehmens. Siehst du HTML oder deine Fehlerseite, wird die Datei nicht ausgeliefert.

  5. Deine strukturierten Daten lassen sich fehlerfrei lesen

    Deine Website deklariert keine strukturierten Daten: Die KI muss raten, wer du bist, was du verkaufst und wo.

    1. Öffne search.google.com/test/rich-results und füg http://harborcyclery.example/ ein.
    2. Um alle Typen zu sehen, nicht nur die, die Google mit Rich Results belohnt, prüf sie zusätzlich mit validator.schema.org.

    So soll es aussehen Beide erkennen deine Organization oder dein LocalBusiness mit Name, Adresse und Kontaktdaten, ohne Fehler. Gelbe Warnungen blockieren nichts.

  6. Der echte Test

    Alles davor prüft Einzelteile. Das hier prüft das Ergebnis.

    1. Analysiere deine Website noch einmal auf https://gettarsier.com/de. Die zweite Analyse ist innerhalb von 30 Tagen nach dem Kauf kostenlos, im selben Browser.
    2. In zwei bis drei Wochen (so lange brauchen die Crawler, bis sie wiederkommen) stellst du ChatGPT mit Suche, Perplexity und Claude die Frage, die deine Seite beantwortet, mit deiner Stadt oder deiner Branche. Schau dir an, welche Quellen sie zitieren.

    So soll es aussehen Die Punktzahl steigt, beide Spalten des Vergleichs zeigen dasselbe, und mit der Zeit taucht deine Website unter den Quellen auf.

Alle Prüfungen

PrüfungPunktzahlErgebnis
Die Seite antwortet korrekt100HTTP 200 in 7 ms.
robots.txt lässt KI-Suchmaschinen zu100Die robots.txt blockiert keinen Crawler der KI-Suchmaschinen.
Der Server blockiert keine KI-Bots100Der Server antwortet einem KI-Bot genauso wie einem Browser.
Keine Tags, die die Indexierung verhindern100Keine Einschränkungen für die Indexierung.
llms.txt-Datei0Du hast keine /llms.txt.
Sitemap vorhanden0Keine sitemap.xml gefunden, und die robots.txt gibt auch keine an.
Was die KI sieht ≈ was ein Mensch sieht0Die KI bekommt 0 % des Inhalts, den ein Mensch sieht (0 von 160 Wörtern).
Genug Text im HTML00 lesbare Wörter, ohne JavaScript auszuführen.
Nichts Wichtiges hängt von JavaScript ab018 Textblöcke existieren erst, nachdem JavaScript gelaufen ist.
Das HTML ist keine leere Hülle100Das HTML kommt mit ausgeschriebenem Inhalt an.
Ersatz ohne JavaScript0Es gibt keinen Ersatz für alle, die kein JavaScript ausführen.
Seitentitel40„Harbor Cyclery“ (14 Zeichen).
Seitenbeschreibung0Keine Meta-Description vorhanden.
Genau eine aussagekräftige H10Im ausgelieferten HTML gibt es keine einzige H1.
Überschriftenhierarchie0Keine Überschriften.
Semantisches HTML0Die Seite besteht nur aus <div>-Elementen.
Alt-Text bei Bildern100Die Seite enthält keine Bilder.
Links mit aussagekräftigem Text50Im HTML gibt es keine Links.
Strukturierte Daten (JSON-LD)0Die Seite enthält keine strukturierten Daten nach schema.org.
Deklarierte Identität (wer du bist)0Du gibst nicht an, wer hinter der Website steht.
Open-Graph-Metadaten00 von 3 wichtigen Open-Graph-Tags.
Vorschaukarte beim Teilen des Links0Weder Karte noch Bild: Der Link wird als nackter Text geteilt.
Kanonische URL40Es gibt kein link rel=canonical.
Autorschaft und Aktualisierungsdatum60Kein Autor angegeben, kein Aktualisierungsdatum.
Abschnitte, die echte Fragen beantworten0Keine der 0 Zwischenüberschriften ist als Frage formuliert.
Direkte Zusammenfassung am Anfang0Es gibt keinen einleitenden Absatz mit Inhalt.
Listen und Tabellen00 Listenpunkte und 0 Tabellen.
Konkrete, überprüfbare Zahlen00 Zahlenangaben (Preise, Fristen, Prozente) im Text.
Block mit häufigen Fragen0Kein Bereich mit häufigen Fragen.
Aktuell gehaltener Inhalt50Im Inhalt wurde kein Zeitbezug gefunden.
Antwortgeschwindigkeit des Servers100Das HTML ist in 7 ms vollständig da.
Sichere Verbindung (HTTPS)0Die Website wird über unverschlüsseltes HTTP ausgeliefert.
HTML-Komprimierung40Das HTML wird unkomprimiert ausgeliefert.
Größe des HTML-Dokuments1004 KB HTML.
Für Mobilgeräte optimiert100Deklariert einen responsiven Viewport.
Sprache angegeben100Angegebene Sprache: en.

Sollen wir das lieber machen?

Wenn du es nicht selbst umsetzen oder mit deinem Entwickler hin- und herschreiben willst, schick uns diesen Bericht, und wir sagen dir, was es kostet, das zu erledigen.

Nach Schweregrad: 3 kritische · 4 schwere · 10 mittlere · 8 geringe