What is server-side rendering?
Server-side rendering (SSR) means the server builds the full HTML for a page and sends it ready to display. The browser, or a search engine crawler, gets the headings, text, links, and metadata in the first response, without waiting for JavaScript to run.
The alternative is client-side rendering (CSR), where the server sends a mostly empty HTML shell and a JavaScript bundle, and the browser assembles the page. CSR works for people, but it makes every crawler depend on running your scripts. That dependency is the core of most JavaScript SEO problems.
Rendering approaches compared
| Approach | Where HTML is built | When | SEO notes |
|---|---|---|---|
| Server-side rendering | Server | On each request | Content in first response; server speed matters |
| Static site generation | Build step | Ahead of time | Fastest to serve; needs a rebuild to update |
| Client-side rendering | Browser | After JavaScript runs | Crawlers must render; weakest default for SEO |
| Hydration | Server, then browser | Both | SSR HTML first, then scripts make it interactive |
Most modern JavaScript frameworks, such as Next.js, Nuxt, and SvelteKit, support SSR and static generation, and often mix them per route. Hydration is the usual pattern: the server sends complete HTML, then the framework attaches event handlers in the browser.
Why it matters for SEO
- Every crawler sees the content. Google can render JavaScript, but rendering may be delayed and other crawlers may not do it at all.
- Metadata is reliable. Titles, canonical tags, meta robots, and JSON-LD in the raw HTML are read at crawl time, before any rendering step.
- Links are discoverable immediately, which helps crawling of large sites.
- Faster content display. The browser can paint text before scripts load, which usually helps Largest Contentful Paint.
The trade-off is server work. Every request needs HTML generated, so a slow backend shows up directly in time to first byte. Page caching and a CDN are the usual answers.
In WordPress
WordPress is server-rendered by design. PHP builds each page's HTML from the database, and a page cache stores the result so repeat visits skip the work. Problems appear when a theme, page builder, or plugin loads important content with JavaScript after the page arrives, or in headless setups where a JavaScript front end consumes the WordPress REST API.
Hydrogen SEO outputs its tags (title, description, canonical, robots, Open Graph, and JSON-LD) in the server-rendered <head>. You can confirm this by viewing the page source: what you see there is what crawlers get. If your pages are slow to generate, the TTFB guide covers caching and hosting fixes.
Common questions
Is server-side rendering required for SEO?
Not strictly. Google can index client-rendered pages. SSR removes the rendering dependency, which makes indexing faster and more predictable and helps crawlers that do not run JavaScript.
How do I check whether a page is server-rendered?
Open the raw page source with view-source: in your browser. If your main text and links appear there, the page is server-rendered. If you see an empty container and script tags, it is client-rendered.
Does SSR make a site faster?
It usually shows content sooner, but it adds work on the server. With page caching, SSR pages are typically fast to serve and to display.