
豪享生活的部落格是我自己寫程式、自己部署的自架部落格。2026 年 2 月底開工時只有文章、分類與標籤,之後陸續加上留言、收藏、後台與發文腳本;9 月底大改版,9 月 30 日 SEO 整套生效。一路上踩的坑,多半不是功能做不出來,而是做出來的行為和我以為的不一樣。
這篇依時間記錄部落格的功能演進,以及 9 月大改版的原因與做法。踩坑寫了 7 個:網址、登入狀態、留言、草稿、文案、SEO 與流量分析。部落格現在有哪些功能,寫在部落格功能介紹;架構與部署寫在個人網站怎麼架。
部落格的功能是怎麼一步步長出來的?
部落格不是一次做完的。我先做讀文章需要的部分,再依需要加上會員、後台與 SEO,下面依時間分成四段。
2 月底到 3 月:文章、分類、留言與收藏
2026 年 2 月 25 日開工那天,部落格就有文章與草稿、多層分類、標籤與全文搜尋。2 月 27~28 日第一次部署上線,同時加上按讚、深淺色、個人頁與 Markdown 編輯器,配圖也能上傳到 R2。
3 月 1 日加上巢狀留言、收藏與分類頁,3 月 8 日文章網址改用文章編號。到這裡,一個部落格該有的基本功能都齊了。
4 月到 6 月:後台、共用登入與發文腳本
4 月 17 日子網域架構上線,第一個子網域是豪享看股票,各子網域共用同一個 Google 登入。5 月 6 日管理後台上線,5 月 17 日加上頁面管理,主站也改了一次版。
6 月 20 日起,文章改成寫在資料夾裡,再用發文腳本送上網站。隔天,文章頁的第一屏改成伺服器先畫好,同時加上「我的文章」管理、分享選單與搜尋加速。
7、8 月停工,9 月底大改版
7、8 月部落格幾乎沒有新功能。9 月 26~29 日一口氣大改版,9 月 30 日網站地圖、robots.txt、RSS 與結構化資料整套生效。
10 月:流量分析與 SEO 補強
10 月 8 日接上自架的 Umami 流量分析,後台首頁改成營運概況;10 月 10 日重畫品牌 logo。10 月 12~17 日陸續補上子網域的網站地圖、結構化資料與標準網址。10 月 15 日加上分類說明,網站地圖附上文章配圖,空的分類也不給搜尋引擎收錄。
豪享生活部落格的功能演進(2026 年 2 月到 10 月)
文章網址為什麼從中文 slug 改成文章編號?
文章網址一開始用 slug,也就是由標題轉成的一段網址文字。2026 年 3 月 8 日,我把網址改成文章編號。
- 情境:部落格的標題都是中文,而且常帶問號、頓號與冒號。
- 問題:產生 slug 的程式會把中文標點刪掉,網址變成一長串連在一起的中文字。
- 判斷:中文靠標點斷句,刪掉標點的網址不好讀。要把每一種標點都處理好,規則只會越補越多。
- 做法:網址改用文章編號,標題只負責顯示。
- 結果與學到的:網址和標題分開以後,改標題不會動到網址。10 月我依搜尋字調整一批文章標題,舊網址照樣有效;網址和顯示的文字,最好分開管。
收到 401 為什麼不能直接當成登出?
401 是伺服器回傳的「未授權」狀態碼,意思是這一次請求沒有通過驗證。2026 年 6 月,我替前端定下一條規則:401 不等於登出。
- 情境:部落格要登入才能用的功能越來越多,例如留言、按讚與「我的文章」管理;4 月起主站和工具子網域也共用同一個登入。
- 問題:只要有一個請求回傳 401,整個網站就把使用者登出。登入憑證只是短暫對不上,也會被整站登出,還出現過主站還登入、子網域卻被踢出去的狀況。
- 判斷:401 描述的是一次請求,不是使用者的狀態。登入的工作階段還在,就不該因為一次請求失敗把人登出。
- 做法:收到 401 時,先確認使用者是否已經登出,確定登出才請使用者重新登入;查詢登入狀態的服務本身出錯時,也不把人登出。
- 結果與學到的:錯誤碼和使用者狀態是兩件事。混在一起處理,使用者會在沒有登出的情況下被請回登入頁。
9 月底為什麼大改版?
9 月 26 日起,投資理財的文章一套一套寫成系列、陸續公開。
同一週,我把部落格整個翻新,重點放在照順序讀與讀得舒服。文章頁加上目錄與系列的上一章、下一章;首頁的主題專區改用各分類的篇數來挑系列,不再只看最新的文章。留言、按讚與收藏的公開範圍,也趁這次重新整理。9 月 26~29 日改了這些地方:
9 月底大改版改了哪些地方
| 項目 | 改了什麼 | 日期(2026 年) |
|---|---|---|
| 首頁、文章清單、編輯器 | 重新設計版面 | 9 月 26~29 日 |
| 分類 | 分類旁標示篇數 | 9 月 27 日 |
| 文章頁 | 加上右側目錄、閱讀時間、系列上一章與下一章 | 9 月 28 日 |
| 留言 | 改成只回一層,可以編輯,加上限流 | 9 月 28 日 |
| 按讚 | 按讚名單公開 | 9 月 28 日 |
| 手機版 | 修正小螢幕的版面 | 9 月 28 日 |
| 收藏與個人頁 | 收藏改成只有自己看得到的「我的收藏」,個人頁改版 | 9 月 29 日 |
改版後的文章頁:麵包屑、閱讀時間、標籤與右側目錄(2026 年 10 月擷取)
這次改版照AI 團隊的開發流程走,每一批改動都先過上版前審查。接下來的留言、草稿與文案三個坑,都是改版這幾天遇到的。
文章的寫法也一起改
網站改版的同一週,我也改了文章的寫法。當時多數文章用中文數字編號當小標,沒有一篇有常見問題;讀者從搜尋進來,只看小標看不出這篇回答了什麼。
我參考專業理財網站的標題與排版,把規則寫成一份寫作規範。規範的重點是:第一段先給答案、小標寫成讀者會問的問題、短句短段、文末放常見問題。
寫好規範之後,我讓多個子代理平行改寫已經寫好的文章。之後的新文章,也都照同一份規範寫。
留言為什麼改成只回一層?
留言在 3 月 1 日上線時是巢狀的,回覆底下還能再回覆。9 月 28 日改成只回一層:所有回覆都排在原留言底下,不會一路往下縮排,比較看得出誰在回誰。
改結構時,最麻煩的是舊資料。
- 情境:已經存在的巢狀回覆,要用一支資料整理程式,整理成只有一層的新結構。
- 問題:上版前審查發現兩件事。這支程式每次服務開機都會執行,每次都會改到正式資料;已經刪除的留言,底下的回覆整理後可能重新公開。
- 判斷:資料整理是一次性的工作,不該綁在開機流程上。刪掉的內容重新公開,比版面不好看嚴重得多。
- 做法:改成只執行一次,執行過就留下標記。原本就看不到的回覆先維持隱藏,再整理結構,最後核對留言數,這幾步要嘛全部完成、要嘛全部不做。上版前先備份正式資料,再用唯讀的方式試算一次;正式執行後印出的筆數,要和試算的一樣。
- 結果與學到的:這兩個問題都在上版前擋下。之後碰到會改正式資料的程式,我都照「先備份、先試算、只跑一次」做。
會改正式資料的程式:先備份、先試算,確認後只跑一次
草稿為什麼要確認只有作者讀得到?
草稿是還沒確認的內容,應該只有作者看得到。我的發文腳本預設也把文章發成草稿,讓讀者先看不到還沒確認的版本。
- 情境:2026 年 9 月 28 日,大改版改到文章頁與編輯器。
- 問題:草稿只要有網址就讀得到。沒有公開連結,不等於別人讀不到。
- 判斷:發文流程預設發草稿,就是為了讓讀者先看不到;草稿守不住,這道保護就沒有用。
- 做法:讀草稿前先確認讀的人是不是作者,不是作者就讀不到。
- 結果與學到的:修好之後,上版前審查又抓到兩個問題。編輯頁讀文章時沒有帶上作者的身分,作者自己反而打不開草稿;讀取失敗時,編輯頁還會給一份空白表單,一存檔就蓋掉原文。最後改成在伺服器端帶著作者身分讀文章,讀不到就不給表單,只給「再試一次」。權限收緊時,要同時測「不該進來的人進不來」和「該進來的人進得來」,也要測讀取失敗時會不會寫壞資料。
文案為什麼要跟功能的行為一致?
- 情境:9 月底改版時,按讚相關的畫面上寫著「只有你看得到」。
- 問題:按讚名單是公開的,其他讀者看得到誰按了讚。畫面的說法和實際行為相反。
- 判斷:功能沒有壞,壞的是畫面上的承諾。讀者照文案以為是私人的,結果是公開的,這比少做一個功能更傷信任。
- 做法:拿掉那句說明,不在按讚的地方寫誰看得到。按讚名單維持公開;想私下存的文章,放進只有自己看得到的「我的收藏」。
- 結果與學到的:現在按讚公開、收藏私人,畫面不再寫和行為相反的話。文案也是規格的一部分,每一句「只有你看得到」「不會公開」,都要對照程式的實際行為。
robots.txt 和網站地圖為什麼 404 了好幾個月?
robots.txt 告訴搜尋引擎哪些網址可以抓,網站地圖列出網站上有哪些網址。這兩個檔案在部落格上有好幾個月都是 404,搜尋引擎拿不到。
- 情境:4 月 17 日子網域架構上線。部落格和工具放在同一個 Next.js 專案,網站依照子網域,把請求轉到對應產品的資料夾。
- 問題:這兩個檔案放在專案的根目錄,主站的請求卻都會被轉到主站的資料夾。這兩個檔案永遠收不到請求,一直回傳 404。
- 判斷:一般頁面都正常,出問題的只有這兩個給搜尋引擎讀的檔案;它們不是給人看的頁面,從頁面上看不出異狀。
- 做法:9 月 30 日把這兩個檔案搬到主站實際處理請求的位置。同一天,網站地圖、robots.txt、RSS、標準網址、分享卡片與結構化資料整套生效。
- 結果與學到的:路由規則影響的不只是頁面。改子網域或轉址規則時,robots.txt、網站地圖與 RSS 這類不是頁面的網址,也要一起打開確認。
robots.txt 與網站地圖 404 的原因:檔案放的位置收不到請求
流量分析上線前,審查擋下了什麼?
- 情境:10 月 8 日,我接上自架的 Umami 流量分析,後台首頁也改成營運概況。
- 問題:上版前審查發現,追蹤程式會送出完整的網址與上一頁的網址;有些網址帶著一次性的兌換代碼,會跟著記進流量紀錄,事後很難清掉。
- 判斷:流量分析要知道的是哪一頁被看,用不到網址裡的這類參數。一次性的代碼就算用過就失效,也不該留在任何紀錄裡。
- 做法:轉送流量資料時,網址參數只保留白名單裡的欄位,其他一律拿掉;改完再實測一輪才上線。
- 結果與學到的:接分析工具之前,先想清楚它會記下什麼。網址裡的參數也是資料,不需要的就不要記。
做部落格這幾個月,我學到什麼?
回頭看,部落格的坑多半出在行為:網址跟著什麼變、誰讀得到、畫面說了什麼、程式記下了什麼。我整理成下面幾條:
- 網址和顯示分開:網址用編號,標題怎麼改都不影響連結。
- 權限測兩個方向:不該進來的人進不來,該進來的人進得來。
- 改正式資料先備份、先試算、只跑一次:資料整理不綁在開機流程上。
- 文案就是規格:畫面上的每一句承諾,都要和程式的行為一樣。
- 不是頁面的網址也要測:robots.txt、網站地圖與 RSS,改完路由都打開確認。
- 記錄前先想好要記什麼:分析工具只記需要的資料,網址參數也一樣。
部落格還會繼續改。如果你也在做自己的部落格,希望這些坑能讓你少踩幾個。
常見問題
Q1:自架部落格的文章網址,用中文標題還是編號?
我選擇用文章編號。中文標題轉成網址時,標點很難處理;網址用編號,之後調整標題也不用改網址。
Q2:怎麼確認 robots.txt 和網站地圖讀得到?
直接在瀏覽器打開網站的 robots.txt 與網站地圖網址,確認有內容、不是 404。改過路由或轉址規則之後,要再打開確認一次。
延伸閱讀
- 豪享生活部落格能做什麼?找文章、讀系列、收藏留言與RSS訂閱:部落格現在有哪些功能,讀者怎麼用
- 個人網站怎麼架?Next.js、Go微服務、部署與發文流程:部落格背後的架構、部署踩坑與發文流程
- 一人開發怎麼用AI團隊?Claude Code分工與上版審查:9 月大改版走的開發流程與上版前審查
留言0