喂!我是 Wei

Front-End Engineer

Be a Problem Solver.

⌘K

導覽

所有文章緣起互動小功能

文章分類

目錄
CSR 是什麼?SSR 是什麼?SSG 是什麼?ISR 是什麼?CSR / SSR / SSG / ISR 比較Hydration 是什麼?Next.js 為什麼比純 React SPA 適合 SEO?1. 預先產生 HTML2. Metadata 管理完整3. sitemap / robots / routing 更容易整合4. 效能基礎比較好面試常見追問SSR 一定比 CSR 快嗎?SSG 內容更新怎麼辦?SEO 只靠 SSR 就夠嗎?面試回答模板

相關文章

前端 CI/CD 與正式環境除錯:從 Pull Request 到事故排查

2026年6月24日

即時資料怎麼選?Polling、SSE、WebSocket 比較

2026年6月23日

前端系統設計:如何拆元件、資料流與大型專案架構?

2026年6月22日

最新文章
全部 →
前端 CI/CD 與正式環境除錯:從 Pull Request 到事故排查
2026-06-24
即時資料怎麼選?Polling、SSE、WebSocket 比較
2026-06-23
前端系統設計:如何拆元件、資料流與大型專案架構?
2026-06-22
無障礙不是加 ARIA:語意化 HTML、鍵盤操作與焦點管理
2026-06-21
CSS 與 RWD 面試整理:Flexbox、Grid、定位與層疊脈絡
2026-06-19
← 返回文章列表

前端工程師面試題:CSR、SSR、SSG 差在哪?Next.js 為什麼適合 SEO?

2026年6月2日·約 8 分鐘閱讀·
前端面試系列渲染與 SEONext.js

前端面試問「CSR / SSR 差異」時,通常不會只停在這兩個名詞。

面試官很可能會接著問:

  • SSG 是什麼?
  • SSR 和 SSG 哪個比較適合 SEO?
  • Next.js 為什麼比純 React SPA 更適合 SEO?
  • hydration 是什麼?
  • 什麼情境應該選 CSR、SSR、SSG 或 ISR?

這篇就把渲染策略和 SEO 一次整理清楚。

CSR / SSR 與 SEO 的差異


CSR 是什麼?

CSR 是 Client-Side Rendering,也就是主要在瀏覽器端產生畫面。

簡化流程:

Browser request
  → Server 回傳很薄的 HTML shell
  → Browser 下載 JavaScript bundle
  → React 在瀏覽器執行並產生畫面
  → 前端再呼叫 API 取得資料

優點:

  • 適合互動性高的 App
  • 登入後系統、後台、Dashboard 很常用
  • 前後端責任分離清楚
  • server 壓力相對小

缺點:

  • 首屏內容要等 JS 載入與執行
  • 搜尋引擎一開始拿到的 HTML 內容較少
  • 使用者在慢網路或低階裝置上可能感覺比較慢

面試可以這樣回答:

CSR 是瀏覽器端渲染,server 先回一個 HTML shell,真正的 UI 由前端 JavaScript 在 client 端產生。它適合互動性高、SEO 不敏感的應用,例如後台系統;但首屏速度與 SEO 需要額外處理。


SSR 是什麼?

SSR 是 Server-Side Rendering,每次 request 進來時,伺服器先把頁面渲染成 HTML,再回給瀏覽器。

簡化流程:

Browser request
  → Server 取得資料
  → Server render HTML
  → Browser 先看到完整內容
  → React hydration 接手互動

優點:

  • 使用者可以更早看到有內容的 HTML
  • 搜尋引擎更容易讀到頁面文字
  • 適合公開頁、商品頁、文章頁、需要即時資料的頁面

缺點:

  • 每次 request 都可能增加 server 負擔
  • 快取策略需要設計
  • hydration 前後內容不一致時會出現警告或 UI 抖動

面試可以補一句:

SSR 不代表頁面沒有 JavaScript。SSR 只是先在 server 產出 HTML,之後瀏覽器仍然需要載入 JavaScript 做 hydration,讓頁面變得可互動。


SSG 是什麼?

SSG 是 Static Site Generation,在 build time 就先把頁面產生成靜態 HTML。

簡化流程:

Build time
  → 讀取資料
  → 產生 HTML
  → 部署到 CDN
 
User request
  → CDN 直接回 HTML

優點:

  • 速度快,CDN 友善
  • server 負擔低
  • SEO 友善
  • 很適合 Blog、文件、行銷頁、產品介紹頁

缺點:

  • 資料更新後通常需要重新 build
  • 不適合每個使用者都不同的個人化頁面
  • 如果頁面數量極大,build time 可能變長

面試回答:

SSG 是在 build 階段就把頁面產成 HTML,使用者請求時可以直接從 CDN 拿到靜態內容。它很適合內容變動不頻繁、但需要 SEO 和速度的頁面,例如 Blog、文件和行銷頁。


ISR 是什麼?

Next.js 還有 ISR:Incremental Static Regeneration。

它介於 SSG 和 SSR 之間。

概念是:

先產生靜態頁,但可以設定一段時間後在背景重新產生頁面。

例如商品頁不需要每秒更新,但也不能永遠停在 build 當下,就可以用 ISR。

第一次 request → 回傳已產生的 HTML
超過 revalidate 時間 → 背景重新產生
下一個 request → 拿到新版本

面試不用講得太深,但可以補一句:

ISR 適合內容需要更新,但不需要每次 request 都即時 render 的頁面,可以兼顧靜態頁速度和資料新鮮度。


CSR / SSR / SSG / ISR 比較

模式HTML 產生時機優點適合場景
CSR瀏覽器執行 JS 時互動彈性高、server 負擔低後台、Dashboard、登入後 App
SSR每次 request 時內容即時、SEO 較友善商品頁、個人化公開頁
SSGbuild time速度快、CDN 友善、SEO 佳Blog、文件、行銷頁
ISRbuild 後按時間再生成兼顧速度與資料更新商品頁、內容站、新聞列表

不要把它們講成誰一定比較好。成熟的回答應該是:

要看頁面需求。登入後的管理系統通常 CSR 就足夠;公開內容頁適合 SSR 或 SSG;資料不常變的頁面可以用 SSG;需要更新但不用每次即時的頁面可以用 ISR。


Hydration 是什麼?

Hydration 是 SSR / SSG 很常被追問的概念。

server 已經回傳 HTML,所以使用者一開始可以看到內容。但這些 HTML 還沒有 React event handler,按鈕還不能真正互動。

瀏覽器下載 JavaScript 後,React 會把事件、狀態和元件邏輯接回既有 HTML,這個過程就是 hydration。

Server HTML
  → Browser 顯示內容
  → JS bundle 下載完成
  → React hydrate
  → 頁面可以互動

常見問題是 hydration mismatch。

例如 server render 出來的時間和 client render 出來的時間不同:

export function Time() {
  return <p>{new Date().toLocaleString()}</p>;
}

server 和 client 產生的文字不同,就可能造成 mismatch。


Next.js 為什麼比純 React SPA 適合 SEO?

純 React SPA 通常是 CSR。搜尋引擎一開始拿到的 HTML 可能只有:

<div id="root"></div>

真正內容要等 JavaScript 執行後才出現。

Next.js 的優勢是它讓你比較容易做到 SEO 需要的幾件事:

1. 預先產生 HTML

Next.js 支援 SSR、SSG、ISR。搜尋引擎進來時,可以更早拿到有內容的 HTML。

2. Metadata 管理完整

可以針對每個頁面設定:

  • title
  • description
  • canonical URL
  • Open Graph
  • Twitter Card
app/posts/[slug]/page.tsx
export async function generateMetadata({ params }) {
  const post = await getPostBySlug(params.slug);
 
  return {
    title: post.meta.title,
    description: post.meta.summary,
    openGraph: {
      title: post.meta.title,
      description: post.meta.summary,
    },
  };
}

3. sitemap / robots / routing 更容易整合

Next.js 的 file-based routing 讓 URL 結構清楚,也比較容易產生 sitemap、robots.txt 和 canonical。

4. 效能基礎比較好

Next.js 提供 image optimization、code splitting、streaming、route-level data fetching 等能力。SEO 不只看 HTML,也會受到頁面速度和使用體驗影響。


面試常見追問

SSR 一定比 CSR 快嗎?

不一定。

SSR 可能讓使用者更早看到內容,但 server 需要 render HTML。如果 server 很慢、資料查詢很慢,TTFB 也可能變高。

SSG 內容更新怎麼辦?

可以重新 build,或使用 ISR。若內容需要即時更新,就不適合純 SSG。

SEO 只靠 SSR 就夠嗎?

不夠。

還要看:

  • 內容品質
  • 正確標題階層
  • metadata
  • canonical
  • sitemap
  • 頁面速度
  • mobile experience
  • structured data

面試回答模板

CSR 是瀏覽器端渲染,適合互動性高但 SEO 不敏感的頁面;SSR 是每次 request 時 server 產生 HTML,適合需要即時資料與 SEO 的公開頁;SSG 是 build time 產生靜態 HTML,適合 Blog、文件、行銷頁;ISR 則是在靜態頁基礎上定期重新產生。Next.js 比純 React SPA 適合 SEO,是因為它可以用 SSR、SSG、ISR 讓搜尋引擎更早拿到內容,也提供 metadata、sitemap、routing 和效能相關能力。不過 SEO 不是只靠 SSR,還要看內容品質、語意結構和頁面速度。

分享:XLinkedIn
← 上一篇前端工程師面試題:Scrum 是什麼?工程師在 Sprint 裡做什麼?
下一篇 →前端工程師面試題:React Router v5 升級 v6 改了哪些?