# KI-Crawler führen kein JavaScript aus

> GPTBot, ClaudeBot und PerplexityBot lesen rohes HTML und führen nie Skripte aus. So prüfen Sie, ob Ihr Katalog sichtbar ist – und beheben es ohne Rewrite.

**Language:** de  
**Published:** 2026-08-09  
**Category:** Technical · **Tags:** AI crawlers, JavaScript rendering, server-side rendering, GPTBot, structured data, product data  
**Canonical:** https://partsgraph.ai/de/blog/ai-crawlers-do-not-run-javascript

## Kurz gefasst

**Führen KI-Crawler wie GPTBot und ClaudeBot JavaScript aus?**

Nein. Eine gemeinsame Analyse von Vercel und MERJ über ein Netzwerk, das in einem einzigen Monat 569 Millionen GPTBot-Anfragen auslieferte, fand keinerlei Hinweise darauf, dass GPTBot, ClaudeBot, PerplexityBot oder der Crawler von Meta JavaScript ausführen: Sie parsen das rohe HTML, das der Server zurückgibt, und verwerfen die Skripte. Google ist die Ausnahme, denn Gemini erbt die Rendering-Infrastruktur von Googlebot. Wenn Ihr parametrischer Katalog die Produktdaten clientseitig zusammensetzt, sieht ein KI-Assistent nur eine leere Hülle dort, wo Ihre technischen Daten stehen sollten.

---

## Die kurze Antwort

KI-Crawler führen kein JavaScript aus. Wenn GPTBot, ClaudeBot oder PerplexityBot eine Seite anfordert, setzt der Crawler ein einfaches HTTP-GET ab, nimmt die Bytes, die der Server zurückgibt, und parst sie als Text. Es gibt keinen Browser, keinen DOM-Aufbau, keine Hydration und kein Warten auf aufgelöste XHR-Aufrufe. Eine gemeinsame Analyse von Vercel und MERJ über ein Netzwerk, das in einem einzigen Monat 569 Millionen GPTBot-Anfragen und 370 Millionen ClaudeBot-Anfragen auslieferte, fand keinerlei Hinweise darauf, dass irgendein größerer KI-Crawler JavaScript ausführt. Die Crawler laden Skriptdateien durchaus gelegentlich herunter – GPTBot rief JavaScript in 11,50 % der Anfragen ab, ClaudeBot in 23,84 % – und führen sie dann nie aus.

> **Figure.** What a browser receives versus what an AI crawler receives for the same product page.

Google ist die Ausnahme – und der Grund dafür, dass so viele Teams das Problem bislang nicht bemerkt haben. Googlebot betreibt einen Rendering-Dienst auf Basis von Headless-Chromium, und Gemini stützt sich auf diese Infrastruktur. Ein clientseitig gerenderter parametrischer Katalog kann in der Google-Suche also hervorragend ranken und in ChatGPT, Claude und Perplexity dennoch vollständig fehlen. Das ist längst nicht mehr dasselbe Publikum: Die Einkäuferstudie von Forrester aus dem Jahr 2026 ergab, dass **94 % der Geschäftskunden inzwischen KI in ihrem Beschaffungsprozess einsetzen**, und Adobe hat gemessen, dass der über KI vermittelte Traffic auf Handelsseiten **im ersten Quartal 2026 um 393 % gegenüber dem Vorjahr** gewachsen ist.

## Was GPTBot tatsächlich bekommt

Es lohnt sich, hier präzise zwischen zwei Dokumenten zu unterscheiden, denn die meisten Katalogteams sehen immer nur das zweite.

Das **rohe HTML** ist der Byte-Strom, den der Origin-Server in die Antwort schreibt. Es ist das, was `curl` ausgibt, was `view-source:` anzeigt und was ein reiner Text-HTTP-Client parst.

Das **gerenderte DOM** ist das, was im Speicher liegt, nachdem der Browser dieses HTML geparst, jedes Skript geladen und ausgeführt, jeden `fetch()`-Aufruf aufgelöst und jede Mutation angewendet hat. Es ist das, was der Elements-Bereich in den Browser-DevTools anzeigt.

In einem modernen SPA-Katalog haben diese beiden Dokumente fast nichts gemeinsam. Das rohe HTML ist eine Hülle: ein `<div id="root">`, ein Preload-Manifest und hundert Kilobyte an Bundle-Referenzen. Jede aussagekräftige Angabe – Artikelnummer, Bauform, Toleranz, Betriebstemperaturbereich, RoHS-Status, Lifecycle-Status, Lagerbestand, Preisstaffel – kommt erst später, aus einem API-Aufruf, den der Crawler nie ausführen wird.

> Ein KI-Crawler sieht Ihr rohes HTML und sonst nichts. Steht eine technische Angabe nicht in den Bytes, die der Server zurückgibt, dann existiert diese Angabe für das Modell nicht.

## Welche Clients rendern – und welche nicht

| Client | Betreiber | Führt JavaScript aus | Wofür er da ist |
|---|---|---|---|
| GPTBot | OpenAI | Nein | Sammeln von Trainingsdaten |
| OAI-SearchBot | OpenAI | Nein | Suchindexierung für ChatGPT |
| ChatGPT-User | OpenAI | Nein | Live-Abruf zur Frage eines Nutzers |
| ClaudeBot | Anthropic | Nein | Sammeln von Trainingsdaten |
| PerplexityBot | Perplexity | Nein | Suchindexierung |
| Meta-ExternalAgent | Meta | Nein | Training und Indexierung |
| Bytespider | ByteDance | Nein | Sammeln von Trainingsdaten |
| Googlebot | Google | **Ja**, Headless-Chromium | Suche und Grounding für Gemini |
| Applebot | Apple | **Ja**, rendert ggf. im Browser | Siri, Spotlight, Safari |

Jedes „Nein“ in dieser Tabelle ist gemessenes Verhalten aus dem Datensatz von Vercel und MERJ, keine Vermutung. Jedes „Ja“ ist vom Betreiber dokumentiert: Google veröffentlicht seine Rendering-Pipeline, und Apples eigene Crawler-Dokumentation hält fest, dass Applebot „die Inhalte Ihrer Website in einem Browser rendern kann“. Die neueren Agenten Claude-SearchBot und Claude-User von Anthropic sind erst nach der Studie erschienen und wurden nicht separat gemessen; seither hat kein Betreiber für sie eine Rendering-Pipeline angekündigt.

Die praktische Folge ist auf unangenehme Weise asymmetrisch. Das Rendern ist der teure Teil des Crawlings – und ausgerechnet die Betreiber, die darauf verzichtet haben, stehen heute zwischen Ihrem Produkt und Ihrem Einkäufer.

## Warum parametrische Kataloge schlechter abschneiden als alles andere

Adobe hat im April 2026 Handelsseiten auf ihre Maschinenlesbarkeit hin bewertet und kam bei Produktdetailseiten auf **66 % – den niedrigsten Wert aller Seitentypen**, unterhalb von Startseiten (75 %), Kategorieseiten (74 %) und selbst FAQ-Seiten (80 %). Diese Reihenfolge ist kein Zufall. Genau die Seiten mit den strukturiertesten, wertvollsten und entscheidungsrelevantesten Daten sind mit dem meisten JavaScript gebaut.

Fünf Muster verursachen den größten Teil des Schadens:

1. **Der Filterzustand liegt im Client.** Ihr parametrischer Selektor ist eine React-Komponente, die aus einem lokalen Store liest. Für „0603, 100nF, X7R, 50V“ gibt es keine serverseitig gerenderte URL – also nichts, was ein Crawler abrufen, und nichts, was er zitieren könnte.
2. **Die Tabelle der technischen Daten ist eine API-Antwort.** Die Seitenhülle wird gerendert, dann füllt eine Anfrage an `/api/product/attributes` die Tabelle. Der Crawler kommt über die Hülle nicht hinaus.
3. **Preis und Verfügbarkeit sind bewusst clientseitig.** Für das Caching sinnvoll. Für die maschinelle Sichtbarkeit fatal, denn ein Modell, das den Lagerbestand nicht sieht, empfiehlt das Bauteil nicht.
4. **Tabs und Akkordeons laden ihre Inhalte verzögert nach.** Datenblätter, Application Notes, Konformitätsnachweise und CAD-Links werden üblicherweise erst per Klick geladen. Ein Crawler klickt nie.
5. **Infinite Scroll ersetzt die Paginierung.** Ab Produkt 51 gibt es überhaupt keine crawlbare URL mehr.

Partsgraph hat im August 2026 weltweit 984 Distributoren- und Herstellerdomains geprüft – in Nordamerika, Europa und Asien. Der Median der KI-Sichtbarkeit lag bei **50 von 100 Punkten**, und **70 % der Kohorte erhielten die Note D oder F**. Rund die Hälfte konnte einem gewöhnlichen Client ohne Browser nicht eine einzige lesbare Katalogseite ausliefern. Die Elektronikdistribution war das schwächste Segment, mit einem Median von 34.

## Wie teste ich, ob KI-Crawler meinen Katalog lesen können?

Führen Sie das gegen Ihren eigenen Origin aus. Die Seite eines Wettbewerbers mit einem gefälschten Crawler-User-Agent zu testen, erzeugt falsch negative Ergebnisse, denn Bot-Manager im Unternehmensumfeld verifizieren Crawler über die Quell-IP und nicht über den User-Agent-String – ein gefälschter Header von einer nicht erkannten Adresse landet in einer Bot-Challenge, ganz gleich, was in der robots.txt steht.

1. **Rufen Sie das rohe HTML ab.** Nehmen Sie Ihre wertvollste Produktseite.

```
curl -sS --compressed -o page.html -w "status=%{http_code} bytes=%{size_download}" "https://example.com/products/part-number"
```

2. **Suchen Sie die Artikelnummer in den Bytes.** Nicht im Browser – in der Datei.

```
grep -c "MPN-12345" page.html
```

Wenn das `0` zurückgibt, kann kein KI-Crawler erkennen, dass es auf dieser Seite um dieses Bauteil geht.

3. **Suchen Sie nach drei parametrischen Werten**, nach denen ein Ingenieur erwartungsgemäß filtern würde.

```
grep -oiE "operating temperature|tolerance|package|rohs|lifecycle" page.html | sort | uniq -c
```

4. **Zählen Sie die Blöcke mit strukturierten Daten.**

```
grep -c "application/ld+json" page.html
```

Null bedeutet: kein maschinenlesbarer Produktdatensatz. Einer oder mehr bedeutet, dass Sie ihn extrahieren und prüfen sollten, ob er tatsächlich `sku`, `mpn`, `gtin`, `brand`, `offers` und Ihre wichtigsten `additionalProperty`-Einträge enthält – und nicht bloß eine Breadcrumb-Navigation.

5. **Vergleichen Sie mit der gerenderten Seite.** Öffnen Sie dieselbe URL in einem Browser mit deaktiviertem JavaScript. Was übrig bleibt, entspricht ungefähr dem, was ein Crawler bekommt. Die Lücke zwischen diesem Rest und der normalen Seite ist Ihre Unsichtbarkeit.

6. **Prüfen Sie den gesamten Pfad, nicht eine einzelne Seite.** Wiederholen Sie das für eine Kategorieseite, eine Suchergebnisseite, einen Datenblatt-Link und einen CAD-Download. Ein Crawler, der eine Produktseite zwar lesen, sie aber nicht über eine crawlbare Kategorieliste erreichen kann, kommt trotzdem nicht weiter.

Eine Seite, die den Test besteht, zeigt die Artikelnummer dutzendfach, die parametrischen Bezeichnungen als Text und mindestens einen JSON-LD-Block. Zur Orientierung: Eine sauber gebaute Produktseite liefert typischerweise 60–200 KB HTML mit der vollständigen Datentabelle; eine kaputte SPA-Hülle liefert 4–15 KB, die nichts als Bundle-Referenzen enthalten.

## Wie behebt man das, ohne die Website neu zu bauen?

Sie müssen die Plattform nicht wechseln. Die Bytes am Origin müssen die Fakten enthalten – mehr nicht. Dafür gibt es vier Wege, und sie schließen einander nicht aus.

| Ansatz | Aufwand | Was er behebt | Hauptrisiko |
|---|---|---|---|
| Server-side Rendering der Produktrouten | Hoch | Alles, dauerhaft | Kosten des Plattformwechsels und Regressionsrisiko |
| Prerendering / Dynamic Rendering | Mittel | Inhalte im rohen HTML | Veraltete Cache-Stände bei Preis und Bestand |
| Serverseitig gerendertes JSON-LD | Gering | Maschinenlesbare Fakten | Wirkungslos, wenn der Fließtext leer bleibt |
| Markdown-Spiegel und Overlay-Schicht | Gering | Inhalte, Dokumente und Agentenzugriff | Canonical-Links müssen gepflegt werden |

**Server-side Rendering** der Produkt- und Kategorierouten ist die dauerhafte Antwort. Wenn Sie bereits ein Framework einsetzen, das es unterstützt, ist die Umstellung der Katalogrouten auf Server-Komponenten oder statische Generierung mit inkrementeller Revalidierung meist eine Sache von Wochen, nicht von Quartalen – denn die Datenschicht existiert bereits, sie wird nur von der falschen Seite aufgerufen.

**Prerendering** ist die ehrliche Übergangslösung. Rendern Sie jede Produktseite einmal beim Build oder nach einem festen Zeitplan, cachen Sie das HTML am Edge und liefern Sie es an alle aus. Menschen und Maschinen bekommen dasselbe Dokument; Crawlern eine abweichende Seite unterzuschieben, ist zugleich ein Richtlinienrisiko und in der Praxis kontraproduktiv, denn das Modell zitiert genau die Version, die es erhalten hat.

**Serverseitig gerendertes JSON-LD** ist die Änderung mit dem besten Verhältnis von Aufwand und Wirkung. Legen Sie es in das HTML, das der Server ausliefert, und nicht in einen Tag-Manager.

```
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "sku": "MPN-12345",
  "mpn": "MPN-12345",
  "name": "100 nF 50 V X7R 0603 ceramic capacitor",
  "brand": { "@type": "Brand", "name": "Example Components" },
  "additionalProperty": [
    { "@type": "PropertyValue", "name": "Capacitance", "value": "100 nF" },
    { "@type": "PropertyValue", "name": "Voltage rating", "value": "50 V" },
    { "@type": "PropertyValue", "name": "Dielectric", "value": "X7R" },
    { "@type": "PropertyValue", "name": "Operating temperature", "value": "-55 to +125 C" }
  ],
  "offers": {
    "@type": "Offer",
    "priceCurrency": "USD",
    "price": "0.042",
    "availability": "https://schema.org/InStock"
  }
}
</script>
```

**Ein Markdown-Spiegel** ist der günstigste Weg, eine Seite eindeutig zu machen. Stellen Sie zu jeder Produktseite ein Klartext-Äquivalent unter einer stabilen, verlinkten URL bereit, mit der Datentabelle als Markdown-Tabelle. Reine Textclients parsen das fehlerfrei, die Erzeugung aus derselben Datenquelle kostet fast nichts, und Sie erhalten eine kanonische Maschinenoberfläche, die nicht wegdriftet, wenn das Frontend neu gestaltet wird. Wichtig: `llms.txt` ist etwas anderes – Stand 2026 hat sich kein großer KI-Betreiber dazu bekannt, sie zu lesen, und das Search-Relations-Team von Google hat eine Empfehlung ausdrücklich abgelehnt. Spiegelseiten funktionieren, weil sie ganz gewöhnliche verlinkte Seiten sind.

**Ein Overlay** setzt all das vor die bestehende Website statt hinein. Ein Sidecar-Dienst oder ein Edge Worker liefert serverseitig gerenderte, für Agenten lesbare Seiten, JSON-LD, Markdown-Spiegel und einen gehosteten MCP-Endpunkt unter Ihrer eigenen Domain aus und liest dabei aus Ihrem vorhandenen PIM. An der kundenseitigen Website ändert sich nichts. Diesen Weg geht Partsgraph – und genau das bauen auch immer mehr Hersteller intern auf: Microchip hat im November 2025 einen kostenlosen öffentlichen MCP-Server für seine Produktdaten bereitgestellt, und TrustedParts von der ECIA hat im Juni 2026 einen KI-Agentendienst für Bestandsdaten gestartet.

## Was zuerst zu tun ist, der Reihe nach

1. Führen Sie den sechsstufigen Test von oben für Ihre zehn wichtigsten Produkte durch und notieren Sie die Byte-Zahlen.
2. Rendern Sie JSON-LD auf Produktseiten serverseitig. Das ist die kleinste Änderung mit der größten messbaren Wirkung.
3. Sorgen Sie dafür, dass jede technische Angabe, jeder Datenblatt-Link und jeder CAD-Link im initialen HTML vorhanden ist – auch wenn die interaktive Variante clientseitig bleibt.
4. Geben Sie jeder relevanten parametrischen Filterkombination eine echte, crawlbare, serverseitig gerenderte URL.
5. Veröffentlichen Sie pro Produkt einen Markdown-Spiegel und verlinken Sie ihn von der Seite aus.
6. Erst danach sollten Sie sich um Rankings, Prompts und Answer Share kümmern. Das Auffinden geht dem Zitieren voraus; es gibt nichts zu optimieren, solange der Inhalt nicht im Response-Body steht.

Der Mechanismus dahinter ist weder subtil noch umstritten. Ein Modell kann nur zitieren, was es erhalten hat – und erhalten hat es Ihr rohes HTML. Alles andere ist ein Rendering-Schritt, der nie stattgefunden hat.

*Sie möchten wissen, wo Ihr Katalog steht? Der kostenlose KI-Sichtbarkeits-Grader von Partsgraph führt die Prüfungen aus diesem Artikel gegen Ihre eigene Domain aus – unter [/audit](/audit).*

## Häufige Fragen

### Rendert GPTBot JavaScript?

Nein. Vercel und MERJ haben festgestellt, dass GPTBot in rund 11,5 % seiner Anfragen JavaScript-Dateien herunterlädt, sie aber nie ausführt. Er entnimmt die Inhalte dem HTML, das der Server in der ersten Antwort zurückgibt. Alles, was Ihr Bundle nach dem Laden in das DOM einfügt, bleibt für ihn unsichtbar.

### Warum sieht Google meine Single-Page-App, ChatGPT aber nicht?

Googlebot betreibt einen Rendering-Dienst auf Basis von Headless-Chromium, führt Ihr JavaScript also aus und indexiert das daraus entstehende DOM. Gemini stützt sich auf dieselbe Infrastruktur. OpenAI, Anthropic und Perplexity betreiben dagegen einfache HTTP-Fetcher ohne Browser-Engine. Deshalb kann dieselbe Seite bei Google gut ranken und in einer KI-Antwort vollständig fehlen.

### Lösen Prerendering oder Dynamic Rendering das Problem?

Sie können es, und für einen Katalog, den Sie nicht kurzfristig auf eine neue Plattform heben können, sind sie eine legitime Übergangslösung. Die Risiken sind veraltete Cache-Stände bei Preis und Bestand sowie das Ausliefern einer inhaltlich deutlich abweichenden Seite an Crawler. Halten Sie das vorgerenderte HTML semantisch identisch zur gerenderten Seite und setzen Sie für volatile Felder ein kurzes Revalidierungsfenster.

### Reicht JSON-LD für sich allein aus?

Nur wenn es in dem HTML steht, das der Server zurückgibt. Von einem Tag-Manager oder einem clientseitigen Skript eingefügtes JSON-LD trifft ein, wenn der Crawler längst fertig ist. Rendern Sie das Script-Tag serverseitig und betrachten Sie JSON-LD als Ergänzung zu lesbarem Fließtext, nicht als Ersatz dafür.

### Wie teste ich das selbst in unter einer Minute?

Rufen Sie eine Produkt-URL mit aktivierter Komprimierung per curl ab, speichern Sie die Antwort und durchsuchen Sie die rohen Bytes mit grep nach Ihrer Artikelnummer und zwei oder drei parametrischen Werten. Fehlen sie in der Datei, sind im Browser aber sichtbar, dann werden sie von JavaScript erzeugt – und kein KI-Crawler wird sie jemals sehen.

### Berücksichtigen KI-Crawler meine Sitemap?

Nur uneinheitlich. Vercel und MERJ haben gemessen, dass 34,82 % der Abrufe von ChatGPT auf 404-Seiten landen, gegenüber 8,22 % bei Googlebot. Das deutet auf eine Link-Erkennung aus veralteten Quellen hin statt auf ein diszipliniertes Crawlen der Sitemap. Eine korrekte Sitemap mit sauberen lastmod-Werten hilft, gleicht aber Seiten, die keinen Inhalt zurückgeben, nicht aus.

### Gilt das auch für CAD-, BIM- und Datenblatt-Downloads?

Ja, und dort sogar in verschärfter Form. Wenn ein Download-Link per JavaScript erzeugt wird, hinter einem Interstitial liegt oder über eine kurzlebige signierte URL aufgelöst wird, kann ein Client ohne Browser ihm überhaupt nicht folgen. Das Dokument existiert dann faktisch nicht.

## Quellen

1. [Vercel and MERJ, The rise of the AI crawler, December 2024](https://vercel.com/blog/the-rise-of-the-ai-crawler)
2. [Adobe Digital Insights, AI traffic and retail machine-readability, April 2026](https://business.adobe.com/blog/ai-traffic-surge-retail-sites-not-machine-readable)
3. [eCommerceNews, Adobe machine-readability scores by page type, April 2026](https://e-commerce.news/story/adobe-says-ai-retail-traffic-surges-as-readability-lags)
4. [TechCrunch, AI traffic to US retailers rose 393% in Q1, April 2026](https://techcrunch.com/2026/04/16/ai-traffic-to-us-retailers-rose-393-in-q1-and-its-boosting-their-revenue-too/)
5. [Forrester, The State Of Business Buying, 2026 (January 2026)](https://www.forrester.com/blogs/state-of-business-buying-2026/)
6. [Google Search Central, Google crawlers and user agents](https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers)
7. [OpenAI, Overview of OpenAI crawlers](https://developers.openai.com/api/docs/bots)
8. [Anthropic, Does Anthropic crawl data from the web?](https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler)
9. [Apple Support, About Applebot](https://support.apple.com/en-us/119829)
10. [Microchip Technology, MCP Server press release, November 2025](https://ir.microchip.com/news-events/press-releases/detail/1344/microchip-technology-unveils-model-context-protocol-mcp-server-to-power-ai-driven-product-data-access)
11. [ECIA, TrustedParts.com launches Inventory AI Agent Service, June 2026](https://www.ecianow.org/2026/06/11/trustedparts-com-launches-inventory-ai-agent-service/)
12. [Search Engine Journal, Google says llms.txt is speculative for now](https://www.searchenginejournal.com/google-says-llms-txt-is-purely-speculative-for-now/577576/)

## Other languages

- English: https://partsgraph.ai/blog/ai-crawlers-do-not-run-javascript/md
- Français: https://partsgraph.ai/fr/blog/ai-crawlers-do-not-run-javascript/md
- Español: https://partsgraph.ai/es/blog/ai-crawlers-do-not-run-javascript/md
- Italiano: https://partsgraph.ai/it/blog/ai-crawlers-do-not-run-javascript/md
- Nederlands: https://partsgraph.ai/nl/blog/ai-crawlers-do-not-run-javascript/md
- Polski: https://partsgraph.ai/pl/blog/ai-crawlers-do-not-run-javascript/md
- Português: https://partsgraph.ai/pt/blog/ai-crawlers-do-not-run-javascript/md
- Svenska: https://partsgraph.ai/sv/blog/ai-crawlers-do-not-run-javascript/md
- Türkçe: https://partsgraph.ai/tr/blog/ai-crawlers-do-not-run-javascript/md
- 日本語: https://partsgraph.ai/ja/blog/ai-crawlers-do-not-run-javascript/md
- 한국어: https://partsgraph.ai/ko/blog/ai-crawlers-do-not-run-javascript/md
- 简体中文: https://partsgraph.ai/zh/blog/ai-crawlers-do-not-run-javascript/md

---

Partsgraph — the agent-ready parts data layer. Free AI-visibility grader: https://partsgraph.ai/de/audit
