Crawler-Ansicht

Die meisten Bots zeichnen Ihre Seite nie. Sie nehmen das HTML, das Ihr Server schickt, behalten die Wörter und ziehen weiter. Diese Prüfung zeigt diese Wörter in der Reihenfolge, in der ein Bot sie antrifft, und markiert, was fehlt.

Eine Anfrage für die Seite und eine für ihre robots.txt. Keine wird gespeichert.

Oder probieren Sie wikipedia.org, react.dev

Jede Seite existiert in zwei Fassungen

Die erste Fassung ist das HTML-Dokument, das Ihren Server verlässt. Die zweite baut der Browser daraus, nachdem er die Stylesheets geladen, die Skripte ausgeführt und alles abgerufen hat, was diese Skripte anfordern. Menschen sehen immer nur die zweite Fassung.

Bots arbeiten meist mit der ersten. Googlebot rendert Seiten zwar mit einem Headless Chrome, aber in einem späteren Durchgang, der hinterherhinken und in ein Zeitlimit laufen kann. Bingbot rendert weniger. Die Crawler, die KI-Assistenten füttern, und die Vorschau-Abrufer von Chat- und Social-Media-Diensten führen JavaScript in der Regel gar nicht aus. Steht Ihr Text nur in der zweiten Fassung, bekommt ein guter Teil Ihres maschinellen Publikums eine leere Seite.

Diese Prüfung ruft die erste Fassung ab und hört dort auf. Nichts wird ausgeführt, kein Stylesheet angewendet.

So lesen Sie die Textansicht

Wir gehen den Seitenkörper in Quelltextreihenfolge durch und geben ihn als Text aus. Skripte, Stile, Templates und eingebettete SVG-Zeichnungen werden übersprungen. Der Rest ist so markiert:

#, ##, ###
Eine Überschrift und ihre Ebene. Lesen Sie einmal nur diese Zeilen. Sie sollten als Inhaltsverzeichnis der Seite taugen.
Unterstrichene Wörter
Ein Link. Fahren Sie mit der Maus darüber, um die Zieladresse zu sehen.
[Image: …]
Der alt-Text eines Bildes. Ein Bild ohne alt-Attribut wird als fehlend angezeigt, mit seinem Dateinamen. Schaltflächen und Formularfelder erscheinen ebenso in Klammern.
Als versteckt markierter Text
Wörter, die im HTML stehen, aber das Attribut hidden tragen oder einen Inline-Stil wie display:none, visibility:hidden, font-size:0 oder einen großen negativen text-indent.
Als noscript markierter Text
Inhalt in <noscript>, den nur Bots und Besucher ohne JavaScript erhalten.

Unter dem Text stehen die Zahlen: HTML-Größe, Anzahl sichtbarer Wörter, Textanteil am HTML, Skripte, Links und Bilder. Ein Textanteil zwischen 10 und 30 % ist typisch für eine von Hand oder mit einem CMS gebaute Seite. Bei 1 oder 2 % besteht das Dokument hauptsächlich aus Code.

Was die einzelnen Befunde auslöst

BefundAngewandte Regel
Inhalt erst nach JavaScriptWeniger als 60 sichtbare Wörter, zusammen mit einem der folgenden Punkte: ein leerer Anwendungscontainer (#root, #app, #__next, #__nuxt, app-root und ähnliche), drei oder mehr externe Skripte, über 50 KB Inline-Skript oder über 150 KB in den Hauptskriptdateien.
Sehr wenig TextWeniger als 150 sichtbare Wörter.
Seite bittet, nicht indexiert zu werdennoindex oder none in einem robots-Meta-Tag oder einem X-Robots-Tag-Header.
Google nicht erlaubtDer Seitenpfad passt zu einer Disallow-Regel in der robots.txt, die für Googlebot gilt.
Mehr versteckter als sichtbarer TextVersteckte Wörter übersteigen die sichtbaren, mit einer Untergrenze von 80.
Links, denen Bots nicht folgen könnenhref="#", href="javascript:…" oder ein onclick ohne href.
Keine Überschrift der Ebene 1, Bilder ohne altDirekt im HTML gezählt.

Der letzte Block wendet Ihre robots.txt für diese eine Adresse auf zehn Crawler an: Googlebot, Bingbot, Google-Extended, GPTBot, OAI-SearchBot, ClaudeBot, Claude-SearchBot, PerplexityBot, CCBot und Applebot-Extended. Eine Sperre für Googlebot gilt als Fehler. Eine Sperre für einen KI-Crawler wird nur gemeldet, denn diese Entscheidung steht Ihnen zu. Die Prüfung des KI-Bot-Zugriffs deckt eine längere Liste für die ganze Website ab.

So kommt Ihr Text in die erste Fassung

Hat die Prüfung einen leeren Container gefunden, ist die Seite eine clientseitige Anwendung. Der Server schickt ein Gerüst, und der Browser füllt es. Hier die Abhilfen, von der gründlichsten zur schwächsten:

  1. Auf dem Server rendern. Next.js, Nuxt, SvelteKit, Remix und Angular können alle für jede Anfrage vollständiges HTML erzeugen und die Skripte danach daran anhängen. Meist ist das eine Frage der Konfiguration, kein Neubau.
  2. Statische Seiten beim Build erzeugen. Für Inhalte, die sich selten ändern, schreiben Werkzeuge wie Astro, Gatsby oder der statische Export der genannten Frameworks pro Seite eine vollständige HTML-Datei.
  3. Für Bots vorrendern. Ein Prerendering-Dienst hält einen gerenderten Schnappschuss bereit und liefert ihn an Crawler aus. Das funktioniert, aber dann pflegen Sie zwei Fassungen.

Bei einem klassischen CMS wie WordPress oder Drupal enthält das HTML den Text bereits, und die Befunde sind kleiner: ein Preis, der nur in einem Bild steht, ein Menü, dessen Links onclick-Handler sind, oder eine Telefonnummer in einem Bannerbild mit leerem alt.

Versteckter Text wird nur über das Attribut hidden und Inline-Stile erkannt. Text, der per Klasse in einem externen Stylesheet versteckt wird, zählt hier als sichtbar, weil wir keine Stylesheets laden. Eingeklappte Menüs, Tabs und Akkordeons sind normal, und Suchmaschinen bestrafen sie nicht.

Häufige Fragen

Führt Google beim Crawlen einer Seite JavaScript aus?

Ja, aber in einem zweiten Schritt. Google indexiert zuerst das heruntergeladene HTML und stellt die Seite dann zum Rendern in einem Headless Chrome in die Warteschlange. Dieser Schritt kann später kommen und wartet womöglich nicht auf langsame Skripte oder auf Inhalte, die erst beim Scrollen oder Klicken nachgeladen werden.

Führen die Crawler von ChatGPT, Claude und Perplexity JavaScript aus?

In der Regel nicht. GPTBot, ClaudeBot, PerplexityBot und CCBot laden das HTML herunter und lesen seinen Text. Eine Seite, die Skripte braucht, um ihren Inhalt zu zeigen, gibt ihnen wenig oder nichts.

Schadet versteckter Text der SEO?

Nicht, wenn er Teil der Oberfläche ist. Menüs, Tabs, Akkordeons und Dialoge werden normal indexiert. Als Spam werten Suchmaschinen Text, der absichtlich vor Besuchern versteckt wird, um Keywords unterzubringen, etwa weiße Schrift auf weißem Hintergrund.

Was ist ein gutes Text-zu-HTML-Verhältnis?

Es gibt keinen Zielwert, und es ist kein Rankingfaktor. Sorgfältig gebaute Seiten liegen oft zwischen 10 und 30 %. Ein sehr niedriger Wert ist nur ein Hinweis, dass das Dokument für die Menge an Inhalt viel Markup oder Inline-Skript mitschleppt.

Warum zeigt die Ansicht für meine Website fast nichts?

Ihr Server schickt ein Anwendungsgerüst, und der Inhalt wird im Browser hinzugefügt. Öffnen Sie den Seitenquelltext (Strg+U oder Cmd+Option+U) und suchen Sie nach einem Satz Ihrer Seite. Steht er nicht dort, sehen ihn Bots, die JavaScript überspringen, auch nicht.