Technical SEO

hydration

Also called: rehydration

Hydration is the process where client-side JavaScript attaches event handlers and application state to server-rendered (or static) HTML, turning inert markup into a working app. Until hydration finishes, the page can look loaded but not respond to clicks.

Hydration exists because server-side rendering (SSR) and static generation (SSG) create a split. The server ships finished HTML so browsers and crawlers get content immediately, but that markup is inert: no click handlers, no state. Hydration is the second pass where the framework re-runs the same component tree in the browser, walks the existing DOM, and wires up event listeners instead of rebuilding nodes. In React this is triggered by hydrateRoot rather than createRoot. The terms hydration and rehydration are used interchangeably; Google’s docs even write it as “(re)hydration.”

The mismatch trap

The client render has to produce the same output the server did. React’s docs are explicit: the tree you pass to hydrateRoot “needs to produce the same output as it did on the server,” and you should “treat mismatches as bugs and fix them.” Common causes of a mismatch are branching on typeof window, rendering timestamps or random values, or reading window.matchMedia during render. When output diverges, React logs a hydration error and can fall back to a full client render, clearing the server-rendered HTML it was supposed to reuse. That means a blank flash and lost content for anything that depended on the first paint.

The bigger cost is timing. Google describes an “uncanny valley” where a page looks loaded but ignores taps until the JavaScript downloads, parses, and finishes attaching handlers. On mobile that gap can run long, and it lands directly on Total Blocking Time and Interaction to Next Paint (INP). Google’s own measurement is blunt: real-world data on SSR with rehydration “indicate that it’s rarely the best option,” mostly because a page can look ready while none of its interactive features work.

How it affects your traffic

Heavy hydration is one of the most common reasons a fast-looking site still fails Core Web Vitals: the HTML paints early, but a large JavaScript bundle keeps the main thread busy and pushes INP into the poor range, which Google uses as a ranking signal. Mismatches are worse, because a client-side re-render can blank or reshuffle content that crawlers and users saw a moment earlier. A technical SEO audit catches both by measuring INP on real interactions, flagging oversized bundles, and checking whether the rendered DOM matches the served HTML. Technical SEO work trims and defers that JavaScript so interactivity arrives before it costs you rankings.

Get Technical SEO that moves the needle

We turn terms like this into ranked pages and qualified pipeline. Start with a free Initial SEO Strategy.