AI-Suche / GEO·Claude Code
AI-Suche / GEOClaude Code

Server-Side Rendering einbauenClaude Code

AI-Crawler führen meist kein JavaScript aus. Wenn dein Content nur in useEffect ist, sieht ChatGPT eine leere Seite. Pre-rendered HTML ist Pflicht für AI-Zitate und schnellere Google-Indexierung.

rocket_launch

In Claude Code fixen

Anthropics offizieller Terminal-Coding-Agent

Claude Code kann zuerst den ganzen Codebase greppen, die Änderung planen, dann jede betroffene Datei editieren. Prompt unten in deinen Claude Code-Chat einfügen und der Fix rollt in einem Rutsch über das ganze Projekt aus.

Anderes Tool? Wähle deinen Stack:

Der Prompt für Claude Code

Diesen Text exakt so in deinen Claude Code-Chat kopieren und einfügen.

Run Claude Code in the project root and make these exact changes, scanning the whole codebase first:

Render content server-side

1. Convert client components to Server Components where possible (remove "use client" from pages that only render data).
2. Move data fetching out of useEffect into the server component body.
3. Verify by viewing the page source (Ctrl+U) — the body text should be present without JS.

Warum das wichtig ist

Es gibt zwei Arten Crawler: welche die JavaScript ausführen (Googlebot — meist, langsam) und welche die es nicht tun (GPTBot, ClaudeBot, die meisten AI-Tools, Social-Preview-Scraper). Wenn dein Content nur client-gerendert ist, sieht die zweite Gruppe nur eine leere Hülle.

Pure SPAs — Create React App, unmodified Vite React — haben dieses Problem by Default. Die HTML-Response ist ein einziges `<div id="root"></div>`, alles andere erscheint nach JS. OK für User, kaputt für AI-Suche.

Der Fix ist SSR oder SSG. Next.js App Router macht das per Default. Lovable- und Bolt-Projekte auf Vite brauchen entweder einen Vite-SSR-Adapter, Umzug zu Next/Remix/Astro, oder zumindest einen pre-rendered Static-Export für Key-Pages.

So nutzt du diesen Prompt in Claude Code

  1. 1. Dein Claude Code-Projekt öffnen.
  2. 2. Prompt oben mit Copy-Button kopieren.
  3. 3. In Claude Code-Chat einfügen und senden.
  4. 4. Diff reviewen, Änderungen akzeptieren, neu deployen.
  5. 5. Fix mit der Checkliste unten verifizieren.

Typische Fehler vermeiden

  • error_outlineGanze Seite in useEffect der Content lädt — nichts im HTML.
  • error_outlineKomplette Seite als `"use client"` in Next.js — SSR-Vorteile weg.
  • error_outlineContent vom Client aus der API laden wenn du server-seitig laden könntest.
  • error_outlineDynamic-Imports für Content-Komponenten — Content nicht im initialen HTML.

Wie du prüfst ob der Fix geklappt hat

  • check_circle`curl -s https://deinesite.com/page | grep "DEINE HEADLINE"` — muss Match liefern.
  • check_circleJS in Chrome DevTools → Einstellungen → Debugger deaktivieren → reload — Haupt-Content muss sichtbar bleiben.
  • check_circleQuelltext (Strg+U) — H1, erster Absatz, Key-CTAs müssen im rohen HTML stehen.
  • check_circle`view-source:deinesite.com/page` öffnen — nach Meta-Description-Text suchen.

Häufige Fragen

Rendert Google JavaScript?expand_more
Ja, aber verzögert ("Second Wave") und nicht perfekt. JS-only-Content für SEO ist fragil. Für AI-Suche findet JS-Rendering gar nicht statt.
Muss ich die ganze App zu Next.js migrieren?expand_more
Nicht zwingend. Public-Marketing-Pages mit Static-Generator pre-rendern, Logged-In-App als SPA lassen. Best of both.
Was ist mit Hydration-Errors?expand_more
Hydration-Errors treten auf wenn Server-HTML vom Client-Rendering abweicht. Typische Ursache: Date.now() oder Random im Render. Fix: in useEffect verschieben.

Alle 34 Prompts passend zu deiner Claude Code-Site?

Pantra scannt deine Site in 10 Sekunden, erkennt den Stack und generiert genau die Prompts die passen — nur die du brauchst.

Site scannen

Ähnliche Claude Code-Prompts