GlossarySEO
What is dynamic rendering?
Also called: prerender for bots, bot rendering
Definition
Dynamic rendering is serving crawlers a prerendered HTML version of a JavaScript page while users get the normal client-side app. Google now calls it a workaround, not a long-term solution.
Dynamic rendering, explained
The idea came from a time when search engines struggled with JavaScript. A server detects crawler user agents and routes them to a renderer, often a headless browser or a service like Prerender, which returns static HTML. Human visitors get the regular client-rendered app. For a while Google documented it as an acceptable approach for JavaScript-heavy sites.
Google's current page on the topic is titled as a workaround and says dynamic rendering was a workaround and not a long-term solution for problems with JavaScript-generated content in search engines. It recommends server-side rendering, static rendering or hydration instead. The reasons are practical: you maintain two rendering paths, the bot version can drift out of date, and it adds infrastructure that can fail without anyone noticing, since humans never see the bot version.
On cloaking, Google's page says Googlebot generally doesn't consider dynamic rendering to be cloaking as long as it produces similar content. It gives a blunt counter-example: serving a page about cats to users and dogs to crawlers is cloaking. So the prerendered version must match what users see.
If you already run dynamic rendering, it keeps working, but treat it as technical debt. When you next touch the frontend, move public pages to a framework that renders HTML on the server or at build time, and retire the bot path.
Why it matters for founders
Some agencies still sell dynamic rendering as an SEO fix for client-rendered apps. Knowing Google's current position helps you choose SSR or static generation instead of adding a fragile layer.
Example
A React SPA routes Googlebot to a prerender service. The service's cache is weeks stale, so Google indexes old prices. The team moves the marketing pages to static generation and removes the bot routing.
Common mistakes
- Adding dynamic rendering to a new project instead of SSR or SSG.
- Letting the bot version drift from what users see.
- Not monitoring the prerender service for failures.
- Serving different content to bots, which crosses into cloaking.
Sources
Checked
Related terms
- Server-side rendering (SSR)Server-side rendering (SSR) means the server builds a page's full HTML for each request and sends it ready to display. Crawlers and users get content immediately, without waiting for JavaScript.
- Static site generation (SSG)Static site generation (SSG) builds each page's HTML once, at build time, and serves the same file to every visitor. It's the fastest and most reliable way to give crawlers complete pages.
- CloakingCloaking is showing search engines different content from what users see, in order to manipulate rankings. It's a named violation in Google's spam policies and can lead to a manual action.
- JavaScript SEOJavaScript SEO is making sure sites built with JavaScript frameworks can be crawled, rendered and indexed properly: real links, content in the HTML, correct status codes and metadata that doesn't depend on client-side code.