🔎 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 UIWith 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 browserWith 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 responseSSG 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 automaticallyThis 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 inThis 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.
Until next time 👋
oh that’s a human
—

