先說結論
嗯...關於 SSR 和 SEO。簡單講,有用。但不是萬靈丹。
SSR (伺服器端渲染) 能直接給爬蟲一個完整的 HTML,這對 SEO 來說當然是好事,尤其是首頁載入速度和內容索引速度。 但...這也意味著伺服器負擔會變重,成本會拉高。 所以,這更像是一個「權衡」的問題,而不是「用了就無敵」的銀彈。
現在的重點,其實已經跑到更複雜的混合渲染模式了。像是 Next.js 的 App Router,它讓你在頁面層級去決定要用 SSR、SSG 還是 ISR。 這才是現在玩 SEO 的關鍵。
實際案例長怎樣?
想像一個純前端渲染 (CSR) 的電商網站,用基本的 React 或 Vue 寫的。Google 爬蟲來的時候,可能只看到一個空的 `
`。 當然,Google 現在越來越會跑 JavaScript 了,但這有延遲,而且不保證 100% 成功。 結果就是,新產品頁面的收錄可能要等很久,或是根本抓不到內容。後來,這個網站改用 Next.js 導入 SSR。使用者一來,伺服器先在後端把頁面產生好,直接吐出完整的 HTML。 爬蟲一來,看到的就是有品名、有價格、有描述的完整頁面。結果是:
-
索引速度:新產品上架後,可能幾小時內就被 Google 索引,而不是好幾天。
-
Core Web Vitals:LCP (最大內容繪製) 數據會變好看,因為最重要的內容在第一時間就渲染出來了。 雖然,如果伺服器慢,TTFB (第一位元組時間) 反而可能變長,這點要注意。
所以... SSR 到底在幹嘛?
好,我們用更白話的方式想一下。
傳統的 CSR (Client-Side Rendering),就像你去 IKEA 買了一組需要自己組裝的書櫃。貨運只送來一堆木板跟螺絲 (JavaScript 檔案),你 (瀏覽器) 還得自己看著說明書 (執行 JS) 把它組裝起來,才能用。
而 SSR (Server-Side Rendering) 就像你去家具店買一個組裝好的書櫃。 書櫃在工廠 (伺服器) 就已經組好了,直接送到你家 (瀏覽器),你馬上就能用。 對於只想知道書櫃長怎樣的訪客 (搜尋引擎爬蟲) 來說,當然是後者方便多了。
Google 官方文件總說他們的爬蟲很強大,可以渲染 JS。是沒錯,但實務上,你不能完全依賴它。尤其是在台灣,我們面對的伺服器延遲、網路環境,跟 Google 在美國測試的理想狀況不一樣。能在一開始就把靜態的 HTML 給爬蟲,永遠是最穩的作法。
動手做的話,要注意什麼?
用 Next.js 這種框架,事情變簡單很多。特別是 App Router 出現之後,管理 SEO 的 metadata 變得更直接了。 以前可能要用 `next/head` 或 `react-helmet` 之類的套件,現在可以直接在 `layout.js` 或 `page.js` 裡 export一個 `metadata` 物件。
你可以在這裡面設定 `title`, `description`,甚至動態產生 OGP 標籤給社群分享用。 這讓 SEO 的管理集中化,清楚很多。
另外,像是 sitemap.ts 和 robots.ts 這些檔案,現在也可以用程式碼動態生成,這對大型網站的維護來說,真的省下很多功夫。
不只有 SSR... 還有 SSG 跟 ISR
這才是現在的重點。SSR 不是唯一的解法,甚至不一定是最好的。 我們要看的是一個光譜:
| 渲染方式 | 優點 | 缺點 | 最適合情境 |
|---|---|---|---|
| CSR (客戶端渲染) | 互動性很強,開發體驗對單頁應用 (SPA) 來說很順。 | SEO 很吃虧... 爬蟲看到空殼,首屏載入也慢。 | 需要大量使用者互動、不在乎 SEO 的後台管理系統、Web App。 |
| SSR (伺服器端渲染) | SEO 友好,首屏快。對爬蟲跟使用者都是直接給內容。 | 伺服器壓力大,貴。架構也比較複雜。 | 內容頻繁變動、需要即時數據、又極度要求 SEO 的頁面。例如電商的產品頁、新聞網站。 |
| SSG (靜態網站生成) | 速度最快,因為 HTML 在建構時就產生好了。可以直接丟 CDN,超便宜。 | 每次內容更新都要重新 build 整個網站,不適合內容常變的。 | 部落格、公司官網、文件站... 這種不太會變動的內容。 |
| ISR (增量靜態再生) | SSG 跟 SSR 的混合體。可以設定一個時間 (revalidate),定期在背景重新產生靜態頁面。 | 嗯...有點複雜,需要想清楚快取策略。 | 像是有使用者留言的部落格文章,或是幾分鐘更新一次的儀表板。兼顧效能跟內容時效性。 |
但 SSR 不是萬靈丹
再強調一次,SSR 有成本的。 最大的問題就是伺服器。每個使用者的請求都要在伺服器上跑一次 React、拉一次資料、產生一次 HTML。流量一高,伺服器就得跟著升級,這都是錢。
而且,如果你的後端 API 反應慢,那 SSR 反而會拖慢整個 TTFB (Time to First Byte),使用者會感覺網站「卡住了」,等更久才能看到東西。這對使用者體驗跟 SEO 都是傷害。
常見的坑
最後整理幾個新手常踩的雷:
-
以為用了 Next.js 就等於 SEO 搞定了:錯。Next.js 只是給你工具,你還是得自己去設定 metadata、結構化資料、sitemap。 工具不會自己跑。
-
什麼頁面都用 SSR:沒必要。像「關於我們」這種萬年不變的頁面,用 SSG 就好,快又省錢。把伺服器資源留給真正需要動態渲染的頁面。
-
忽略快取:不管是 SSR 還是 ISR,快取策略都很重要。好的快取可以大幅降低伺服器負擔,不然跟 CSR 比起來可能沒什麼優勢。
-
忘記結構化資料:光是把內容渲染出來還不夠。用 JSON-LD 加上結構化資料,告訴 Google 這是篇文章、是個產品、還是個食譜,才能拿到更好的搜尋結果版位 (Rich Results)。
總之,技術一直在變。從 Pages Router 到 App Router,Next.js 不斷在演進。 重要的是理解背後原理,然後為你的專案選擇最「恰當」的渲染策略,而不是盲目追求最新的技術名詞。
一個小問題:你的專案目前用的是 CSR、SSR 還是 SSG 呢?在轉換過程中有沒有踩過什麼特別的坑?歡迎留言分享一下。
