Dynamic Rendering
A technique that serves different content versions to users and search engine crawlers: fully rendered HTML for bots and regular JavaScript-powered pages for users. Dynamic rendering is a workaround for JavaScript rendering challenges in SEO.
Dynamic rendering detects the user agent of incoming requests and routes search engine crawlers to a pre-rendered version of the page while serving the standard JavaScript version to regular users. Tools like Rendertron and Puppeteer can generate these pre-rendered snapshots. Google has acknowledged dynamic rendering as a legitimate workaround for sites that cannot implement server-side rendering.
For engineering teams with heavily JavaScript-dependent sites, dynamic rendering offers a middle path between full SSR migration (expensive) and hoping Google's renderer handles your JavaScript (risky). It is particularly useful for single-page applications, infinite scroll content, and pages with complex JavaScript interactions. However, Google considers dynamic rendering a temporary solution and recommends server-side rendering as the long-term approach. The maintenance burden of dynamic rendering is significant: you need to keep the pre-rendered version in sync with the live version, handle edge cases in rendering, and monitor for discrepancies. If you are building a new project, invest in SSR or SSG from the start rather than retrofitting with dynamic rendering.
Related Terms
Core Web Vitals
A set of three Google-defined metrics that measure real-world user experience for loading performance, interactivity, and visual stability. Core Web Vitals are a confirmed ranking factor in Google Search.
Largest Contentful Paint (LCP)
A Core Web Vital that measures the time from page load start until the largest visible content element (image, video, or text block) is rendered on screen. Good LCP is 2.5 seconds or less.
Interaction to Next Paint (INP)
A Core Web Vital that measures the latency of all user interactions (clicks, taps, keyboard input) throughout the page lifecycle, reporting the worst interaction. Good INP is 200 milliseconds or less.
Cumulative Layout Shift (CLS)
A Core Web Vital that measures the total amount of unexpected layout shifts that occur during a page's entire lifespan. Good CLS is 0.1 or less, where layout shifts are calculated from the impact and distance of moving elements.
Time to First Byte (TTFB)
The duration from the user's request to the first byte of the server response reaching the browser. TTFB measures server-side processing speed and network latency, directly impacting all subsequent loading metrics.
Crawl Budget
The number of pages a search engine bot will crawl on your site within a given timeframe, determined by crawl rate limit and crawl demand. Crawl budget optimization ensures important pages are discovered and indexed efficiently.