Ian Chou's Blog

新手開發者請注意:為什麼「Content-first」架構可能是電商前台的最佳解?

從 Astro、Islands 架構到未來的 AI 搜尋優化 (GEO)

作為剛踏入前端領域的新手,你可能剛剛學會了 React、Next.js 或 Vue,覺得「單頁應用程式 (SPA)」是現代網頁的標準答案。你可能會想:「要做電商網站?那當然是用 Next.js 把前後端串起來,做成一個超酷的 App 啊!」

先等一下。

在動手寫 create-next-app 之前,我們需要先冷靜思考一個架構上的本質問題:「電商前台(Storefront)的本質,真的是一個應用程式(App)嗎?」

這篇文章將帶你重新理解電商架構,並介紹為什麼 Astro 這類「內容優先(Content-first)」的框架,可能會是比 React SPA 更完美的選擇。


1. 拆解電商前台:其實 80% 只是「內容」

當我們說要「做一個電商網站」時,其實可以把功能拆解開來。你會驚訝地發現,大部分的時間使用者都在「看」,而不是在「操作」。

請看看一個標準的電商前台包含了什麼:

發現了嗎?這 80% 的頁面本質上就是「內容(Content)」

真正需要 JavaScript 介入的「互動」,其實只有剩下那 20%:

如果你為了這 20% 的互動,而強迫那 80% 的靜態內容都要背負著沈重的 JavaScript 框架(React/Vue 核心庫 + Hydration 過程),這就像是為了喝牛奶而養了一整頭牛,既浪費效能,又拖慢網頁載入速度。


2. 解決方案:Astro 與「Islands Architecture(島嶼架構)」

這就是為什麼 Astro 這樣的框架會在近年異軍突起。它的核心哲學叫做 Content-first(內容優先)

什麼是 Content-first?

簡單來說,Astro 預設把你的網站當作「靜態 HTML」來處理。伺服器渲染(SSR)好畫面後,直接送給瀏覽器。這意味著:

  1. SEO 極佳:搜尋引擎爬蟲看到的就是完整的 HTML。
  2. 速度極快:使用者不用等 JavaScript 下載並執行完才能看到內容(LCP 很低)。

那互動怎麼辦?—— Islands 架構

Astro 引入了「Islands(島嶼)」的概念。試想你的網頁是一片靜態的海洋(純 HTML),而在這片海洋上,漂浮著幾個需要互動的「島嶼」(Islands)。

這讓你得以兼顧「靜態網站的速度」與「動態網站的互動」,是目前電商 Storefront 最健康的技術分工。


3. 架構思維:打造「現代版的 WooCommerce」

很多新手會誤以為「功能越多越好」,想把前台做成像是 Shopify Admin 或 SaaS 後台那樣複雜的 App。但實際上,大多數的電商前台需求僅僅是:「逛商品 + 結帳」

我們可以建立一個簡單的類比:

傳統架構 (WordPress/WooCommerce) 現代 Content-first 架構 (Astro)
Monolith (單體):前台、後台、資料庫全擠在一起。 Decoupled (分離):前台只負責「呈現」,邏輯拆去 API。
用 PHP 模板在伺服器產出 HTML。 用 Astro 在伺服器產出 HTML。
頁面跳轉是換頁 (Multi-page)。 頁面跳轉也是換頁,但體驗極快。

如果你採用 Astro Storefront + 獨立 API (如 Hono/Express) + Headless CMS 的組合,你其實是在構建一個**「技術更現代、效能更好、維護更容易」的 WooCommerce 前台**。

你不需要 Next.js 那種處理複雜 App 狀態的重裝武器,因為你的使用者只是來「逛」的,不是來「操作複雜儀表板」的。


4. 面向未來:Astro 在 GEO (生成式搜尋優化) 的優勢

除了對人類使用者友善,Astro 在面對未來的「AI 搜尋引擎」(如 ChatGPT Search, Google AI Overviews)時,也有著巨大的技術優勢。這被稱為 GEO (Generative Engine Optimization)

AI 搜尋引擎喜歡什麼樣的網站?

  1. 乾淨的 HTML:雜訊越少,AI 越好解析內容。
  2. 語意化結構:清楚的 <h1>, <h2>, <p> 以及 Schema.org 標記。
  3. 速度快:效能指標(Core Web Vitals)好的網站更容易被引用。

框架比一比:誰對 GEO 最友善?

結論: 如果你的目標是讓商品內容被 AI 搜尋引擎看見,Astro 的架構是目前的最佳起跑點。


5. 總結:我該怎麼選?

對於技術新人來說,選型不是選「最流行」的,而是選「最適合」的。

請試著問自己兩個問題:

  1. 你的前台有多複雜? 是「逛商品+結帳」(像 uniqlo.com),還是「複雜的線上編輯器/管理後台」(像 Canva 或 Gmail)?
  2. 你在意什麼? 是「SEO 與極致速度」,還是「像原生 App 一樣的無縫轉場」?

這張地圖給你參考:

給新手的最後建議

不要拿著錘子(React SPA)就把所有東西都當釘子打。在電商前台這個領域,**「內容優先」**的 Astro 往往能用更少的程式碼,達成更好的效果。這才是資深工程師眼中的「優雅架構」。


下一步你可以做什麼?

如果你對這個架構感興趣,我建議你嘗試做一個小型的 Demo:

Astro 建立一個簡單的商品列表頁,並試著用 React 寫一個「加入購物車」的按鈕組件,體驗一下 Islands Architecture 是如何運作的。

這會讓你對「靜態與動態的邊界」有更深刻的體悟!