English

Hydration bezeichnet in der Webentwicklung den Schritt, in dem JavaScript im Browser serverseitig gerendertes HTML interaktiv macht, indem es Event-Handler an die vorhandenen DOM-Elemente hängt. Der Begriff meint hier die Webtechnik, die Suche liefert auch Treffer zum Flüssigkeitshaushalt.

Wie funktioniert Hydration?

Der Server liefert fertiges HTML aus, das Seitenelemente sofort anzeigt. Danach lädt der Browser das JavaScript, und das Framework verbindet sich mit dem vorhandenen HTML. React beschreibt das mit hydrateRoot. Beispiele und Funktionsnamen stammen hier aus React, andere Frameworks verwenden den Begriff mit eigenen Schnittstellen. Bis dahin sieht die Seite fertig aus, reagiert aber noch nicht auf Eingaben.

Der im Browser erzeugte React-Baum muss exakt der Ausgabe des Servers entsprechen. Abweichungen, etwa durch Abfragen von window oder unterschiedliche Daten auf Server und Client, gelten laut React als Fehler, die behoben werden sollten. Sie können zu Verlangsamungen und zu Event-Handlern an falschen Elementen führen.

Wo das HTML entsteht: CSR, SSR, SSG und Dynamic RenderingVier Zeilen zeigen, wo der Inhalt einer Seite entsteht. Bei CSR schickt der Server eine leere HTML-Hülle, erst JavaScript im Browser baut den Inhalt. Bei SSR rendert der Server das HTML bei jeder Anfrage, Hydration macht es im Browser interaktiv. Bei SSG entsteht das HTML schon beim Build. Dynamic Rendering liefert Crawlern fertiges HTML und Nutzern die JavaScript-Version; Google nennt das einen Workaround.SERVERERSTE HTML-ANTWORTBROWSERCSRClient-SideRenderingschickt HTML-Hülleund JavaScript<div id="app">ohne InhaltJavaScript bautden InhaltSSRServer-SideRenderingrendert HTMLbei jeder AnfrageInhalt stehtim HTMLHydration machtdie Seite interaktivSSGStatic RenderingPrerenderingHTML entstehtschon beim BuildInhalt stehtim HTMLzeigt HTML sofort,Hydration möglichDynamicRenderingWorkarounderkennt Crawler,rendert nur für sieCrawler: HTMLNutzer: leere Hüllebei Nutzern bautJavaScript den InhaltSchematisch. Google rendert JavaScript in einem eigenen Schritt nach dem Crawlen.Nicht alle Bots führen JavaScript aus.
Entscheidend für Crawler ist, ob der Inhalt schon in der ersten HTML-Antwort steht. Google empfiehlt Server-Side Rendering oder Prerendering; Dynamic Rendering bezeichnet Google als Workaround, keine Dauerlösung. Quellen: web.dev: Rendering on the Web; Google Search Central: Grundlagen von JavaScript-SEO; Google Search Central: Dynamisches Rendering als Behelfslösung.

Bedeutung für SEO

Enthält das serverseitige HTML die Inhalte, sehen auch Crawler ohne JavaScript-Ausführung Texte und Links. Google nennt Hydration neben Server-Side Rendering und statischem Rendering als Alternative zu Dynamic Rendering. DebugBear beschreibt, dass Hydration den Hauptthread blockieren und den INP verschlechtern kann und dass große eingebettete Datenstrukturen das HTML-Dokument vergrößern.

Beispiel

JavaScript
import { hydrateRoot } from 'react-dom/client';
hydrateRoot(document.getElementById('root'), <App />);

Das Element root enthält bereits das vom Server gerenderte HTML. React ergänzt nur die Interaktivität.

Quellen

  1. hydrateRoot – React Docsreact.dev
  2. Dynamic Rendering als Behelfslösung – Google Search Centraldevelopers.google.com
  3. Hydration (web development) – Wikipediaen.wikipedia.org
  4. What Is JavaScript Hydration For Single Page Applications? – DebugBeardebugbear.com

Stand: