CMS 遷移時間表:WordPress 至 Next.js 2026
我在過去五年間帶領過大約 40 次 CMS 遷移,我被問得最多的問題是:「這到底需要多長時間?」不是銷售版本。真實的答案。
事實是這樣的 -- 真實的答案幾乎總是比你想的要久,但比你最壞的恐懼要短。一個小型行銷網站?你要準備 3-6 週。一個中型商業網站,擁有部落格、電商和自訂整合?準備 2-4 個月。一個擁有 10,000+ 頁面、多個語言版本和舊系統的企業?做好 4-8 個月的準備。
但這些範圍沒有背景脈絡就毫無意義。讓我詳細說明每個階段會發生什麼、團隊在哪裡浪費時間,以及如何防止你的遷移成為那些拖延一年的恐怖故事。
目錄
- 為什麼在 2026 年從 WordPress 遷移到 Next.js?
- 按網站規模劃分的遷移時間表概述
- 第 1 階段:探索和稽核
- 第 2 階段:架構和規劃
- 第 3 階段:內容建模和 CMS 設定
- 第 4 階段:前端構建
- 第 5 階段:內容遷移
- 第 6 階段:QA 和測試
- 第 7 階段:啟動和啟動後
- 常見延誤及避免方法
- 2026 年成本預期
- 常見問題

為什麼在 2026 年從 WordPress 遷移到 Next.js?
讓我直言:並非每個 WordPress 網站都需要遷移。如果你運營一個個人部落格或一個運作正常的小型商業網站,WordPress 仍然完全足夠。但在 2026 年,團隊確實有真實且可衡量的原因要遷移到擁有無頭 CMS 的 Next.js:
- 效能:使用靜態生成和邊緣渲染的 Next.js 網站在核心網頁指標上的得分始終在 90 分以上。WordPress 網站平均約為 50-65 分,無需進行大量最佳化工作。
- 安全性:將前端與 CMS 分離可以消除最常見的 WordPress 攻擊載體。在 2025 年,Sucuri 報告稱 WordPress 佔感染 CMS 網站的 96.2%。
- 開發人員體驗:基於 React 的元件架構意味著更快的迭代和更輕鬆的招聘。WordPress PHP 人才庫正在萎縮 -- Stack Overflow 的 2025 年調查顯示 PHP 下降到第 14 位的語言受歡迎度。
- 可擴展性:部署在 Vercel 或 Cloudflare 上的邊緣 Next.js 網站可以處理流量激增,無需「再加一個伺服器」的做法。
如果你正在處理效能問題、安全顧慮或一個對觸碰你的 WordPress 程式碼庫感到厭倦的開發團隊,遷移就很有意義。我們在 Next.js 開發能力 頁面上詳細介紹了技術方法。
按網站規模劃分的遷移時間表概述
以下是誠實的分解。這些時間表假設有專門的團隊(不是與其他項目分享時間的人員)和相當有回應的利益相關者。
| 網站規模 | 頁數 | 典型複雜度 | 時間表 | 團隊規模 |
|---|---|---|---|---|
| 小型(行銷/宣傳) | 5-50 | 低 -- 少數整合、標準內容 | 3-6 週 | 2-3 人 |
| 中型(商業) | 50-500 | 中等 -- 部落格、表單、某些整合、多個樣板 | 8-16 週 | 3-5 人 |
| 大型(中端市場) | 500-5,000 | 高 -- 電商、多作者、複雜工作流程 | 3-5 個月 | 4-7 人 |
| 企業 | 5,000+ | 非常高 -- 多個語言版本、舊系統整合、合規性 | 4-8 個月 | 6-12 人 |
這些是構建時間表,不是日曆時間表。日曆時間總是更長,因為利益相關者審查、反饋迴圈,以及不可避免的兩週,在那期間行銷副總在設計核准階段放假。
第 1 階段:探索和稽核
持續時間:1-3 週
這是大多數機構急於求成、大多數遷移走歪的地方。探索不只是「看看 WordPress 網站然後列一個清單」。這是法醫工作。
實際發生的情況
- 內容清單:編目每種內容類型、分類法、自訂欄位和媒體資產。我使用 Screaming Frog 來爬取現有網站並匯出完整的 URL 地圖。對於一個 2,000 頁的網站,僅此就需要整整一天才能妥善組織。
- 外掛稽核:記錄每個活躍外掛及其功能。平均 WordPress 網站有 20-30 個外掛。每個都代表你要嘛需要複製、要嘛用 SaaS 工具替換、要嘛有意放棄的功能。
- 整合對應:表單發送到 HubSpot?透過 WooCommerce 進行支付處理?透過 Google Tag Manager 和自訂事件進行分析?繪製完整的圖景。
- SEO 基準:匯出所有中繼標題、描述、標準 URL、結構化資料和內部連結模式。你無法在遷移中損失 SEO 權益。
- 利益相關者訪談:與實際使用 CMS 的人進行交談。內容編輯、行銷人員、管理部落格的任何人。他們的工作流程比技術架構更重要。
探索成果
- 內容模型文件
- 整合相依性地圖
- SEO 遷移計畫
- 風險登記(可能導致時間表爆炸的東西)
- 初步架構建議
跳過或倉促進行探索是時間表爆炸的首要原因。我見過一個「快速 6 週遷移」變成 5 個月的難題,因為沒有人記錄 WordPress 網站有 47 個自訂 Gravity Forms,具有條件邏輯,將資料傳送到三個不同的 CRM。

第 2 階段:架構和規劃
持續時間:1-2 週
握著探索資料,你做出重大決定。
選擇你的無頭 CMS
Next.js 是你的前端框架,但你仍然需要一個內容管理後端。2026 年的首選:
| CMS | 最適合 | 定價(2026 年) | 學習曲線 |
|---|---|---|---|
| Sanity | 複雜內容模型、即時協作 | 免費層級,然後 $99-$949/月 | 中等 |
| Contentful | 企業團隊、強大治理 | $300/月及以上 | 中等 |
| Storyblok | 視覺編輯、行銷團隊 | 免費層級,然後 €106-€399/月 | 低 |
| Payload CMS | 開發人員優先、自託管控制 | 免費(開源)、雲端起價 $50/月 | 較高 |
| WordPress(無頭) | 想保持 WordPress 管理員的團隊 | 現有託管成本 | 低(熟悉的) |
是的,你可以透過 WPGraphQL 或 REST API 將 WordPress 用作無頭 CMS。一些團隊這樣做是為了在獲得 Next.js 前端的同時保持內容編輯器在熟悉的環境中。這是一種有效的方法,儘管你繼承一些 WordPress 維護開銷。
我們幫助團隊評估這些選項作為我們 無頭 CMS 開發 工作的一部分。正確的選擇在很大程度上取決於你的編輯團隊的技術舒適度。
架構決定
- 渲染策略:靜態網站生成(SSG)、漸進式靜態再生(ISR)還是伺服器端渲染(SSR)?2026 年大多數網站使用混合方法 -- 內容頁面使用 ISR,個性化或即時頁面使用 SSR。
- 託管:Vercel 是 Next.js 的預設值,但 Netlify、Cloudflare Pages 和 AWS Amplify 都是可行的。Vercel 的 Pro 方案每個使用者每月 $20 可以涵蓋大多數團隊。
- API 架構:你會使用 CMS 的原生 API、構建中間件層還是採用 tRPC 之類的類型安全 API 呼叫?
- 驗證:如果你有閘門內容或成員區域,請提前規劃此內容。NextAuth.js(現在 Auth.js v5)可以處理大多數模式。
第 3 階段:內容建模和 CMS 設定
持續時間:1-3 週
這是你在新 CMS 中構建內容結構的地方。不要只是複製你的 WordPress 結構 -- 這是你修復多年累積內容債務的機會。
內容模型設計
WordPress 傾向於鼓勵平坦的內容模型:文章、頁面和透過 ACF 或 Meta Box 的大量自訂欄位。無頭 CMS 讓你能以結構化內容的方式思考。
// 示例:Sanity 中的部落格文章內容模型
export default defineType({
name: 'blogPost',
title: '部落格文章',
type: 'document',
fields: [
defineField({
name: 'title',
type: 'string',
validation: (Rule) => Rule.required().max(70),
}),
defineField({
name: 'slug',
type: 'slug',
options: { source: 'title' },
}),
defineField({
name: 'author',
type: 'reference',
to: [{ type: 'author' }],
}),
defineField({
name: 'body',
type: 'portableText', // 富結構化內容
}),
defineField({
name: 'seo',
type: 'seoFields', // 可重用 SEO 物件
}),
],
})
結構化內容意味著你的部落格文章內容不只是一大塊 HTML。它是你的前端可以以任何方式呈現的結構化區塊 -- 網頁、行動應用程式、電子郵件通訊,無論什麼。
CMS 配置
- 設定角色和權限
- 配置預覽功能(Next.js 中的即時預覽對編輯者採用至關重要)
- 構建任何自訂輸入元件或驗證規則
- 設定內容變更時觸發重建的 webhook
第 4 階段:前端構建
持續時間:2-8 週(最大的變數)
這是大多數日曆時間的去向。構建 Next.js 前端涉及:
設計和元件系統
如果你在遷移期間進行重新設計(我們約 70% 的客戶會這樣做),再加 2-4 週。如果你複製現有的設計,你可以更快地移動。
// 元件驅動架構示例
export default function BlogPost({ post }: { post: BlogPostType }) {
return (
<article>
<PageHeader title={post.title} date={post.publishedAt} />
<AuthorCard author={post.author} />
<PortableText
value={post.body}
components={customComponents}
/>
<RelatedPosts posts={post.related} />
<NewsletterSignup />
</article>
)
}
我強烈建議先構建元件庫,然後組合頁面。初期感覺更慢,但當你構建第 15 個頁面樣板時回報巨大。
關鍵構建工作
- 每種內容類型的頁面樣板
- 動態路由和全包路由
- 導覽(包括巨型選單如果適用的話)
- 搜尋功能(Algolia、Meilisearch 或 Next.js 內建)
- 表單實現(取代 Gravity Forms、Contact Form 7 等)
- 第三方整合(分析、聊天小工具、CRM 連線)
- 影像最佳化(Next.js Image 元件搭配你 CMS 的影像 CDN)
- Sitemap 生成
- RSS 摘要
- 301 重新導向對應
單單重新導向對應就可以在大型網站上花費數天。每個變更的 URL 都需要重新導向,否則你會浪費 SEO 權益。
第 5 階段:內容遷移
持續時間:1-4 週
內容遷移要嘛微不足道地簡單,要嘛惡夢般複雜。沒有中間地帶。
自動化遷移
對於結構化內容(部落格文章、產品、團隊成員),編寫遷移指令:
// 簡化的 WordPress 至 Sanity 遷移指令
import { createClient } from '@sanity/client'
import { wpClient } from './wordpress-api'
const sanity = createClient({
projectId: 'your-project',
dataset: 'production',
token: process.env.SANITY_WRITE_TOKEN,
apiVersion: '2026-01-01',
})
async function migratePosts() {
const wpPosts = await wpClient.posts().perPage(100).get()
for (const post of wpPosts) {
await sanity.create({
_type: 'blogPost',
title: post.title.rendered,
slug: { current: post.slug },
// 將 WordPress HTML 轉換為 Portable Text
body: htmlToPortableText(post.content.rendered),
publishedAt: post.date,
})
}
}
htmlToPortableText 步驟是事情變得棘手的地方。WordPress 內容充滿了短代碼、內聯樣式和外掛特定的標記,這些不能清晰地對應到結構化內容。為清理預留時間。
手動內容工作
某些內容只需要人工注意:
- 使用 Elementor、Divi 或 WPBakery 構建的複雜佈局頁面
- 包含已停用外掛短代碼的內容
- 需要重新最佳化或替代文字的媒體
- 需要更新的內部連結
對於 500 頁網站,計劃 40-80 小時的手動內容工作。是的,真的。
第 6 階段:QA 和測試
持續時間:1-3 週
不要在這上面省事。我見過啟動因為 QA 被視為事後想法而延遲數月。
QA 檢查清單
- 功能測試:每個表單、每個互動元素、每個動態功能
- 跨瀏覽器測試:Chrome、Firefox、Safari、Edge。Safari 總有奇怪的東西。
- 行動測試:真實裝置,不只是 Chrome DevTools。在實際 iPhone 和 Android 裝置上測試。
- 內容驗證:現場檢查至少 20% 的遷移內容以排查格式問題
- SEO 稽核:比較舊中繼標籤與新標籤。驗證結構化資料。測試所有重新導向。
- 效能測試:Lighthouse 分數、現場核心網頁指標、使用 k6 之類工具的負載測試
- 無障礙:WCAG 2.2 AA 合規性。運行 axe-core,但也要進行僅鍵盤導覽測試。
- 分析驗證:確保所有事件上的追蹤正確啟動
重新導向測試
這值得自己特別說明。匯出舊網站中的每個 URL。將每個對應到其新 URL。測試每個單一重新導向。對於擁有數千個 URL 的企業網站,使用自動化測試:
# 使用 curl 測試重新導向
while IFS=, read -r old_url new_url; do
status=$(curl -o /dev/null -s -w "%{http_code}" -L "$old_url")
final=$(curl -o /dev/null -s -w "%{url_effective}" -L "$old_url")
echo "$old_url -> $final (狀態:$status)"
done < redirects.csv
第 7 階段:啟動和啟動後
持續時間:1-2 週
啟動日
我傾向於在星期二或星期三早上啟動。絕不週五(你不想在週末偵錯)也絕不週一(人們仍在從週末趕上進度)。
啟動檢查清單:
- DNS 變更(TTL 應在啟動前 48 小時降低)
- SSL 憑證驗證
- CDN 快取預熱
- 監控前 4 小時的錯誤率
- 在 Google Search Console 中驗證爬蟲錯誤
- 檢查所有第三方整合是否啟動
啟動後(2 週)
- 在 Google Search Console 中監控核心網頁指標
- 監控 404 錯誤並新增缺少的重新導向
- 在前一個月每天追蹤自然搜尋效能
- 從內容編輯蒐集有關新 CMS 的回饋
- 解決任何漏過 QA 的邊界情況
有機搜尋流量在重大遷移後暫時下降 5-15% 是正常的。如果你的重新導向和 SEO 得到妥善處理,應該在 2-4 週內恢復。如果沒有恢復,說明重新導向對應或內容奇偶性出了問題。
常見延誤及避免方法
經過數十次遷移後,這些是真實的時間表殺手:
構建期間的範圍蔓延:「當我們這樣做時,我們也能新增客戶入口網站嗎?」可以,但那是個別項目。範圍蔓延平均在遷移中增加 3-6 週。
利益相關者可用性:設計審查在某人的收件匣中坐了兩週。相應地預留日曆時間並為反饋輪設定清晰的 SLA。
外掛功能差距:那個神秘的 WordPress 外掛做著沒有人記錄的關鍵事情。探索應該抓住這一點,但有時事情會漏掉。
內容編輯者培訓:如果你的團隊無法使用新 CMS,你就沒有完成遷移。預留 1-2 天進行培訓和文件。
對內容遷移的完美主義:某些內容不值得遷移。2014 年零流量的部落格文章?放手吧。設定重新導向到部落格索引並繼續。
2026 年成本預期
讓我給你誠實的數字。2026 年這項工作的機構費率:
| 網站規模 | 時間表 | 估計成本(機構) | 估計成本(自由工作者) |
|---|---|---|---|
| 小型 | 3-6 週 | $15,000-$35,000 | $8,000-$18,000 |
| 中型 | 8-16 週 | $40,000-$90,000 | $25,000-$55,000 |
| 大型 | 3-5 個月 | $80,000-$200,000 | $50,000-$120,000 |
| 企業 | 4-8 個月 | $150,000-$500,000+ | 很少適合 |
這些範圍反映了我們在市場上看到的。差異巨大,因為「中型網站」可能意味著完全不同的東西。一個有簡單部落格和聯絡表單的 200 頁網站與有多語言內容、電商和會員門戶的 200 頁網站大不相同。
如果你想討論你的具體情況,我們的定價頁面 概述我們的參與模型,或者你可以 直接聯絡 以取得限定範圍的估計。
常見問題
一個簡單的 WordPress 至 Next.js 遷移需要多長時間? 一個小型行銷網站(不到 50 頁),具有標準內容類型和最少整合,通常需要 3-6 週,從啟動到啟動。這假設一個 2-3 名開發人員的團隊在沒有重大設計變更的情況下工作。如果你也在進行重新設計,為設計階段再加 2-3 週。
我能否在不損失 SEO 排名的情況下將 WordPress 遷移到 Next.js? 絕對可以,但需要仔細規劃。關鍵元素是:盡可能保持 URL 結構、為任何變更的 URL 實現 301 重新導向、保留所有中繼標籤和結構化資料,以及確保新網站與舊網站擁有內容奇偶性。有機搜尋流量暫時下降 5-15% 是正常的,應該在 2-4 週內恢復。最大風險因素是錯過重新導向 -- 一個失敗的重新導向對應可能會導致你網站一個部分的流量驟降。
我應該使用 WordPress 作為無頭 CMS 搭配 Next.js,還是完全切換到不同的 CMS? 這取決於你的團隊。如果你的內容編輯對 WordPress 深感熟悉並抗拒變更,無頭 WordPress 搭配 WPGraphQL 是合理的折衷方案。你獲得 Next.js 前端好處,同時保持熟悉的管理介面。不過,你仍然要承擔 WordPress 的維護負擔(更新、安全補丁、託管)。如果你願意改變,專用無頭 CMS 如 Sanity、Contentful 或 Storyblok 提供更好的結構化內容、即時協作和更少的運營開銷。
CMS 遷移期間最大的風險是什麼? 首三位是:因不良重新導向對應導致的 SEO 衰退(可修復但成本高),因不充分探索導致的時間表爆炸(通常是因為隱藏複雜性在構建中期浮現),以及編輯者採用失敗(你的團隊拒絕使用新 CMS,因為它太不同或沒有按照他們的工作流程構建)。所有三個都可以透過適當規劃預防。
在 2026 年從 WordPress 遷移到 Next.js 需要多少成本? 機構成本範圍從小型宣傳網站的 $15,000 到擁有複雜整合的大型企業遷移的 $500,000+。中端市場商業網站的中值大約是專業機構的 $50,000-$90,000。自由工作者費率通常低 40-60%,但伴隨更高的可用性和項目管理風險。成本主要由獨特樣板的數量、整合複雜度和需要手動處理的內容量驅動。
我需要一次遷移所有內容嗎? 不,實際上分階段遷移常常降低風險。一些團隊首先將行銷頁面移動到 Next.js,同時保持部落格在 WordPress 上,然後在第二階段遷移部落格。你可以使用反向代理規則來提供不同源的不同部分,但在相同網域下。這種方法增加一些架構複雜性,但讓你更快啟動並在全力投入前驗證方法。
重新平台化和重新設計之間的區別是什麼? 重新平台化將你現有網站的設計和內容移動到新技術(WordPress 至 Next.js),進行最少視覺變更。重新設計改變外觀、感受,以及可能的資訊架構。在一個項目中結合兩者很普遍,但增加 30-50% 的時間表。如果預算或時間緊張,我建議先重新平台化,然後一旦你在新堆疊上後反覆重新設計。
我能否使用 Astro 而不是 Next.js 進行遷移? 可以,對於內容豐富、互動性最少的網站,Astro 可以是絕佳選擇。Astro 預設不發送 JavaScript,並支援部分水合(「島嶼架構」),這意味著你的內容頁面加載速度難以置信地快。Next.js 在你需要大量客戶端互動、驗證或即時功能時更好。我們已完成對兩個框架的遷移,正確選擇完全取決於你的網站需求。