Skill detail
rendering-strategies
Guides rendering strategy selection (SSG, SSR, ISR, CSR, dynamic rendering) for search and AI crawler visibility. Relevant to agency technical-SEO service delivery.
Why we recommend it: SEO rendering strategy is a technical SEO service relevant to agency web work.
Inspect before use
Read the source instructions and check the requirements before you install this skill.
SKILL.md
The saved excerpt is a snapshot from when this skill was listed. The external source remains the complete and most current version.
--- name: rendering-strategies description: When the user wants to choose or optimize rendering strategy for SEO. Also use when the user mentions "SSR," "SSG," "CSR," "ISR," "static rendering," "dynamic rendering," "server-side rendering," "client-side rendering," "JavaScript rendering," "pre-rendering," "prerender," "content in initial HTML," or "crawler visibility." For crawl issues, use site-crawlability. metadata: version: 1.0.2 --- # SEO Technical: Rendering Strategies Guides rendering strategy selection and optimization for search engine and AI crawler visibility. **Golden rule**: Page data and metadata must be available on page load without JavaScript execution for optimal SEO. **When invoking**: On **first use**, if helpful, open with 1–2 sentences on what this skill covers and why it matters, then provide the main output. On **subsequent use** or when the user asks to skip, go directly to the main output. ## Scope (Technical SEO) - **Static vs dynamic**: SSG, SSR, ISR, CSR; when to use each - **Crawler behavior**: Googlebot renders JS (with delays); AI crawlers do not - **Component-level**: Content in initial HTML; tabs, carousels, nav - **Dynamic rendering**: Prerender for bots when full SSR/SSG is not feasible ## Rendering Methods | Method | When HTML generated | SEO | Best for | |--------|---------------------|-----|----------| | **SSG** (Static Site Generation) | Build time | ✅ Best | Blog, docs, marketing pages; content rarely changes | | **SSR** (Server-Side Rendering) | Request time | ✅ Good | News, product pages; dynamic, personalized content | | **ISR** (Incremental Static Regeneration) | Build + revalidate | ✅ Good | Large sites; static with periodic updates | | **CSR** (Client-Side Rendering) | Browser (after JS) | ❌ Poor | Dashboards, account pages; no SEO needed | | **Dynamic rendering** | On-demand for bots | ✅ Fallback | SPAs; prerender for crawlers, SPA for users | ### SSG (Static Site Generation) HTML generated at build time; same HTML for every request. **Best for SEO**: crawlers receive full HTML immediately; optimal performance. - **Use when**: Blog, docs, marketing pages, content that doesn't change frequently - **Framework**: Next.js `getStaticProps`, Astro, Gatsby ### SSR (Server-Side Rendering) HTML generated on each request. **Good for SEO**: crawlers receive complete HTML; supports dynamic, personalized content. - **Use when**: News, product pages, user-specific content - **Tradeoff**: Higher server load; slower TTFB than SSG - **Framework**: Next.js `getServerSideProps`, Remix ### ISR (Incremental Static Regeneration) Static at build; pages can revalidate after a period. **Good for SEO**: combines static performance with freshness. - **Use when**: Large sites (millions of pages); content updates periodically - **Framework**: Next.js `revalidate` in `getStaticProps` ### CSR (Client-Side Rendering) Server sends minimal HTML shell; content renders in browser after JS loads. **Not for SEO**: crawlers may see empty content; indexing delays or failures. - **Use when**: Dashboards, account pages, internal tools—no search visibility needed - **Avoid for**: Public content, marketing pages, blog ### Dynamic Rendering Serve prerendered HTML to crawlers; serve SPA to users. **Fallback** when full SSR/SSG is not feasible (e.g. legacy SPA migration). - **How**: Detect crawler user-agent; route to prerender service (e.g. Prerender.io) or headless render - **When**: JavaScript-heavy sites; migration period; product/docs with CSR - **Note**: Google permits this; prerendered content should match user experience ## Crawler Behavior | Crawler | JavaScript | Content in initial HTML | |---------|------------|-------------------------| | **Googlebot** | Renders JS (Chrome); may have multi-day queue | Full weight; SSR/SSG preferred | | **AI crawlers** (GPTBot, ClaudeBot, PerplexityBot) | Do **not** execute JS | **Required**—CSR content invisible | | **Bingbot** | Renders JS | Same as GooglRead the full source on GitHub (opens external page)