從 WordPress 搬到 Hugo:最容易被低估的不是轉檔,而是舊 URL

更新 發佈閱讀 7 分鐘

我最近把自己的 Blog 從 WordPress 遷移到 Hugo。

一開始以為這只是一次很單純的工程整理:把 WordPress MySQL 裡的文章匯出成 Markdown,重新做 Hugo theme/template,補上 SEO metadata、sitemap、RSS、canonical、Open Graph,然後 build、deploy。

表面上看起來很順。

但真正上線後才發現,WordPress migration 最麻煩的地方,往往不是文章內容本身,而是那些已經在網路上存在很多年的舊 URL。

為什麼要離開 WordPress?

主要有兩個原因。

第一,長期 hosting 持有成本與維護成本。

WordPress 很方便,但它需要 PHP、資料庫、外掛、登入後台、更新維護,也會持續面對 wp-login.phpxmlrpc.php、舊外掛漏洞等掃描。對一個主要用來寫文章的個人 Blog 來說,這些成本有點重。

Hugo 的好處是輸出 static rendered pages。部署出去的是 HTML、CSS、圖片與少量 JavaScript。沒有資料庫,沒有 WordPress 後台,也沒有 PHP runtime。長期來看更便宜、攻擊面也更小。

第二,我想把寫作流程自動化。

我平常很多內容先寫在 Obsidian,理想流程是讓 AI agent 自動整理筆記,做 body clean,移除帳號、密碼、token、內部路徑等敏感資訊,再轉成 Hugo Markdown 發佈到 Blog。

簡單說:

vocus|新世代的創作平台

原因也很誠實:我很懶惰。

能讓工具自動處理的事情,就不要每次手動複製貼上。

真正的坑:Cloudflare 看到一堆 3xx、4xx

上線後我查看 Cloudflare AI Crawl Control,發現大量 3xx4xx

一開始以為是 bot 或 CDN 設定問題,後來一看 path 就知道答案了:舊 WordPress permalink 全部失效。

舊網址長這樣:

/yyyy/mm/dd/post-slug

Hugo 新網址則變成:

/posts/post-slug/

文章內容雖然搬好了,但搜尋引擎、外部連結、AI crawler、書籤和歷史引用還是會打舊 URL。

如果舊 URL 沒有處理好,搜尋引擎和 AI crawler 看到的不是「你成功搬家」
而是「一堆內容消失了」

我的處理順序

這次我把問題分成幾個層級處理:

5xx 是伺服器錯誤,優先級最高。這次沒有明顯 5xx。
4xx 是舊文章找不到,這會直接影響使用者與搜尋引擎,所以先修。
3xx 本身不是錯,但要確認沒有 redirect chain、redirect loop,或是最討厭的 301 -> 404

批次修復:用 SQL、Hugo 內容與 Cloudflare CSV 比對

手動一條一條修 redirect 會瘋掉,所以我用三份資料做批次比對:

  • WordPress export SQL
  • Hugo content/posts/*.md
  • Cloudflare 匯出的 4xx / 3xx path CSV

比對邏輯大致是:

先看 WordPress post_date
再比對 WordPress post_name 與 Hugo slug
再比對 WordPress title 與 Hugo title
高信心才自動產生 redirect
低信心保留 manual review

最後把高信心的舊文章 URL 匯入 Cloudflare Bulk Redirects。

正式結果是:

vocus|新世代的創作平台

為什麼不用 JavaScript redirect?

Static HTML 當然可以用 JavaScript 讀 URL,再用 location.replace() 導到新頁。

但那比較適合補救真人使用者,不適合作為正式 SEO migration 策略。

搜尋引擎與 crawler 最好看到的是 HTTP 層級的 301,而不是先回一個 HTML,再期待 JavaScript 幫它跳轉。

所以這次我最後選擇 Cloudflare Bulk Redirects,當然類似這樣重覆性高、又粗重的活當然要交給 Claude 自動去處理,順便自動驗證處理之後的成果是否達成預期效果

3xx 也要驗收

修完 4xx 之後,我又回頭 audit 3xx。

原因是 redirect 不是「有跳就好」,還要確認最後落點是正常頁面。

這次就抓到兩條舊分頁:

/page/7
/page/9

它們原本被導到不存在的新分頁,形成:

vocus|新世代的創作平台

這種 301 -> 404 比單純 404 更容易被忽略,因為你會以為 redirect 已經修好了,實際上只是把錯誤藏到下一跳。

最後我把它們改導到文章列表:

vocus|新世代的創作平台


這次最大的教訓

WordPress 搬到 Hugo,不只是「把文章轉成 Markdown」。

真正完整的 migration 至少要看這些項目:

vocus|新世代的創作平台

靜態網站的好處很明確:便宜、快、攻擊面小,也更容易接上 AI agent 自動化流程。

但靜態網站不會自動記得 WordPress 的歷史包袱。

Migration 上線不是結束,Cloudflare、Search Console 和 redirect audit 才是收尾。

水很深,但有 AI agent 這艘船,很多原本會讓人放棄的細節,終於可以一段一段渡過去。

完整技術紀錄、Cloudflare 修補流程與驗收細節,我整理在這篇:

👉 https://blog.stanwu.org/posts/wp-to-hugo-migration-is-deeper-than-expected/


留言
avatar-img
Stan Wu 吳信典
57會員
201內容數
我是 Stan Wu 吳信典。 我相信:「我們從程式設計的邏輯世界走來,以為萬物都能被預測與控制,直到遇見 AI,才發現智慧不只是規則的堆疊,而是滲透在無數經驗中的模糊與真實。」 我也始終堅信:「簡單,就是極致的美學。」
Stan Wu 吳信典的其他內容
2026/04/09
很多公司一談到支出治理,第一反應就是兩個字:節流。於是流程越加越多、簽核越拉越長、每個人都開始害怕花錢。短期看起來好像比較「有控管」,但久了之後,組織往往不是更有效率,而是更保守、更遲鈍,甚至把本來該投資的事情也一起凍結。
Thumbnail
2026/04/09
很多公司一談到支出治理,第一反應就是兩個字:節流。於是流程越加越多、簽核越拉越長、每個人都開始害怕花錢。短期看起來好像比較「有控管」,但久了之後,組織往往不是更有效率,而是更保守、更遲鈍,甚至把本來該投資的事情也一起凍結。
Thumbnail
2026/02/25
在 2026 年的金融環境下,我們常聽見「以房養老」一詞,但其在法律與精算邏輯上的正確定義應是「逆向抵押貸款」。這項工具與傳統購屋貸款的路徑完全相反:傳統貸款是隨著還款本金減少,房屋淨值增加;而逆向貸款則是隨著撥款,借款本金與利息同步增加,房屋淨值則隨時間逐漸萎縮。
Thumbnail
2026/02/25
在 2026 年的金融環境下,我們常聽見「以房養老」一詞,但其在法律與精算邏輯上的正確定義應是「逆向抵押貸款」。這項工具與傳統購屋貸款的路徑完全相反:傳統貸款是隨著還款本金減少,房屋淨值增加;而逆向貸款則是隨著撥款,借款本金與利息同步增加,房屋淨值則隨時間逐漸萎縮。
Thumbnail
2026/02/11
北士科快速推進使周邊在短期內同時承受「建設期人口(工人、承攬商)」、「資本期人口(投資客、置產者)」、「居住期人口(新租客、就業移入)」三股外來力量交疊,對既有里民造成生活節奏被打斷、房價與租金壓力擴散、社區關係鬆動、交通與公共資源擁擠與心理壓力升高等多維衝擊。
Thumbnail
2026/02/11
北士科快速推進使周邊在短期內同時承受「建設期人口(工人、承攬商)」、「資本期人口(投資客、置產者)」、「居住期人口(新租客、就業移入)」三股外來力量交疊,對既有里民造成生活節奏被打斷、房價與租金壓力擴散、社區關係鬆動、交通與公共資源擁擠與心理壓力升高等多維衝擊。
Thumbnail
看更多
你可能也想看
Thumbnail
1. 企業為什麼會開始考慮升級CMS 很少有企業是一開始就打算“從WordPress換到AEM”的。在我10年的顧問經驗裡,絕大多數企業走到這一步時,內部其實已經累積了一段時間的“不舒服”。 一開始只是小問題:網站變慢、內容不好管、不同市場各做各的。接著是更現實的狀況:行銷抱怨IT太慢、IT抱怨
Thumbnail
1. 企業為什麼會開始考慮升級CMS 很少有企業是一開始就打算“從WordPress換到AEM”的。在我10年的顧問經驗裡,絕大多數企業走到這一步時,內部其實已經累積了一段時間的“不舒服”。 一開始只是小問題:網站變慢、內容不好管、不同市場各做各的。接著是更現實的狀況:行銷抱怨IT太慢、IT抱怨
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
在這個社群平台林立的時代,下定決心要架設自己的網站,我是一個平凡的文科生——彗星。 之前誤打誤撞在網路行銷公司任職過,學到了一些從無到有架網站的知識,後來因為公司組織改革,調離原崗位,這讓我開始萌生一個想法…何不自己架一個網站試試看? 但這次沒有工程師能幫忙了,文組追星女創站全紀錄,從這裡開始!
Thumbnail
在這個社群平台林立的時代,下定決心要架設自己的網站,我是一個平凡的文科生——彗星。 之前誤打誤撞在網路行銷公司任職過,學到了一些從無到有架網站的知識,後來因為公司組織改革,調離原崗位,這讓我開始萌生一個想法…何不自己架一個網站試試看? 但這次沒有工程師能幫忙了,文組追星女創站全紀錄,從這裡開始!
Thumbnail
第一章:介紹WordPress網頁設計 WordPress是一個極為流行的內容管理系統(CMS),被廣泛用於建立各種類型的網站,包括部落格、企業網站、電子商務平台等。本章將介紹WordPress的基本概念、優點以及它在網頁設計領域的應用。 第二章:環境設置與安裝 在開始學習WordPress之
Thumbnail
第一章:介紹WordPress網頁設計 WordPress是一個極為流行的內容管理系統(CMS),被廣泛用於建立各種類型的網站,包括部落格、企業網站、電子商務平台等。本章將介紹WordPress的基本概念、優點以及它在網頁設計領域的應用。 第二章:環境設置與安裝 在開始學習WordPress之
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News