🔎 Focus: JavaScript SEO
🔴 Impact: High
🟠 Difficulty: Mid

Sponsored By Peec AI

AI search is the fastest-growing discovery channel. Your customers ask ChatGPT, Perplexity, Claude, and Gemini for recommendations daily.

Is your brand the answer?

Peec AI shows you exactly where you stand:

Track your visibility and sentiment across all major LLMs
Benchmark against competitors to see your share of voice
Get step-by-step guidance on improving your AI visibility

Turn AI search from a black box into a measurable growth channel with clear metrics and a scalable strategy.

Dear Tech SEO 👋

SSR Is Great for SEO… But It’s Not the End of the Story

For a long time, the answer to “How do I make my Next.js app SEO-friendly?” was simple:

Use Server-Side Rendering (SSR).

And it’s still a solid answer.

SSR generates the HTML on the server for every request, meaning search engines receive fully rendered content immediately. That makes it ideal for blogs, landing pages, product pages, and anything where discoverability matters.

But the rendering story in Next.js has evolved a lot.

In recent versions of the framework, developers now have multiple rendering patterns to choose from - each optimized for different tradeoffs like performance, scalability, and freshness of data.

And once you start combining them, you realize something important:

Rendering is no longer a single strategy decision.
It’s an architecture decision.

Let’s walk through the modern landscape.

The Classic Rendering Patterns

These are the ones most developers already know.

Client-Side Rendering (CSR)

Browser Request
      ↓
Server sends minimal HTML + JS
      ↓
Browser downloads/parses JS
      ↓
React renders the UI

With CSR, most of the rendering happens in the browser.

This is great for highly interactive apps like dashboards or admin panels where SEO isn't important.

But it comes with tradeoffs:

  • Meh performance

  • Content invisible until JS loads

  • Poor SEO

This is why frameworks like Next.js introduced other approaches.

Server-Side Rendering (SSR)

Browser Request
      ↓
Server fetches data
      ↓
Server renders HTML
      ↓
Rendered HTML sent to browser

With SSR, the server generates HTML for every request.

Benefits:

  • Excellent SEO

  • Fresh data on every request

  • Faster initial content display

Downside:

  • Higher server load

  • Slower responses at scale

  • Not ideal for static content

SSR is powerful, but using it everywhere can become expensive and unnecessary.

Static Site Generation (SSG)

Build Time
   ↓
Pages generated as HTML
   ↓
Served via CDN
   ↓
Instant response

SSG pre-generates pages at build time.

This means:

  • Fast performance

  • CDN-friendly delivery

  • Zero server computation at runtime

Perfect for:

  • Blogs

  • Documentation

  • Marketing pages

Content only updates when you rebuild the site. That’s a downside but still cool.

Incremental Static Regeneration (ISR)

ISR solves the biggest limitation of SSG.

User request
     ↓
Serve cached static page
     ↓
Revalidate in background
     ↓
Update page automatically

This allows static pages to refresh periodically without a full rebuild.

You get:

  • Static performance

  • Fresh content

  • Scalable infrastructure

It’s one of the reasons Next.js became so popular for content-heavy platforms.

The New Generation of Rendering

Now things get interesting.

Newer versions of Next.js introduced patterns that go beyond the classic four.

These focus heavily on reducing JavaScript sent to the browser and improving perceived performance.

React Server Components (RSC)

With React Server Components, some components render only on the server.

That means:

  • Less JavaScript sent to the client

  • Faster page loads

  • Smaller bundles

Instead of sending full component logic to the browser, only the result is sent.

For many applications, this dramatically improves performance.

Partial Pre-rendering (PPR)

PPR blends static and dynamic rendering within the same page.

Page request
     ↓
Static shell loads instantly
     ↓
Dynamic sections stream in

This means users see content almost immediately, while slower parts of the page load afterward.

Think of it as:
Static performance + dynamic flexibility.

Dynamic Partial Rendering (DPR)

DPR pushes this idea further.

Instead of deciding rendering strategy at the page level, Next.js can make those decisions at the component level.

Some parts of the page can be:

  • Static

  • Server-rendered

  • Client-rendered

All within the same layout.

This unlocks a huge amount of performance optimization.

The Real Power of Next.js: Mixing Strategies

The biggest mindset shift is this:

You don’t have to pick one rendering strategy.

You can combine them.

A realistic modern app might look like this:

Page Type

Rendering Strategy

Marketing pages

SSG

Blog posts

ISR/SSG

Product pages

SSR

Dashboard UI

CSR

Shared layouts

RSC

Dynamic sections

PPR

Instead of forcing everything into SSR, you choose the best rendering strategy for each part of the app.

The Takeaway

SSR is still incredibly useful especially when SEO matters.

Modern Next.js apps rarely rely on SSR alone.

New rendering patterns like:

  • React Server Components

  • Partial Pre-rendering

  • Dynamic Partial Rendering

are pushing performance much further by reducing JavaScript, streaming UI faster, and letting developers mix rendering strategies within a single page.

Rendering has become a toolbox instead of a rule.

Reply to this email with “Next” and your domain.

I’ll take a look at your site and check if your rendering is making or breaking your SEO.

How I analyze Technical SEO on Fortune 100 Stores.

Here I audited Lowe’s - huuuuuge US-based hardware store. Before you ask, yes, they also struggle with indexation.

More Fortune 100 brand analyses are coming. Should I livestream this?

Until next time 👋

oh that’s a human