Shopify 轉換至 Headless:Next.js、Hydrogen & Remix 指南
您的 Shopify 商店處理訂單運作良好——直到您觀看工作階段錄影。結帳頁面載入需要 4.2 秒。您的產品頁面無法進行 A/B 測試動態套組,除非使用每月成本 $299 的應用程式。行動裝置轉換率停留在 1.8%,而您的付費社交媒體預算不斷攀升。在過去三年中,我已將 14 個 Shopify 商店遷移至 headless:七個使用 Next.js、四個使用 Hydrogen、三個使用 Remix。某些遷移在六週內上線,零收入損失。其他遷移則耗資 $40K 開發成本後才得以挽救。差異不在於框架——而在於團隊是否在執行第一個建置命令前,映射了每個 Shopify webhook、購物車規則和 metafield。以下是當您使用 headless 時實際會出現的問題,以及可防止此問題發生的 11 步驟遷移前稽核。
本指南涵蓋在進行第一次 headless Shopify 遷移之前,我希望有人告訴我的一切:如何選擇前端框架、如何保護您的 SEO 排名、如何在切換期間實現零停機時間、實際成本是多少,以及根據商店複雜性的現實時間表。沒有空泛之詞。沒有「視情況而定」而不解釋視何而定。
目錄
- 為什麼要從 Shopify 遷移至 Headless?
- Headless Shopify 架構說明
- 選擇前端:Next.js 對比 Hydrogen 對比 Remix
- 遷移流程逐步說明
- 遷移期間的 SEO 保護
- 零停機時間遷移策略
- 定價和時間表詳細分析
- 常見遷移陷阱
- Headless 不是正確選擇的時機
- 常見問題

為什麼要從 Shopify 遷移至 Headless?
讓我們先說清楚:標準 Shopify 對大多數商店都很不錯。如果您每年營收不足 $2M,且您的佈景主題符合您的需求,您可能不需要 headless。真的。我勸阻人們進行此遷移的次數比我鼓勵他們的次數還多。
但進行 headless 有正當理由:
- 效能上限:Liquid 佈景主題有渲染瓶頸。即使使用 Online Store 2.0 和 Dawn,您仍受到 Shopify 伺服器端渲染管道的限制。Headless 商店一致地達到低於 1 秒的 LCP 分數。
- 自訂體驗:產品配置工具、AR 試戴、複雜篩選、個人化引擎——在 Liquid 中構建這些很困難。
- 多店鋪:一個後端支援您的 DTC 網站、批發入口、行動應用程式和國際商店。
- 內容豐富的品牌:如果您的品牌大量依賴編輯內容、作品集和故事講述,將 headless CMS 與 Shopify 的商務引擎結合,可提供最佳效果。
- 開發人員體驗:您的團隊想在 React/TypeScript 中工作,而不是 Liquid。這比人們承認的更重要。
效能改善是真實且可測量的。在 2026 年,Google 的 Core Web Vitals 直接影響您的搜尋排名。我遷移至 headless 的商店通常會看到 LCP 改善 30-50% 和總阻塞時間改善 40-60%。這轉化為可測量的轉換率改善——Shopify 自己的資料表明頁面速度改善 1% 可將轉換率提高最多 0.7%。
Headless Shopify 架構說明
當人們說「headless Shopify」時,他們指的是將前端(客戶看到的內容)與後端(Shopify 的商務引擎)解耦。您保留 Shopify 用於產品、庫存、訂單、結帳和付款。您構建一個自訂前端,透過 Storefront API 與 Shopify 通訊。
以下是典型架構:
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Custom Frontend│────▶│ Storefront API │────▶│ Shopify Backend │
│ (Next.js/H2/Remix)│ │ (GraphQL) │ │ (Products, Cart, │
│ │ │ │ │ Orders, etc.) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ Headless CMS │
│ (Sanity, Contentful,│
│ Storyblok) │
└─────────────────┘
Shopify Plus 商家可以存取 Checkout Extensibility API,讓您自訂結帳而無需重新導向至 Shopify 的託管結帳。對於非 Plus 商店,客戶仍會被重新導向至 checkout.shopify.com 進行實際購買——這說實話不是一個糟糕的體驗,但這是一個 UX 中斷。
Storefront API
所有內容都透過 Shopify 的 Storefront API(GraphQL 端點)進行,該端點處理:
- 產品查詢和集合
- 購物車管理(建立、更新、移除行項目)
- 客戶身份驗證
- 內容(metafields、metaobjects)
- 商店本地化和貨幣
API 有速率限制——單個應用程式每秒 50 個成本點數。實際上,如果您正確快取,這很少成為問題,但在快閃銷售期間如果您沒有計劃,它可能會困擾您。
# 範例:使用變體取得產品
query ProductQuery($handle: String!) {
product(handle: $handle) {
id
title
descriptionHtml
priceRange {
minVariantPrice {
amount
currencyCode
}
}
variants(first: 100) {
edges {
node {
id
title
availableForSale
price {
amount
}
selectedOptions {
name
value
}
}
}
}
images(first: 10) {
edges {
node {
url
altText
width
height
}
}
}
}
}
選擇前端:Next.js 對比 Hydrogen 對比 Remix
這是大多數團隊卡住的地方。以下是我使用這三個框架構建生產商店後的誠實看法。
| 功能 | Next.js 15 | Hydrogen 2026 | Remix (Shopify) |
|---|---|---|---|
| 框架成熟度 | 非常成熟,生態系統龐大 | 日益完善,Shopify 特定 | 成熟(合併至 React Router 7) |
| Shopify 整合 | 透過 Storefront API 手動 | 一方整合,內建 hooks | 透過 Hydrogen UI 良好 |
| 託管 | Vercel、Netlify、自託管 | Oxygen (Shopify) 或自託管 | 任何地方,但針對 Oxygen 最佳化 |
| 學習曲線 | 中等 | 中等到高 | 中等 |
| 社群/聘僱 | 龐大 | 小但成長中 | 中等 |
| SSR/SSG 靈活性 | 優異(App Router) | SSR 導向(串流) | SSR 導向(載入程式) |
| 快取控制 | ISR、隨選重新驗證 | Oxygen 子請求快取 | 標準 HTTP 快取 |
| 最佳用途 | 具有 React 經驗的團隊、複雜內容需求 | Shopify 原生團隊、簡單至中等商店 | 想要 Shopify 推薦路徑的團隊 |
Next.js:安全的選擇
Next.js 是我為大多數團隊推薦的,尤其是如果您將 Shopify 與 headless CMS(如 Sanity 或 Contentful)配對。生態系統龐大,聘僱更容易,而且使用 App Router 的伺服器元件可獲得難以置信的靈活性。
缺點?您必須自己連接 Shopify 整合。沒有官方 Shopify SDK for Next.js(雖然像 @shopify/hydrogen-react 之類的社群套件為您提供購物車 hooks 和工具程式)。您會花更多時間在樣板上。
我們在 Social Animal 使用 Next.js 構建大量 headless Shopify 商店——它是我們電子商務專案的最常請求堆棧。
Hydrogen:Shopify 自己的框架
Hydrogen 是 Shopify 的官方 headless 框架,建立在 Remix(現在是 React Router 7)之上。它包含用於產品、購物車和 SEO 的預先構建元件——加上與 Oxygen(Shopify 的邊緣託管平台)的緊密整合。
吸引力很明確:更少的樣板、Shopify 最佳化的快取和一個在 Oxygen 上有效運作的部署故事。最近的版本帶來了重大改善,包括更好的 TypeScript 支援和購物車操作的樂觀 UI 更新。
缺點?社群較小,當您卡住時資源較少,而且您在某種程度上被鎖定在 Shopify 的生態系統中。如果您想交換商務後端,您需要重寫更多程式碼,而不是使用 Next.js 的情況。
Remix / React Router 7
以下是令人困惑的部分:Remix 已合併至 React Router 7。Hydrogen 建立在 Remix 之上。所以「Shopify 的 Remix」在大多數情況下實際上意味著 Hydrogen。
如果您想在沒有 Hydrogen 的 Shopify 特定抽象的情況下使用 React Router 7,您可以。您將獲得相同的載入程式/操作模式、相同的串流 SSR 和對您的 Shopify 整合的完全控制。如果您已經是一個 Remix 團隊並且想要最大的靈活性,這是有意義的。
我的建議
對於內容豐富的品牌,頁面版面配置複雜:Next.js + headless CMS。對於想要最快上市路徑的簡單 DTC 商店:Hydrogen on Oxygen。對於已投資 Remix 生態系統的團隊:React Router 7 搭配 Hydrogen UI 元件。

遷移流程逐步說明
以下是我為每次遷移遵循的流程。它很無趣。它有效。
第 1 階段:稽核和規劃(2-3 週)
- 爬取現有網站 — 使用 Screaming Frog 或 Sitebulb 來編目每個 URL、重新導向、標準標籤和結構化資料區塊。匯出此資訊。稍後您需要它。
- 記錄所有整合 — Klaviyo、Yotpo 評論、忠誠度計劃、訂閱應用程式(Recharge、Loop)、付款閘道。每一個。
- 映射 URL 結構 — 您的新 URL 是否與舊 URL 相符?Shopify 使用
/products/product-handle和/collections/collection-handle。如果您更改這些,您需要重新導向。 - 識別自訂功能 — 標準瀏覽和購買以外的任何內容。禮品卡、套組、批發定價、多貨幣、B2B。
- 選擇您的堆棧 — 前端框架、CMS、託管、CDN。
第 2 階段:構建前端(6-12 週)
這是進行實際開發的地方。主要領域:
- 產品頁面包含變體選擇、影像庫、評論整合
- 集合頁面包含篩選、排序、分頁
- 購物車包含即時庫存檢查和追加銷售
- 搜尋 — Shopify 的 Predictive Search API 或第三方(如 Algolia)
- 客戶帳戶 — 登入、訂單記錄、地址管理
- CMS 驅動頁面 — 首頁、關於、登陸頁面
- 結帳重新導向 — 處理切換至 Shopify 結帳
// 範例:使用 ISR 的 Next.js 產品頁面
import { getProduct } from '@/lib/shopify'
import { ProductDetails } from '@/components/product-details'
export async function generateStaticParams() {
const products = await getAllProductHandles()
return products.map((handle) => ({ handle }))
}
export default async function ProductPage({
params
}: {
params: { handle: string }
}) {
const product = await getProduct(params.handle)
if (!product) notFound()
return (
<>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(generateProductJsonLd(product)),
}}
/>
<ProductDetails product={product} />
</>
)
}
export const revalidate = 60 // ISR:每 60 秒重新驗證
第 3 階段:整合和 QA(2-4 週)
連接所有第三方服務。測試一切。我是說一切:
- 跨所有付款方式下訂單進行測試
- 測試折扣代碼、禮品卡、自動折扣
- 驗證分析追蹤(GA4、Meta Pixel、TikTok Pixel)
- 負載測試預期流量下的 Storefront API 呼叫
- 在實際裝置上測試,而不僅是 Chrome DevTools
第 4 階段:切換(1-2 天)
實際切換。有關零停機時間部分的更多資訊,請參閱下文。
遷移期間的 SEO 保護
這是遷移出錯的地方。我見過商店因為有人忘記 URL 重新導向而損失 40% 有機流量。不要成為那個團隊。
URL 映射
在您寫入單個重新導向規則之前,建立完整的 URL 映射文件。舊網站上的每個 URL 都需要在新網站上有目的地。
OLD: /collections/summer-2024
NEW: /collections/summer-2024 ← 相同?太好了,不需要重新導向。
OLD: /blogs/news/our-story
NEW: /journal/our-story ← 不同?需要 301 重新導向。
OLD: /pages/about-us
NEW: /about ← 不同?需要 301 重新導向。
結構化資料
Shopify 佈景主題包含基本結構化資料。當您使用 headless 時,您負責自己實現它。最低限度:
Product架構與offers、aggregateRatingBreadcrumbList用於導航Organization用於您的品牌WebSite與SearchAction用於網站連結搜尋FAQPage(如適用)
中繼標籤和標準
每頁都需要適當的 <title>、<meta description>、標準 URL 和 Open Graph 標籤。在 Next.js 中,使用 Metadata API:
export async function generateMetadata({ params }): Promise<Metadata> {
const product = await getProduct(params.handle)
return {
title: product.seo.title || product.title,
description: product.seo.description || product.description,
openGraph: {
images: [product.featuredImage?.url],
},
alternates: {
canonical: `https://yourstore.com/products/${params.handle}`,
},
}
}
XML 網站地圖
從 Shopify 的資料動態生成您的網站地圖。包含產品、集合和 CMS 頁面。在遷移後立即將其提交至 Google Search Console。
遷移前 SEO 檢查清單
- 完整的 URL 映射文件
- 已配置和測試的 301 重新導向
- 實現的結構化資料並驗證
- 從 Shopify SEO 欄位提取的中繼標籤
- 動態生成的 XML 網站地圖
- 正確配置的 robots.txt
- 通知 Google Search Console 的網域變更(如適用)
- 更新為新 URL 結構的內部連結
- 從 Shopify 保留的影像 alt 文字
零停機時間遷移策略
零停機時間不是魔法。它是 DNS 管理和準備。
藍綠部署方法
- 構建和部署新網站在臨時域(例如,
new.yourstore.com) - 同時執行兩個網站至少一週,徹底測試新網站
- 配置您的 CDN/DNS 以支援即時切換(Cloudflare、Vercel 或 Netlify 都支援此)
- 切換 DNS 以指向新前端——TTL 應在提前設定為 60 秒
- 監控一切:錯誤率、404、轉換率、Core Web Vitals
代理方法(更安全)
對於每月營收超過 $1M 的商店,我傾向使用基於代理的遷移:
- 將反向代理(Cloudflare Workers、Vercel Edge Middleware)放在舊網站和新網站前
- 逐頁路由流量——從低風險頁面(如
/about)開始 - 在 2-4 週內逐漸將頁面移至新前端
- 在移至下一批之前監控每頁的效能
- 產品和集合頁面最後進行(最高收入風險)
此方法增加了複雜性,但讓您在影響整個商店之前捕捉問題。
// Vercel Edge Middleware 範例,用於漸進式遷移
import { NextResponse } from 'next/server'
export function middleware(request: NextRequest) {
const { pathname } = request.nextUrl
// 已遷移至新前端的頁面
const migratedPaths = ['/about', '/contact', '/journal']
if (migratedPaths.some(path => pathname.startsWith(path))) {
return NextResponse.next() // 從新前端提供
}
// 所有其他內容代理至舊 Shopify 商店
return NextResponse.rewrite(
new URL(pathname, 'https://old-store.myshopify.com')
)
}
定價和時間表詳細分析
讓我們談談真實數字。這些是根據我在 2026 年看到的專案,範圍從簡單 DTC 商店到複雜的多市場操作。
| 商店複雜性 | 時間表 | 機構成本 | 自由職業者成本 |
|---|---|---|---|
| 簡單(< 50 產品、基本頁面、標準結帳) | 8-12 週 | $40,000 - $75,000 | $20,000 - $40,000 |
| 中等(50-500 產品、CMS、訂閱、多貨幣) | 12-20 週 | $75,000 - $150,000 | $40,000 - $80,000 |
| 複雜(500+ 產品、B2B+DTC、自訂結帳、多項整合) | 20-32 週 | $150,000 - $300,000+ | $80,000 - $150,000 |
持續成本
別忘了週期性費用:
- Shopify Plus:$2,300/月(headless 需要,建議用於結帳擴充性)
- 託管:$20-500/月(Vercel Pro 是 $20/使用者,Oxygen 包含在 Shopify 中)
- Headless CMS:$0-500/月(Sanity、Contentful、Storyblok 都有免費層級)
- 搜尋:$0-500/月(如果使用 Algolia 或類似服務)
- 維護:預算初始構建成本的 10-15%(年度)
對於探索 headless Shopify 遷移對其特定情況成本的團隊,我們在此詳細說明我們的定價方法。我們也很樂意透過快速通話進行範圍界定。
常見遷移陷阱
1. 低估購物車
購物車看起來很簡單,直到您考慮:折扣代碼、自動折扣、禮品卡、行項目內容、購物車備註、估計運費、稅金計算和購物車級別 metafields。預算購物車功能的時間是您認為所需時間的兩倍。
2. 忘記應用程式
您依賴的 Shopify 應用程式生態系統?大多數應用程式將 JavaScript 注入您的 Liquid 佈景主題。使用 headless 意味著您需要基於 API 的替代方案或為評論、願望清單、忠誠度計劃等自訂實現。
3. 結帳自訂
沒有 Shopify Plus($2,300/月),您無法自訂結帳體驗。客戶將被重新導向至 Shopify 的託管結帳,這造成視覺斷開連接。Plus 商家可以使用 Checkout Extensibility,但它仍然比完全自訂結帳更受限。
4. 未提前進行效能測試
Storefront API 增加延遲。如果您進行 8 個 API 呼叫來呈現產品頁面,您會感到它。積極快取、使用 GraphQL 片段來最小化過度提取,以及在可能的地方實現串流 SSR。
5. 忽視內容團隊
您的行銷團隊在 Shopify 管理員中管理內容。現在他們需要一個 headless CMS。預算時間用於培訓和構建實際上令人愉快的內容編輯體驗。
Headless 不是正確選擇的時機
我會直白地告訴您:headless Shopify 不適合所有人。如果存在以下情況,請不要遷移:
- 您的商店每年營收不足 $1M,而且沒有複雜的自訂需求
- 您沒有預算用於持續開發和維護
- 您的團隊沒有 React 開發人員(或聘僱/承包他們的預算)
- 您對目前佈景主題的效能和功能感到滿意
- 您主要尋求「酷技術」故事,而不是解決實際業務問題
Shopify 的 Online Store 2.0 搭配良好最佳化的佈景主題可以達到 Lighthouse 中的 90 分以上。有時正確答案是最佳化現有內容,而不是從頭開始重建。
如果您猶豫不決,請考慮以混合方法開始:保留您的 Shopify 佈景主題,但將特定高影響力頁面(如您的首頁或登陸頁面)構建為 headless。您可以在現有佈景主題旁邊使用 Shopify 的 Storefront API。這讓您在提交完整遷移之前證明價值。
常見問題
從 Shopify 遷移至 headless 需要多長時間? 對於典型的中等複雜性商店,預期從開始到啟動需要 12-20 週。產品少且功能基本的簡單商店可在 8-12 週內上線。複雜的多市場商店,其中包含自訂結帳和廣泛整合,通常需要 20-32 週。稽核和規劃階段本身應為 2-3 週——不要跳過。
在遷移至 headless Shopify 時,我會失去 SEO 排名嗎? 不會,如果您正確進行。關鍵是:維持相同的 URL 結構(或設定適當的 301 重新導向)、在每個頁面類型上實現結構化資料、保護中繼標籤和標準 URL,以及在啟動後立即將更新的網站地圖提交至 Google Search Console。我通常會看到遷移後排名波動 1-2 週,然後在 Google 識別更好的 Core Web Vitals 分數後改善。
我需要 Shopify Plus 進行 headless 嗎? 技術上不需要。Storefront API 在所有 Shopify 計劃上都可用。但是,Shopify Plus 為您提供 Checkout Extensibility(自訂結帳體驗)、更高的 API 速率限制和 Oxygen 託管的存取。對於認真的 headless 專案,Plus 每月 $2,300 幾乎總是值得的。
Hydrogen 和搭配 Shopify 的 Next.js 有什麼不同? Hydrogen 是 Shopify 的官方 headless 框架,建立在 Remix/React Router 7 上。它包含 Shopify 特定的元件、hooks 和工具程式,加上在 Oxygen 上最佳化的部署。Next.js 要求您自己構建 Shopify 整合,但為您提供更大的生態系統、更多託管選項和對複雜內容架構的更好支援。大多數機構,包括我們的,根據特定的專案需求有強烈的意見。
我可以使用零停機時間遷移至 headless Shopify 嗎? 是的,使用藍綠部署(DNS 切換)或漸進式代理遷移。藍綠方法一次性透過 DNS 切換所有流量,而代理方法在數週內逐漸遷移頁面。兩者都有效。代理方法對高收入商店更安全,但增加了複雜性。
headless Shopify 遷移成本是多少? 機構成本通常範圍從簡單商店的 $40,000 到複雜多市場操作的 $300,000 以上。自由職業者費率大約是機構成本的 50-60%,但可能缺少專案管理結構和更少的專家。持續成本包括 Shopify Plus($2,300/月)、託管($20-500/月)、CMS($0-500/月)和維護(初始構建成本的 10-15%)。
我應該使用 Astro 而不是 Next.js 或 Hydrogen 進行 headless Shopify 嗎? Astro 對於內容豐富的網站(具有互動島)是絕佳選擇,我們已構建幾個 Astro 供電的店面。對於產品目錄式商店(大多數頁面是靜態的,您只需要 React(或 Svelte、Vue)用於購物車之類的互動元件)運作良好。但是,對於具有重度用戶端互動的商店——即時庫存、複雜篩選、即時搜尋——Next.js 或 Hydrogen 的完整 React 執行時通常更適合。
遷移至 headless 後,我的 Shopify 應用程式會發生什麼? 大多數注入前端程式碼的 Shopify 應用程式(彈出視窗、小工具、評論顯示)開箱即用時不會運作。您需要直接使用應用程式的 API、尋找 headless 相容替代方案,或構建自訂實現。僅在後端運作的應用程式(庫存管理、運費、ERP 整合)通常無需變更即可繼續運作。在規劃階段始終稽核您的應用程式堆棧。